
Das IT-Magazin der ORDIX AG mit Fachbeiträgen zu Datenbanken, Unix und Java/XML.
Weiterführende Links
Es gibt mehrere Linux-Rechner, auf denen nun Samba installiert werden soll. Damit könnte der Dienst bereitgestellt werden, mit dessen Hilfe per Windows Explorer auf die Linux-Rechner zugegriffen werden kann. Leider sind die Linux-Distributionen nicht einheitlich, so dass auch unterschiedliche Samba-Pakete nötig sind. Larry überlässt es nun A. Zubi, herauszufinden, welche Pakete benötigt werden und diese dann zu installieren.
Nun steht A. Zubi vor einem Problem. Je nach Linux-Version muss er ein bestimmtes Samba-Paket installieren. Und nirgends ist dokumentiert, auf welchem Rechner welche Distribution läuft. Da er von Larry ständig beobachtet wird, möchte er sich natürlich auch nicht zu "dumm" anstellen.
Also macht er sich daran, die Distributionen herauszufinden. Er kennt den Befehl uname -a zum Herausfinden der Systeminformationen und gibt ihn in der Kommandozeile ein:
Eingabe:
azubix: ~ # uname -aAusgabe:
Linux azubix 2.6.11.4-20a-smp #1 SMP Wed Mar 23 21:52:37 UTC 2005 i686 i686 i386 GNU/LinuxDas Ergebnis ist ja schon nicht schlecht. So erhält er folgende Informationen:
Doch leider ist A. Zubi nach dieser Eingabe immer noch nicht schlauer – die Ausgabe ist zwar schon aufschlussreich und sehr ausführlich, doch die Information, die er eigentlich braucht, ist nicht dabei. "Aber es muss doch einen Kommandozeilen-Befehl geben, der mir die Versionsnummer verrät", denkt A. Zubi verzweifelt.
Können Sie ihm helfen, die Linux-Distribution zu ermitteln, damit er die richtigen Samba-Pakete finden und installieren kann? Senden Sie Ihre Lösung bis zum 20. Januar 2006 an kniffel@ordix.de. Dieses Mal werden sich Larry und der neue Kollege A. Zubi bei euch bedanken und die fünf schnellsten Helfer an dieser Stelle in der nächsten Ausgabe namentlich nennen.
Die letzte Aufgabe, die Larry zu bewältigen hatte, war anscheinend nicht nur für Larry ein Problem. Leider kam ihm niemand zu Hilfe und so musste er sich selbst in Nachtschichten mit der Performance des Application Servers auseinandersetzen. Die Statistik hat er nur noch so gerade rechtzeitig abliefern können.
Zunächst musste Larry sich darüber klar werden, dass im JBoss Aufrufe von EJB-Methoden nicht direkt als Java-Methodenaufruf erfolgen. Mit den aus Java 1.3 bekannten dynamischen Proxys (java.lang.reflect.Proxy) werden die Aufrufe clientseitig verpackt und anschließend durch eine Kette von Objekten zur Serverseite und zurück gereicht. Diese Objekte in der Aufrufkette werden Interceptoren genannt und bilden einzelne Funktionsaspekte ab.
Larry hat sich in diese Kette eingeklinkt. Dazu hat er einen Client Interceptor und Server Interceptor geschrieben, die in ihrer Invoke-Methode den Aufruf der umschließenden Verarbeitung messen. Die Zeitmessung des Server Interceptors gibt er dabei an den Client Interceptor zurück. Leider konnte er dazu nicht die pay load-Liste des Interceptors nutzen, da diese nur auf dem Hinweg gefüllt bleibt!
Larry reicht diese Informationen daher für den Weg zwischen Server und Client Interceptor per Decorator-Pattern zurück. Die Werte der Zeitmessung werden im Client Interceptor sodann mit den Werten der eigenen Messung abgeglichen und per log4j in eine entsprechende Datei geschrieben.
Für Experten haben stellen wir nun auch eine detaillierte Lösung bereit.
Hinweis: Larry hätte es leichter gehabt, wenn er sich an die von JBoss mitgelieferte Webkonsole zur Analyse von Perfomance-Engpässen gehalten hätte. Damit lassen sich Aufrufzeiten des Servers weit komfortabler auswerten und Ursachen von langen Recherchezeiten besser eingrenzen.