PDA

View Full Version : V7R1: JDBC-Zugriff langsam



bussibaer
09-04-11, 12:42
Hallo,

bei uns ist eine Java-Anwendung installiert, die auf einem virtuellen(VM Ware) Windows 2003 - Server (Apache Tomcat) läuft und eine Daten-Bibliothek auf unserem System benutzt(Auch von dem Hersteller). Der Zugriff erfolgt mittels JDBC-Treiber. Die Bibliothek wurde von V5R4 migriert.

Unser Problem ist nun, das dieser Zugriff sehr langsam ist. Habt ihr vielleicht eine Idee, in welche Richtung wir suchen müssen.

Ich weiß, ist eigentlich Sache des Herstellers, aber die Zusammenarbeit mit dem ist etwas schwierig (um es gelinde auszudrücken).
Leider hat bei uns auch keiner so richtig Ahnung von Java.

Uns sind folgende Dinge noch dabei aufgefallen:
1. Die Bibliothek wird nicht journalisert
2. Ich finde kein SQLPKG um mir mal die SQL-Statements, die die Anwendung absetzt anzuschauen.

Wir haben uns auch schon mal die QZDASOINIT-Jobs angeschaut, und haben da Fehlermeldungen gefunden, die wir dem Hersteller haben zukommen lassen.

Die Verbindung zur Datenbank wird lt. Aussage des Herstellers über eine persistente Verbindung aufgebaut.

Solltet ihr noch Fragen haben, immer raus damit.

