Domino 9 und frühere Versionen > ND6: Administration & Userprobleme
Websphere JSP Seiten crashen Dominoserver
Ralf_M_Petter:
Hallo Domino Freunde!
Ich habe folgendes Problem. Unsere Webseite läuft mittlerweile auf Websphere Express 5.1.1 auf einer Iseries. Die Daten der Webseite (Texte Bilder usw) liegen auf dem Domino Server 6.0.3 auf der selben Iseries. In den JSP wird über die Notes.jar mit der lokalen Zugriffsmethode auf die Dominodaten zugegriffen. Normalerweise läuft das einwandfrei. Ich arbeite auch wie empfohlen mit den richtigen Tricks um zu gewährleisten, dass auf jedes NotesThread.sinitThread() ein NotesThread.stermThread() kommt. Also sprich das NotesThread.stermThread() ist im finally des try catch Blocks der den Domino Code umschliesst. Aber ab und zu wenn ich den Websphere beende und neu starte, kommt es zu einer Hang Situation. Der Domino Server friert ein und reagiert auf keine Console Befehle mehr und auch der Websphere kann keine Zugriffe mehr machen. Man kann nur noch den Dominoserver mit endsbs domino00 *immed beenden. Dann beendet sich auch der Websphere Server. Danach gestaltet sich das starten der Server äussert schwierig. Der Domino startet zuerst einwandfrei und würde auch ohne Probleme laufen, jedoch sobald man den Websphere startet hängen Sie sich sofort, oder nach ein paar Sekunden in denen es funktioniert auf. Man muß dann ein paar mal probieren und plötzlich ohne erkennbaren Grund läuft es wieder.
Meine Vermutung ist, dass wenn man den Websphere beendet, kann es ab und zu passieren, dass Threads die momentan gerade zwischen NotesThread.sinitThread und dem dazugehörigen stermThread beendet werden. Ist das überhaupt möglich?
Die Zweite Frage Was passiert wirklich wenn ein sinitThread nicht abgeschlossen wird, und warum ist das nach dem Neustart des DominoServers und des Webservers nicht weg.
Wäre echt Spitze wenn da jemand was dazu sagen könnte.
Grüße
Ralf
Ralf_M_Petter:
Habe natürlich parallel zum Posten hier weitergeforscht und bin auf folgendes gekommen. Ich habe in meine JSP's an verschiedenen Stellen die Ausgabe von Stacktraces eingebaut um weitere Informationen zu bekommen, wenn der Zugriff auf Domino aus irgendeinem Grund scheitert. dabe bekomme ich folgenden Stacktrace
java.lang.Exception: Error initializing Java environment storage
at java.lang.Throwable.<init>(Throwable.java:195)
at java.lang.Exception.<init>(Exception.java:41)
at lotus.domino.NotesThread.sinitThread(NotesThread.java:177)
at org.apache.jsp._einbaut._jspService(_einbaut.java:166)
at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:396)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:852)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:950)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1019)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:592)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:204)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:125)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:286)
at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:116)
at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)
at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:615)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:449)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:912)
Aber die Freude, einer konkreten Fehlermeldung war zu früh, denn zu diesem Fehler bekomme ich in Google 0 Treffer auch in der Notes Knowledgebase konnte ich nichts finden. Kennt jemand vielleicht diesen Fehler. Würde mich über jede Hilfe freuen.
Grüße
Ralf
Marinero Atlántico:
Frage: Warum verwendest du keine
a) Model 2 Architecture wie z.B. Struts (echt nicht so schwierig)
b) Domino Toolkit for Domino (oder so ähnlich --> Taglibs für Zugriff auf Domino.
Diese Zeile sieht für mich merkwürdig aus:
--- Code: ---at org.apache.jsp._einbaut._jspService(_einbaut.java:166)
--- Ende Code ---
Wie kommt das?
Ralf_M_Petter:
Hallo Axel!
Das ist eine Webanwendung die schon sehr lange besteht und zu Zeiten entwickelt wurde, wo Struts und auch das Domino Toolkit for Domino noch nicht bestanden haben, bzw. noch in den Kinderschuhen gesteckt haben. Ein Umstellen der Bestandsapplikationen und auch unserer Datenbankzugriffsklassen auf ein neues System übersteigt momentan meine Ressourcen. Was kommt dir an der Zeile at org.apache.jsp._einbaut._jspService(_einbaut.java:166) komisch vor?
einbaut ist der Name der JSP Seite die gerade angezeigt wird. -einbaut.java ist vermutlich das servlet, dass der Websphere da draus generiert hat.
Mir geht es hauptsächlich um die Fehlermeldung "Error initializing Java environment storage" die offensichtlich die sinitThread() Methode von NotesThread wirft. Kann diese in Google nicht finden.
Grüße
Ralf
Marinero Atlántico:
Ich kenn die Expressversionen nicht, aber ich meine, ich hätte bei Websphere nie irgendwelche apache Klassen gesehen. Sieht so aus, als ob er die JSP-Engine von Tomcat benutzen würde?
Noch ein Punkt (und ich bin ziemlich am Rätseln): Kann es vielleicht daran liegen, dass Websphere mehrere Servlet-Instanzen des aus diesem JSP generierten Servlet anlegt und damit irgendwie die lokalen Verbindungen zu Domino belegt werden?
Ansonsten würde ich es mal auf der Webseite von Bob Balaban versuchen.
Gruß Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln