<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/templates/default/atom.css" type="text/css" ?>

<feed 
   xmlns="http://www.w3.org/2005/Atom"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <link href="http://blog.joerghoh.de/index.php?/feeds/atom.xml" rel="self" title="Joerg on the web" type="application/atom+xml" />
    <link href="http://blog.joerghoh.de/"                        rel="alternate"    title="Joerg on the web" type="text/html" />
    <link href="http://blog.joerghoh.de/rss.php?version=2.0"     rel="alternate"    title="Joerg on the web" type="application/rss+xml" />
    <title type="html">Joerg on the web</title>
    <subtitle type="html"></subtitle>
    <icon>http://blog.joerghoh.de/templates/default/img/s9y_banner_small.png</icon>
    <id>http://blog.joerghoh.de/</id>
    <updated>2010-03-16T08:22:09Z</updated>
    <generator uri="http://www.s9y.org/" version="1.5.3">Serendipity 1.5.3 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>

    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/124-Insert-on-duplicate-key-update.html" rel="alternate" title="Insert on duplicate key update " />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2010-03-16T08:22:09Z</published>
        <updated>2010-03-16T08:22:09Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=124</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=124</wfw:commentRss>
    
    
        <id>http://blog.joerghoh.de/index.php?/archives/124-guid.html</id>
        <title type="html">Insert on duplicate key update </title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                (Ja, wer diesen <a href="http://blog.joerghoh.de/exit.php?url_id=371&amp;entry_id=124" title="http://blog.koehntopp.de/archives/2796-INSERT-ON-DUPLICATE-KEY-UPDATE.html"  onmouseover="window.status='http://blog.koehntopp.de/archives/2796-INSERT-ON-DUPLICATE-KEY-UPDATE.html';return true;" onmouseout="window.status='';return true;">Artikeltitel schon bei Kris</a> gelesen hat: eine sehr ähnliche Thematik, nur halt eben nicht mysql)<br />
<br />
Ich hatte letzte Woche den Fall, dass ich eventuell vorhandene Zeilen in einer Oracle 10g Datenbank anpasen musste; falls sie nicht vorhanden waren, mussten sie erzeugt werden. Natürlich kann man das ganze mit einem select vorab prüfen, ob das ganze da ist und dann entsprechend mit einem update oder einem insert weiterarbeiten (und nicht vergessen, das ganze in eine Transaktion zu packen). In meinem naiven jugendlichen Datenbank-Leichtsinn dachte ich mir aber, dass dieser Usecase so häufig vorkommt, dass er auch angenehmer mit Oracle-Bordmitteln gelöst werden kann.<br />
<br />
Tut er auch. Dank ein bisschen Hilfe der Kollegen kam dann folgendes Statement <br />
<br />
<pre><br />
merge INTO DCS_SKU sku using ( SELECT 1 FROM dual ) ori<br />
ON (sku.SKU_ID = 'SB1234' )<br />
when matched then<br />
    UPDATE SET<br />
      sku.VERSION='1',<br />
      sku.CREATION_DATE=TO_DATE('09/03/2010 15:59:00', 'DD/MM/YYYY HH24:MI:SS')<br />
