Ulrik Hoffmann
2006-01-03 16:38:50 UTC
Moin zusammen,
ich habe ein Problem mit einer "geerbten" Intranet-Anwendung, bei der ich
folgendes Verhalten beobachte:
- zunächst verhält sich die Anwendung normal und verarbeitet ca. 1
Anfrage pro Sekunde
- kommt die Kombination "etwas längere Abfragezeit" und "ungeduldige"
Nutzer zusammen, klicken die Leute (Rheinländer ;-)) mehrfach auf die
Links in der Hoffnung, die Seiten würden schneller ausgeliefert.
- bei diesen Mehrfachrequests bleiben auf der Linux-Maschine Prozesse
hängen, ein "ps -ef | grep java | wc -l" liefert in etwa eine der Anzahl
nicht zu Ende gelaufenenen Requests höheren Wert.
- diese Prozesse werden nicht wieder abgebaut und bleiben bestehen
- irgendwann läuft die Anwendung gegen die im Connector eingestellten
"maxThreads" und antwortet zunächst schleppender, irgendwann gar nicht mehr
- Fehlermeldungen werden nicht protokolliert :-(
Die Anwendungen benutzt JSPs/Servlet und läuft gegen eine Oracle 10GR2
Datenbank. Das Verhalten wurde sowohl unter Tomcat 5.0.28/jdk1.4 und
5.5.14/jdk1.5 beobachtet, sowohl unter Suse 8.2 native und einem
gentoo-Linux unter VMware.
Die Datenbank-Transaktionen werden sauber geschlossen (open-cursors sinkt
nach Abarbeitung der Abfragen wieder auf normal).
Das Verhalten ist durch "Trommelfeuer" auf Aktualisieren-Button jederzeit
reproduzierbar.
Folgende Lösungen ziehe ich in Erwägung
- Erhöhung der maxThreads im Connector (derzeit 300) verschiebt das
Problem nach hinten. Was ist da eigentlich die Höchstgrenze?
- Wechsel auf Windows (*Nackenhaarsträub*), denn dort ist das Verhalten
definitiv nicht reproduzzierbar
- Umbau der kritischen Masken (serialisieren?)
Hat jemand von Euch ne Idee, woran das liegen könnte und kann mir einen
Tipp geben, wonach ich suchen soll?
Vielen Dank und viele Grüße
Ulrik
ich habe ein Problem mit einer "geerbten" Intranet-Anwendung, bei der ich
folgendes Verhalten beobachte:
- zunächst verhält sich die Anwendung normal und verarbeitet ca. 1
Anfrage pro Sekunde
- kommt die Kombination "etwas längere Abfragezeit" und "ungeduldige"
Nutzer zusammen, klicken die Leute (Rheinländer ;-)) mehrfach auf die
Links in der Hoffnung, die Seiten würden schneller ausgeliefert.
- bei diesen Mehrfachrequests bleiben auf der Linux-Maschine Prozesse
hängen, ein "ps -ef | grep java | wc -l" liefert in etwa eine der Anzahl
nicht zu Ende gelaufenenen Requests höheren Wert.
- diese Prozesse werden nicht wieder abgebaut und bleiben bestehen
- irgendwann läuft die Anwendung gegen die im Connector eingestellten
"maxThreads" und antwortet zunächst schleppender, irgendwann gar nicht mehr
- Fehlermeldungen werden nicht protokolliert :-(
Die Anwendungen benutzt JSPs/Servlet und läuft gegen eine Oracle 10GR2
Datenbank. Das Verhalten wurde sowohl unter Tomcat 5.0.28/jdk1.4 und
5.5.14/jdk1.5 beobachtet, sowohl unter Suse 8.2 native und einem
gentoo-Linux unter VMware.
Die Datenbank-Transaktionen werden sauber geschlossen (open-cursors sinkt
nach Abarbeitung der Abfragen wieder auf normal).
Das Verhalten ist durch "Trommelfeuer" auf Aktualisieren-Button jederzeit
reproduzierbar.
Folgende Lösungen ziehe ich in Erwägung
- Erhöhung der maxThreads im Connector (derzeit 300) verschiebt das
Problem nach hinten. Was ist da eigentlich die Höchstgrenze?
- Wechsel auf Windows (*Nackenhaarsträub*), denn dort ist das Verhalten
definitiv nicht reproduzzierbar
- Umbau der kritischen Masken (serialisieren?)
Hat jemand von Euch ne Idee, woran das liegen könnte und kann mir einen
Tipp geben, wonach ich suchen soll?
Vielen Dank und viele Grüße
Ulrik