Fuerchau
09-04-11, 16:37
Irgendwo kannst du ggf. auf die Verbindungseigenschaften (Property-file?), den ConnectionString Einfluss nehmen.
Welche Parameter möglich sind, findest du hier IBM Toolbox for Java JDBC properties (http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/topic/rzahh/jdbcproperties.htm#jdbcproperties)
falls der AS/400-Treiber verwendet wird.
Dort kannst du auch SQL-Paketnamen und Ort beeinflussen.
Interessant ist ggf. den "server trace" zu aktivieren.

Klappt das nicht, so kannst du von aussen per QAQQINI steuern, dass du Informationen bekommst:
Creating the QAQQINI query options file (http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/topic/rzajq/createqaqqini.htm?resultof=%22%71%61%71%71%69%6e%6 9%22%20)
Mit MESSAGES_DEBUG kannst du entsprechende Nachricten bekommen.
Du kannst auch den Database-Monitor (z.B. im OpsNav) starten um SQL-Informationen zu sammeln.

Häufigste Ursache für Performanceprobleme:
- Fehlende Indizees
- keine Verwendung von Parametermarkern

KingofKning
10-04-11, 08:11
Interessant wäre evtl. auch zu sehen ob die reine Datenverbindung zwischen Vmware und AS/400 flott ist.
Einfach mal ein ftp mit 500 MB von der Kiste auf die AS/400 und wieder runter und das selbe mal auf einem normalen PC.

GG

BenderD
15-04-11, 08:10
... das ist ein Fall für den Database Monitor, da weiß man innerhalb eines halben Tages genau, was da abgeht. Ansonsten ist es immer gut etwas genauer zu erläutern was man da gerade unter langsam versteht, das erlaubt auch oft bereits Rückschlüsse auf das Problem (siehe auch einige andere postings von mir zu diesem Thema)

D*B


Hallo,

bei uns ist eine Java-Anwendung installiert, die auf einem virtuellen(VM Ware) Windows 2003 - Server (Apache Tomcat) läuft und eine Daten-Bibliothek auf unserem System benutzt(Auch von dem Hersteller). Der Zugriff erfolgt mittels JDBC-Treiber. Die Bibliothek wurde von V5R4 migriert.

Unser Problem ist nun, das dieser Zugriff sehr langsam ist. Habt ihr vielleicht eine Idee, in welche Richtung wir suchen müssen.

Ich weiß, ist eigentlich Sache des Herstellers, aber die Zusammenarbeit mit dem ist etwas schwierig (um es gelinde auszudrücken).
Leider hat bei uns auch keiner so richtig Ahnung von Java.

Uns sind folgende Dinge noch dabei aufgefallen:
1. Die Bibliothek wird nicht journalisert
2. Ich finde kein SQLPKG um mir mal die SQL-Statements, die die Anwendung absetzt anzuschauen.

Wir haben uns auch schon mal die QZDASOINIT-Jobs angeschaut, und haben da Fehlermeldungen gefunden, die wir dem Hersteller haben zukommen lassen.

Die Verbindung zur Datenbank wird lt. Aussage des Herstellers über eine persistente Verbindung aufgebaut.

Solltet ihr noch Fragen haben, immer raus damit.

bussibaer
18-04-11, 17:26
Sorry, das ich mich jetzt erst melde, aber ich hatte die letzte Zeit mit einigen Servern zu kämpfen.

@Fuerchau:

ich werde mir das mal alles anschauen. Ich selbst will da möglichst nicht rum fummeln, da ich mich mit Java nicht auskenne.
Ich tippe auf die Indizies zum einen und zum anderen darauf, das er auch Schrott-SQL's zusammenbaut.
Platzhalter wird er sicherlich nicht verwenden, da er die Geschichte nativ macht. Ich glaube nicht, das er mit prepare arbeitet.

@KingofKnight

Gute Idee, das probiere ich mal aus.

@BenderD

Tja, wie soll ich das sagen? Manchmal gehen die Änderungen sehr schnell, und manchmal dauert das quälend lange. Das muss nicht unbedingt am der iSeries liegen, das könnte auch an seinem Tomcat liegen. Ich kann das leider schlecht beschreiben.
Ich kann nur eines Sagen: Ich habe eine Anwendung in PHP(ODBC) gemacht, die auf meinem Rechner in der Firma läuft (Telefonauskunft) und die läuft sehr zügig, selbst bei großen Datenmengen.

BenderD
18-04-11, 17:34
... aber 'ne Uhr hast du schon zur Hand - und zählen kann bei euch auch jemand? ...
x Sätze in y Sekunden wär schon mal ein Anfang



Tja, wie soll ich das sagen? Manchmal gehen die Änderungen sehr schnell, und manchmal dauert das quälend lange. Das muss nicht unbedingt am der iSeries liegen, das könnte auch an seinem Tomcat liegen. Ich kann das leider schlecht beschreiben.
Ich kann nur eines Sagen: Ich habe eine Anwendung in PHP(ODBC) gemacht, die auf meinem Rechner in der Firma läuft (Telefonauskunft) und die läuft sehr zügig, selbst bei großen Datenmengen.

andreaspr@aon.at
19-04-11, 07:11
... aber 'ne Uhr hast du schon zur Hand - und zählen kann bei euch auch jemand? ...

hi bender,
ich glaub wirklich nicht, dass solche aussagen - zumindest die art und weise der botschaft - für dieses forum hilfreich sind. schließlich wollen wir hier im forum helfen und nicht beleidigen.
ich weis, dass du manchmal etwas zynisch bist, aber wir wollen nicht den usern das gefühl geben, nur weil sie hilfe brauchen, dass sie blöd sind!

zumindest sehe ich das so ...

AS400.lehrling
26-04-11, 13:48
Hallo,

bei uns ist eine Java-Anwendung installiert, die auf einem virtuellen(VM Ware) Windows 2003 - Server (Apache Tomcat) läuft und eine Daten-Bibliothek auf unserem System benutzt(Auch von dem Hersteller). Der Zugriff erfolgt mittels JDBC-Treiber. Die Bibliothek wurde von V5R4 migriert.

Unser Problem ist nun, das dieser Zugriff sehr langsam ist. Habt ihr vielleicht eine Idee, in welche Richtung wir suchen müssen.

Ich würde bei der Maschine ansetzen wo Apache läuft - Apache ist ein Resourcen Monster das mächtig an der CPU saugt:rolleyes:

Wen da noch Java mit prügelt wird die CPU schwer zu schaufeln haben.

Wenn auf Anwender Seite ebenfalls Java läuft kann auch den Client die Luft ausgehen (CPU Leistung zu gering).

Gruß AS400.lehrling