when NOT matched then<br />
     INSERT(sku.SKU_ID, sku.VERSION,sku.CREATION_DATE)<br />
      VALUES('SB1234', '1',TO_DATE('09/03/2010 15:59:00')<br />
</pre><br />
<br />
raus. Es prüft, ob sku.SKU_ID mit dem Wert "SB1234" bereits vorhanden ist. Wenn ja, wird entsprechend ein Update gefahren, ansonsten ein Insert.<br />
<br />
Eigentlich nutzt man das "merge"-Statement zum Zusammenfassen von Tabellen, man kann es aber auch für diesen Zweck etwas zweckentfermden. Im Gegensatz zu Kris kenne ich mich mit Oracle zu wenig aus, um zu sagen, wo die (sicherlich vorhandenen) Fehler liegen und welche side effects man beachten muss. (Für den Usecase, bei dem ich es eingesetzt habe, war Fehlerhandling auch sehr nachrangig.) Vielleicht mag mich ja jemand aufklären <img src="http://blog.joerghoh.de/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /> 
            </div>
        </content>
        <dc:subject>admin</dc:subject>
<dc:subject>software</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/123-Mobilfunktarife-out-of-hell.html" rel="alternate" title="Mobilfunktarife out of hell" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2009-08-04T20:22:50Z</published>
        <updated>2009-08-04T20:22:50Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=123</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=123</wfw:commentRss>
    
    
        <id>http://blog.joerghoh.de/index.php?/archives/123-guid.html</id>
        <title type="html">Mobilfunktarife out of hell</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Es demnächst mal wieder die Qual der Wahl an, Vertragsverlängerung beim Mobiltelefon. Mittlerweile dürfte es bereits die 6. Verlängerung sein, jedesmal mit einem neuen Endgerät. Vor 10 Jahren hat man noch die Neuerungen jeder neuen Handy-Generation richtig gemerkt, am ehesten beim Gewicht (mein erstes Handy,ein <a href="http://blog.joerghoh.de/exit.php?url_id=368&amp;entry_id=123" title="http://en.wikipedia.org/wiki/Nokia_1610"  onmouseover="window.status='http://en.wikipedia.org/wiki/Nokia_1610';return true;" onmouseout="window.status='';return true;">Nokia 1610</a>, wog noch ca 300 Gramm, dessen Nachfolger in meiner Tasche, ein <a href="http://blog.joerghoh.de/exit.php?url_id=369&amp;entry_id=123" title="http://www.gsmarena.com/siemens_s25-90.php"  onmouseover="window.status='http://www.gsmarena.com/siemens_s25-90.php';return true;" onmouseout="window.status='';return true;">Siemens S25</a>, nur noch 130 Gramm. <br />
<br />
Bei den Tarifen, die von T-Mobile (damals noch Telekom) seitdem angeboten wurden, haben sich leider nicht im gleichen Maß die Preise geändert. Kostete 1997 eine Minute noch 69 Pfennig (in einem Telly Tarif), so verlangt T-Mobile heutzutage in den Relax-Tarifen bei vergleichbaren Grundpreisen immer noch 29 Cent pro Minute. Man könnte doch meinen, daß die Kosten für die Infrastruktur für ein Telefonat wesentlich gesunken sind bei einer gleichzeitigen vergrösserten Nachfrage (der grosse Handy-Boom war ja erst 2000/2001). Nein, ein einfaches Telefonat ist -- wenn man die Minutenpreise anschaut -- immer noch unbezahlbar.<br />
<br />
Dabei geht es ja billiger. Selbst T-Mobile bietet prepaid-Tarife an, bei denen keine Grundgebühren anfallen und wo eine Minute in ein beliebiges Netz (Festnetz wie auch Mobilfunknutze) "nur" noch 19 Cent kostet. Von den (Prepaid)-Biliganbietern mit momentan 9 Cent pro Minute in alle Netze mal ganz zu schweigen. Wenn ich daher mal grosszügigerweise die Grundgebühr einzig als Ratenzahlung für mein verbilligtes Endgerät ansehe, verlangt die T-Mobile 300% des Minutenpreises von <a href="http://blog.joerghoh.de/exit.php?url_id=370&amp;entry_id=123" title="http://www.congstar.de"  onmouseover="window.status='http://www.congstar.de';return true;" onmouseout="window.status='';return true;">Congstar</a>  (die das gleiche Netz nutzen wie T-Mobile).<br />
Gearscht sind Vertragskunden: Zuerst binden sie sich für 24 Monate (und können von eventuell sinkenden Preisen während der Vertragslaufzeiten nicht profitieren), zum anderen werden Mondpreise verlangt. <br />
<br />
Ich überlege mir daher ernsthaft, ob ich nach mehr als 10 Jahren bei dem Rosa Riesen meinen Vertrag kündige; der Billigheimer Congster bietet Rufnummer-Portierung und die Möglichkeit, online die Karte aufzuladen. Das Goodie "keine Mindestvertragslaufdauer" gibt es noch oben drauf. <br />
<br />
Offenbar zählt die Bestandskundschaft nicht mehr, höchstens als Melkkuh.<br />
 
            </div>
        </content>
        <dc:subject>wunderlich</dc:subject>
<dc:subject>ärger!</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/121-Andersweitig-unterwegs.html" rel="alternate" title="Andersweitig unterwegs" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2009-04-29T18:37:08Z</published>
        <updated>2009-04-29T18:37:08Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=121</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=121</wfw:commentRss>
    
    
        <id>http://blog.joerghoh.de/index.php?/archives/121-guid.html</id>
        <title type="html">Andersweitig unterwegs</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Ein Grund, warum in diesem Blog in der letzten so wenig passiert, sind meine Aktivitäten auf <a href="http://blog.joerghoh.de/exit.php?url_id=364&amp;entry_id=121"  onmouseover="window.status='http://cqdump.wordpress.com';return true;" onmouseout="window.status='';return true;" title="cqdump">cqdump</a> (vom Namen her angelehnt an das <a href="http://blog.joerghoh.de/exit.php?url_id=365&amp;entry_id=121"  onmouseover="window.status='http://mysqldump.azundris.com';return true;" onmouseout="window.status='';return true;" title="mysqldump">mysqldump</a> von Kris). Dort verbringe ich etwas Zeit, über die Stück Software (<a href="http://blog.joerghoh.de/exit.php?url_id=366&amp;entry_id=121"  onmouseover="window.status='http://www.day.com/content/day/en/products/web_content_management.html';return true;" onmouseout="window.status='';return true;" title="Day Communique">Day Communique</a>) zu erzählen, welches ich tagtäglich in unter den Fingern habe. (Ja, das ist das fragliche Stück Software, über welches ich bereits desöfteren geschrieben habe.)<br />
<br />
<br />
 
            </div>
        </content>
        <dc:subject>admin</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/120-Work-Live-Balance.html" rel="alternate" title="Work-Live-Balance?" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2009-03-02T19:58:43Z</published>
        <updated>2009-06-01T16:12:05Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=120</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=120</wfw:commentRss>
    
    
        <id>http://blog.joerghoh.de/index.php?/archives/120-guid.html</id>
        <title type="html">Work-Live-Balance?</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Auf <a href="http://blog.joerghoh.de/exit.php?url_id=363&amp;entry_id=120" title="http://www.xing.com"  onmouseover="window.status='http://www.xing.com';return true;" onmouseout="window.status='';return true;">Xing</a> kann man sich bei einer entsprechenden Einstellung der Startseite ständig von Jobangeboten bombardieren lassen. Diese Vorschläge liegen mitunter doch schonmal recht heftig daneben, so meinte Xing auch schonmal, eine Stelle als Fabrikleiter in Spanien könnte für mich interessant sein. Naja.<br />
<br />
Heute ist mir aber doch mal wieder eine recht ... amüsante ... Stellenbeschreibung untergekommen. Gesucht wird ein Projektleiter, zwar nicht mein Ding, aber trotzdem mal reinschauen und rausfinden, warum Xing das für mich interessant hält. Blabla, wir sind so toll, unter den Top 100 der deutschen Arbeitgeber, wir tun was für unsere Leute, sülz. <br />
<br />
"<em>Wir bieten eine optimale Work-Live-Balance</em>". Klingt ja wunderbar. "<em>Die Motivation der Mitarbeiter wird sowohl durch Fortbildungen wie auch durch gemeinsame Aktivitäten außerhalb der Arbeitszeit gefördert.</em> Ahja, die Wochenende sind auch schon verplant, wie wunderbar. Unten bei den Anforderungen dann der Brüller "<em>uneingeschränkte Mobilität</em>". <br />
<br />
Ich weiss jetzt nicht, was die unter "optimaler Work-Live-Balance" verstehen. Offenbar nicht dasselbe wie ich. Mein Ding ist "uneingeschränkte Mobilität" (was ich als 5 Nächte pro Woche im Hotel interpretiere) jedenfalls nicht, dafür bin ich viel zu sehr Familienmensch (Disclaimer: Bei 2 Nächten im Hotel sieht das schon wieder ganz anders aus). Für andere muss das aber "optimal" sein. <br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/119-Langwierig.html" rel="alternate" title="Langwierig" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2009-01-15T22:00:02Z</published>
        <updated>2009-01-15T22:00:02Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=119</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=119</wfw:commentRss>
    
    
        <id>http://blog.joerghoh.de/index.php?/archives/119-guid.html</id>
        <title type="html">Langwierig</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Der erste Durchlauf, um meine Mails von meinem lokalen Server über eine DSL-Leitung (1mbit upstream) auf einen Rootserver per imap zu synchronisieren.<br />
<br />
<pre><br />
++++ Statistics ++++<br />
Time                   : 295721 sec<br />
Messages transfered    : 394783<br />
Messages skipped       : 0<br />
Total bytes transfered : 2745423813<br />
Total bytes skipped    : 0<br />
Total bytes error      : 0<br />
Detected 0 errors<br />
Please, rate imapsync at http://freshmeat.net/projects/imapsync/<br />
</pre><br />
<br />
295721 Sekunden sind fast dreieinhalb Tage; die Geschwindigkeit ist auch nicht berauschend, in 3 Sekunden 4 Mails synchronisiert; insgesamt gingen etwas mehr 2,5 GByte über die Leitung, auf die Sekunden runtergerechnet ergibt sich eine genutzte Bandbreite von etwa 9 kbyte/s, was einer Auslastung der vorhandenen Bandbreite von unter 10 Prozent entspricht.<br />
<br />
An dieser Stelle würde eine Synchronisierung, die mehrere Ordner parallel bearbeitet, sicherlich Wunder bewirken.<br />
<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/118-Stehblues.html" rel="alternate" title="Stehblues" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2009-01-09T18:36:51Z</published>
        <updated>2009-01-10T10:10:00Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=118</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=118</wfw:commentRss>
    
    
        <id>http://blog.joerghoh.de/index.php?/archives/118-guid.html</id>
        <title type="html">Stehblues</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
<br />
<br />
<!-- xhtml clean youtube --><object type="application/x-shockwave-flash" width="425" height="344" data="http://www.youtube.com/v/MYEB7cEH0u8&amp;hl=en&amp;fs=1"><param name="movie" value="http://www.youtube.com/v/MYEB7cEH0u8&amp;hl=en&amp;fs=1" /><param name="movie" value="http://www.youtube.com/v/MYEB7cEH0u8&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param></object><!-- /xhtml clean youtube --><br />
<br />
<!-- <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/MYEB7cEH0u8&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/MYEB7cEH0u8&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object> --><br />
<br />
<br />
<br />
<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/117-Virtualisierung-....html" rel="alternate" title="Virtualisierung ..." />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2008-12-12T19:51:40Z</published>
        <updated>2008-12-12T19:51:40Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=117</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=117</wfw:commentRss>
    
    
        <id>http://blog.joerghoh.de/index.php?/archives/117-guid.html</id>
        <title type="html">Virtualisierung ...</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
heisst man das Phänomen, daß zu gewissen regelmässigen Zeitpunkten Applikationen langsam werden. Zu den Zeitpunkten nämlich, zu dem in allen virtuellen Maschinen auf einem Blech das Systemmanagement synchron anläuft und die ansonsten vorhandenen 40% idle CPU gnadenlos und über mehrere Minuten auf 0 dezimiert. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/116-Das-Unix-fuer-Maenner-Teil-6.html" rel="alternate" title="Das Unix für Männer (Teil 6)" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2008-10-07T19:36:02Z</published>
        <updated>2008-10-07T19:36:02Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=116</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=116</wfw:commentRss>
    
    
        <id>http://blog.joerghoh.de/index.php?/archives/116-guid.html</id>
        <title type="html">Das Unix für Männer (Teil 6)</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Es treten immer mal wieder Seltsamkeiten zutage, die einem das Unix für Männer bereithält. Der Gag des Tages: Grössenangaben bei Filesystemen.<br />
<br />
Es ist das tägliche Brot eines Admins, sich über den noch freien Festplattenplatz zu informieren. Unter allem, was sich zumindest halbwegs zur Unix-Familie zugehörig fühlt, gibt es dafür den Befehl "df" (wie "disk free"),der einem -- mehr oder weniger nett formatiert -- anzeigt, wieviel Platz denn noch auf einem Filesystem zur Verfügung steht.<br />
<br />
Das funktioniert überall, auch das Unix für Männer hält sich eigentlich auch ziemlich brav dran. Es gibt (ja wer hätte das gedacht?) nur eine einzige Ausnahme: Wenn man GPFS als Dateisystem einsetzt und es auf 2 unterschiedliche SAN-Devices installiert hat, quasi als RAID1 auf SAN-Ebene. Dann zeigt einem der "df" den Brutto-Wert an, als das doppelte der nutzbaren Kapazität. <br />
<br />
(Da sich das ganze auf alle Grössenangaben auf einem GPFS bezieht, ist eine Datei, die genau 1 Byte enthält, auch 2 Byte groß. Ich wundere mich, warum noch keine Anwendung deswegen übel auf die Nase gefallen ist. ) 
            </div>
        </content>
        <dc:subject>unix für männer</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/115-Das-Unix-fuer-Maenner-Teil-5.html" rel="alternate" title="Das Unix für Männer (Teil 5)" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2008-08-09T08:46:30Z</published>
        <updated>2008-08-11T19:46:30Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=115</wfw:comment>
    
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=115</wfw:commentRss>
    
            <category scheme="http://blog.joerghoh.de/index.php?/categories/2-Software" label="Software" term="Software" />
    
        <id>http://blog.joerghoh.de/index.php?/archives/115-guid.html</id>
        <title type="html">Das Unix für Männer (Teil 5)</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Neues von der <a href="http://blog.joerghoh.de/exit.php?url_id=362&amp;entry_id=115" title="http://blog.joerghoh.de/index.php?/archives/105-Das-Unix-fuer-Maenner-Teil-2.html"  onmouseover="window.status='http://blog.joerghoh.de/index.php?/archives/105-Das-Unix-fuer-Maenner-Teil-2.html';return true;" onmouseout="window.status='';return true;">IBM Java Front</a>. Wir haben die JVM inzwischen einigermassen stabil hingekriegt, nachdem wir MAXDATA so gesetzt haben, daß der native Heap für einen normalen Betrieb ausgereicht hat.<br />
<br />
Da die Performance des Gesamtsystems aus diversen Gründen suboptimal war, wurde nach einer kurzen Evaluation die JVM einem Upgrade auf 1.5 unterzogen, da ein paar Tests einen Performance-Gewinn in der Grössenordnug von 30-40% versprochen haben (wohl hauptsächlich aufgrund eines verbesserten Garbage Collector). Bisher hat noch niemand nachgewiesen, ob die Performance damit wirklich besser geworden ist, da wir als Hauptursache des Problems -- binnen einer Stunde nach einem Start der Applikation wurde sie erst sehr langsam und stürzte dann mit einem Out-of-Memory ab -- einen etwas unkontrolliert wachsender Cache innerhalb der JVM identifiziert haben, den wir dann auch recht schnell bändigen konnten.<br />
<br />
Seitdem die JVMs also wieder etwas länger laufen, gibt es das Phänomen, daß sie völlig unvermittelt stehenbleiben. Kein Eintrag im Log, truss zeigt keine Aktivität, man kann auch keinen Threaddump mehr schreiben. Nachdem wir mit etwas Mühe einen Speicher-Dump erzeugt haben, wurde die Ursache für den Stellstand von der IBM als ein ENOMEM in der libpthread identifziert. Juhu, schon wieder zu wenig native heap. Eine Überwachung mit svmon zeigt auch, daß sich der native heap mit der Zeit immer mehr füllt, selbst als wir noch etwas mehr Platz dafür freigeräumt hatten.<br />
<br />
Ob wir damit einen Bug in der JVM gefunden haben oder sich der benötigte native heap schlichtweg drastisch vergrössert, ist noch nicht absehbar. 
            </div>
        </content>
        <dc:subject>admin</dc:subject>
<dc:subject>unix für männer</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/114-Sysadmin-Appreciation-Day.html" rel="alternate" title="Sysadmin Appreciation Day" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2008-07-25T06:30:00Z</published>
        <updated>2008-07-25T06:30:00Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=114</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=114</wfw:commentRss>
    
    
        <id>http://blog.joerghoh.de/index.php?/archives/114-guid.html</id>
        <title type="html">Sysadmin Appreciation Day</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
<br />
<!-- xhtml clean youtube --><object type="application/x-shockwave-flash" width="425" height="344" data="http://www.youtube.com/v/FE_p5N89XQI&amp;hl=en&amp;fs=1"><param name="movie" value="http://www.youtube.com/v/FE_p5N89XQI&amp;hl=en&amp;fs=1" /><param name="movie" value="http://www.youtube.com/v/FE_p5N89XQI&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param></object><!-- /xhtml clean youtube --><br />
<br />
<!-- <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/FE_p5N89XQI&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/FE_p5N89XQI&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object> --><br />
<br />
<br />
<br />
Lasst es euch gut gehen, ihr habt's verdient. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/113-Handling-IO-errors.html" rel="alternate" title="Handling I/O errors" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2008-07-02T13:49:48Z</published>
        <updated>2008-07-02T13:49:48Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=113</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=113</wfw:commentRss>
    
            <category scheme="http://blog.joerghoh.de/index.php?/categories/2-Software" label="Software" term="Software" />
    
        <id>http://blog.joerghoh.de/index.php?/archives/113-guid.html</id>
        <title type="html">Handling I/O errors</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Meaningful error messages are good. Period. A lot of software badly sucks at this point. They throw "an error happened" or show a strange behaviour, but they don't say, that they cannot open a file because of missing access rights. I stress in application guidelines for java software, that every exception is getting caught and at least logged at an warning loglevel. This mechanism offers the possibility to increase the loglevel from the usual "ERROR" to something like "INFO" if we're debugging an issue. <br />
<br />
<br />
 <br /><a href="http://blog.joerghoh.de/index.php?/archives/113-Handling-IO-errors.html#extended">Continue reading "Handling I/O errors"</a>
            </div>
        </content>
        <dc:subject>java</dc:subject>
<dc:subject>software</dc:subject>
<dc:subject>ärger!!</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/112-Sinnvoller-Einsatz-von-Caches.html" rel="alternate" title="Sinnvoller Einsatz von Caches" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2008-04-20T14:42:48Z</published>
        <updated>2008-04-20T14:42:48Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=112</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=112</wfw:commentRss>
    
            <category scheme="http://blog.joerghoh.de/index.php?/categories/2-Software" label="Software" term="Software" />
    
        <id>http://blog.joerghoh.de/index.php?/archives/112-guid.html</id>
        <title type="html">Sinnvoller Einsatz von Caches</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Reale Crashtests in der Automobilindustrie sind kostspielig und zeitaufwendig. Eigentlich nicht notwendige Tests (etwa weil beim ersten Versuch vergessen wurde, den Kopf des Crashtest-Dummies zu montieren) sollten möglichst vermieden werden. <br />
Braucht man allerdings ein Jahr später die Ergebnisse nochmals, dann wird man den Test nicht nochmals nachvollziehen; stattdessen holt man aus dem Archiv die Ergebnisse des gewünschten Tests. Das erspart einem unnötigen Stress mit dem Chef und beschleunigt die aktuelle Arbeit enorm.<br />
<br />
Ähnlich verhält es sich bei Programmen. Aufwendig berechnete (Zwischen-) Ergebnisse werden vorgehalten, damit man bei Bedarf wieder darauf zurückgreifen kann, ohne die komplette Berechnung wiederholen zu müssen. Diese Zwischenspeicher nennt man üblicherweise Cache. (<a href="http://blog.joerghoh.de/exit.php?url_id=357&amp;entry_id=112" title="http://de.wikipedia.org/wiki/Cache"  onmouseover="window.status='http://de.wikipedia.org/wiki/Cache';return true;" onmouseout="window.status='';return true;">Die Hardware-Leute verwenden auch Caches</a>, aber dort werden sie etwas anders verwendet. Ich beschränke mich hier auf die Software.)<br />
 <br /><a href="http://blog.joerghoh.de/index.php?/archives/112-Sinnvoller-Einsatz-von-Caches.html#extended">Continue reading "Sinnvoller Einsatz von Caches"</a>
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/111-Worte,-die-man-als-Kunde-nicht-hoeren-moechte.html" rel="alternate" title="Worte, die man als Kunde nicht hören möchte" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2008-04-11T21:48:10Z</published>
        <updated>2008-04-11T21:48:10Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=111</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=111</wfw:commentRss>
    
            <category scheme="http://blog.joerghoh.de/index.php?/categories/2-Software" label="Software" term="Software" />
    
        <id>http://blog.joerghoh.de/index.php?/archives/111-guid.html</id>
        <title type="html">Worte, die man als Kunde nicht hören möchte</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Gespräch zwischen Software-Lieferant und Kunde:<br />
<br />
Kunde: "Ich habe euch hier einen Speicherdump eurer Software; ich hab' mal versucht, eine Analyse zu machen, aber mein Rechner (1GB RAM) ist wohl zu klein dafür, hat eine diesbezügliche Fehlermeldung geworfen. Bitte macht ihr das, ist ja euer Job."<br />
<br />
Lieferant: "So grosse Rechner haben wir nicht ..."<br />
<br />
So geschehen im Jahre des Herrn 2007  
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/110-Filesystem-or-database,-thats-the-question.html" rel="alternate" title="Filesystem or database, that's the question" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2008-04-02T19:54:55Z</published>
        <updated>2008-04-02T20:14:08Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=110</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=110</wfw:commentRss>
    
            <category scheme="http://blog.joerghoh.de/index.php?/categories/2-Software" label="Software" term="Software" />
    
        <id>http://blog.joerghoh.de/index.php?/archives/110-guid.html</id>
        <title type="html">Filesystem or database, that's the question</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Ich bin durch Zufall über einen wunderbaren Artikel gestolpert: <a href="http://blog.joerghoh.de/exit.php?url_id=356&amp;entry_id=110" title="http://www.openedit.org/community/permalink/2008/3/28/145858.html"  onmouseover="window.status='http://www.openedit.org/community/permalink/2008/3/28/145858.html';return true;" onmouseout="window.status='';return true;">Wie schreibe ich ein nicht-skalierbares Content Management System</a>.<br />
<br />
Es wird da allen Ernstes behauptet, das Datenbanken nur unnötige Komplexität haben und Personal brauchen, ein Filesystem dahingehend pflegeleicht und schnell sei.<br />
<br />
<div style="background:lightgrey;left-margin:50px;width:600px;padding:8px"><br />
When a database gets confused it can lose track of everything. And that's bad. Really bad. So bad they created a term for it. Corrupt. Being corrupt is so bad that every relational database requires an administrator function that acts as the gate keeper to ensure this very bad thing never happens.<br />
</div><br />
<br />
Ich glaube, ich muss den Menschen mal einladen und zeigen, welche Probleme man kriegt, wenn man das Rad neu erfinden will. Wir setzen so ein filebasiertes Content Management System ein und haben sehr viel Spaß damit ...<br />
<br />
 
            </div>
        </content>
        <dc:subject>cms</dc:subject>
<dc:subject>software</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.joerghoh.de/index.php?/archives/109-Das-Unix-fuer-Maenner-Teil-4.html" rel="alternate" title="Das Unix für Männer (Teil 4)" />
        <author>
            <name>Joerg</name>
                    </author>
    
        <published>2008-03-30T20:49:59Z</published>
        <updated>2008-03-30T20:49:59Z</updated>
        <wfw:comment>http://blog.joerghoh.de/wfwcomment.php?cid=109</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.joerghoh.de/rss.php?version=atom1.0&amp;type=comments&amp;cid=109</wfw:commentRss>
    
            <category scheme="http://blog.joerghoh.de/index.php?/categories/2-Software" label="Software" term="Software" />
    
        <id>http://blog.joerghoh.de/index.php?/archives/109-guid.html</id>
        <title type="html">Das Unix für Männer (Teil 4)</title>
        <content type="xhtml" xml:base="http://blog.joerghoh.de/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Die letzte Zeit war es etwas ruhiger hier, aber anderswo hat es gewaltig geknallt.<br />
<br />
Gegeben seien 2 Systeme, die gemeinsam auf ein Dateisystem lesend wie schreibend zugreifen müssen. NFS kommt aus diversen Gründen nicht in Frage. Dann bleibt im IBM-Umfeld GPFS übrig, das man dann auf SAN-Storage ablegt. Da man das Clusterfilesystem auch hochverfügbar haben will, wird das Filesystem auch gleich doppelt abgelegt auf zwei verschiedenen Storage-Systemen (quasi ein RAID 1 auf Schrank-Ebene).<br />
<br />
Beide Systeme sind entsprechend grossem Blech virtualisiert (LPARs) und greifen mittels VIO auf das Storage zu. Jedes VIO hat daher Verbindungen zu beiden Storage-Systemen.<br />
<br />
Dann ... fällt ein Storagesystem komplett aus. Zumindest derart, daß die Daten nicht mehr auf die Disks kommen. Und daß die Verbindungen zu diesem Storagesystem ausfallen. Tada, die Stunde der Hochverfügbarkeit hat geschlagen. Jetzt kann sich zeigen, ob das teure System sein Geld wirklich wert ist.<br />
<br />
Was machen allerdings die VIO Systeme auf beiden Blechen? Sie fahren <b>alle</b> Verbindungen zu sämtlichen Storage-Systemen herunter. Auf beiden LPARs blockieren sämtliche I/O Aufrufe, während das Clusterfilesystem noch gemountet ist. <br />
<br />
Diese Blockade der VIO Systeme lässt sich nur durch einen Reboot aufheben (nachdem das kaputte Storage auch richtig vom Rest der Umgebung abgetrennt wurde). Und weil die LPARs auch hängen, braucht man auch dort einen Reboot. Richtiges unmounten des Clusterfilesystems? Leider nicht möglich. Datenverlust bzw ein inkonsistentes Dateisystem ist zu erwarten.<br />
<br />
Nach diesen Reboots und bangen Stunden, wie denn das Filesystem aussieht, die erlösende Nachricht: Hat wohl keine bleibenden Schäden erlebt. Nach dem Reboot konnten die Applikationen wieder hochgefahren und in Betrieb genommen werden. Was gut ist, denn ein Restore aus dem Backup hätte noch Tage gedauert, da ja nicht nur dieses System betroffen war; das Restore der weniger wichtigen betroffenen Systeme war dann 5 Tage später dran.<br />
<br />
Jetzt hat es sich herausgestellt, daß die VIO da einen Bug gehabt hat; eigentlich hätten ja nur die Verbindungen zum defekten SAN-System gekappt werden dürfen. Das Testing des gefixten Treibers läuft...<br />
<br />
<br />
<br />
 
            </div>
        </content>
        <dc:subject>admin</dc:subject>
<dc:subject>unix für männer</dc:subject>

    </entry>

</feed>