Précédent   Forum du club des développeurs et IT Pro > Java > Serveurs, conteneurs, et Java EE > Tomcat
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 17/10/2012, 09h47   #1
Aikanaro
Invité de passage
 
Homme Guillaume Arnaud
Technicien SIG
Inscription : février 2005
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Arnaud
Localisation : France, Tarn et Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Technicien SIG
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : février 2005
Messages : 4
Points : 2
Points : 2
Par défaut Erreur HTTP 500 lors de l'arrêt redémarrage de la base Oracle

Bonjour,

Sur un serveur virtuel sur lequel est installé Windows Server 2008 R2 Standard SP1 64bit.

J'ai déployé un site web sur Apache Tomcat/6.0.35, installé à partir du 32-bit/64-bit Windows Service Installer téléchargé sur le site Apache Tomcat pour avoir l'interface graphique.

J'ai installé java et j'ai déclaré le Path JAVA_HOME : "C:\Program Files\Java\jdk1.7.0_03".

Dans Tomcat, j'ai configuré Java :
  • jvm : C:\Program Files\Java\jdk1.7.0_03\jre\bin\server\jvm.dll
  • java class path : C:\Tomcat\bin\bootstrap.jar;C:\Tomcat\bin\tomcat-juli.jar

puis : Java Options :
  • -Dcatalina.home=C:\Tomcat
  • -Dcatalina.base=C:\Tomcat
  • -Djava.endorsed.dirs=C:\Tomcat\endorsed
  • -Djava.io.tmpdir=C:\Tomcat\temp
  • -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
  • -Djava.util.logging.config.file=C:\Tomcat\conf\logging.properties
  • -Djava.security.auth.login.config=C:\Tomcat\conf\jaas.login
  • -XX:MaxPermSize=256M
  • -XX:-HeapDumpOnOutOfMemoryError

et enfin :
  • Initial memory pool : 512 MB
  • Maximum memory pool : 2048 MB
  • Thread stack size :

A 23h, l'administrateur oracle fait un stop/start de la base oracle pour ensuite lancer une sauvegarde complète.

Après cette sauvegarde, apparaît une erreur HTTP 500 :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
oct. 16, 2012 11:17:25 PM org.apache.catalina.core.ApplicationDispatcher invoke
Grave: "Servlet.service()" pour la servlet jsp a lancé une exception
java.sql.SQLRecoverableException: Il n'y a plus de données à lire dans le socket
	at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1200)
	at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1155)
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:279)
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:205)
	at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:861)
	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1145)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1267)
	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3493)
	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
	at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
	at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
	at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doEndTag(QueryTagSupport.java:224)
	at org.apache.jsp.jsp.cadastre.consultation.fiche_005fparcelle.dico_005flut_005fdgi_jsp._jspx_meth_sql_005fquery_005f0(dico_005flut_005fdgi_jsp.java:175)
	at org.apache.jsp.jsp.cadastre.consultation.fiche_005fparcelle.dico_005flut_005fdgi_jsp._jspx_meth_c_005fif_005f0(dico_005flut_005fdgi_jsp.java:135)
	at org.apache.jsp.jsp.cadastre.consultation.fiche_005fparcelle.dico_005flut_005fdgi_jsp._jspService(dico_005flut_005fdgi_jsp.java:87)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
	at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
	at org.apache.jsp.jsp.cadastre.consultation.fiche_005fparcelle_jsp._jspService(fiche_005fparcelle_jsp.java:236)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.imagis.geowt.core.server.filter.XSLTFilter.doFilter(XSLTFilter.java:98)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.imagis.geowt.core.server.filter.GeoWTServiceResponseHeaderFilter.doFilter(GeoWTServiceResponseHeaderFilter.java:30)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
	at java.lang.Thread.run(Thread.java:722)
 
oct. 16, 2012 11:17:25 PM org.apache.catalina.core.StandardWrapperValve invoke
Grave: "Servlet.service()" pour la servlet jsp a généré une exception
java.sql.SQLRecoverableException: Il n'y a plus de données à lire dans le socket
	at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1200)
	at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1155)
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:279)
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:205)
	at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:861)
	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1145)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1267)
	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3493)
	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
	at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
	at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
	at org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doEndTag(QueryTagSupport.java:224)
	at org.apache.jsp.jsp.cadastre.consultation.fiche_005fparcelle.dico_005flut_005fdgi_jsp._jspx_meth_sql_005fquery_005f0(dico_005flut_005fdgi_jsp.java:175)
	at org.apache.jsp.jsp.cadastre.consultation.fiche_005fparcelle.dico_005flut_005fdgi_jsp._jspx_meth_c_005fif_005f0(dico_005flut_005fdgi_jsp.java:135)
	at org.apache.jsp.jsp.cadastre.consultation.fiche_005fparcelle.dico_005flut_005fdgi_jsp._jspService(dico_005flut_005fdgi_jsp.java:87)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
	at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
	at org.apache.jsp.jsp.cadastre.consultation.fiche_005fparcelle_jsp._jspService(fiche_005fparcelle_jsp.java:236)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.imagis.geowt.core.server.filter.XSLTFilter.doFilter(XSLTFilter.java:98)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.imagis.geowt.core.server.filter.GeoWTServiceResponseHeaderFilter.doFilter(GeoWTServiceResponseHeaderFilter.java:30)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
	at java.lang.Thread.run(Thread.java:722)
D'où peut provenir cette erreur? Je commence à manquer d'idée après avoir tenter de changer la jvm et la librairie ojdbc6.

Merci de votre aide.

Guillaume.

ps : pour info, sur le tomcat manager :

Version de serveur : Apache Tomcat/6.0.35
Version de la JVM :1.7.0_03-b05
Fournisseur de la JVM : Oracle Corporation
Nom d'OS : Windows Server 2008 R2
Version d'OS : 6.1
Architecture d'OS : amd64
Aikanaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2012, 19h02   #2
Desboys
Membre éclairé
 
Homme Sébastien Desbois
Ingénieur développement logiciels
Inscription : février 2005
Messages : 227
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Desbois
Âge : 30
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2005
Messages : 227
Points : 381
Points : 381
Bonjour,

ta JSP plante lors de l'exécution d'une requête vers le serveur.

J'ai déjà vécu des situations où les connexions JDBC du pool n'étaient pas considérées comme invalides, et plantaient l'applicatif.

Il te faut vérifier la configuration de déploiement de la DataSource:
- valider la connexion ( paramètres validationQuery & validationQueryTimeout )
- garantir la validité à l'acquisistion ( paramètre testOnBorrow )
- éventuellement regarder du côté du paramètre testWhileIdle.

Si on relève le nez du simple aspect technique, est-ce que ta database est fonctionnelle pendant la plage "restart + backup"? si non, il peut être préférable de travailler sur une plage d'indisponibilité de ton applicatif.

Cordialement,
S. Desbois
Desboys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2012, 14h47   #3
Aikanaro
Invité de passage
 
Homme Guillaume Arnaud
Technicien SIG
Inscription : février 2005
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Arnaud
Localisation : France, Tarn et Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Technicien SIG
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : février 2005
Messages : 4
Points : 2
Points : 2
Bonjour,

Pour ce qui est de la disponibilité de la base pendant le backup, elle l'est car :
- une autre application se connecte au même moment sur la même base et fonctionne (et même d'autre jsp du même site fonctionne).
- seul un restart de Tomcat refait fonctionner la connexion donc la connexion n'est pas cassé du au backup mais bien au stop.

Pour contourner le problème, j'ai mis en place en planification de tache, un redémarrage de tomcat, une vingtaine de minutes après le stop pour être sûr que la base soit restart.

Je vais maintenant investiguer avec tes informations :

Citation:
- valider la connexion ( paramètres validationQuery & validationQueryTimeout )
- garantir la validité à l'acquisistion ( paramètre testOnBorrow )
- éventuellement regarder du côté du paramètre testWhileIdle.
Merci.

Guillaume
Aikanaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2013, 09h09   #4
Aikanaro
Invité de passage
 
Homme Guillaume Arnaud
Technicien SIG
Inscription : février 2005
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Arnaud
Localisation : France, Tarn et Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Technicien SIG
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : février 2005
Messages : 4
Points : 2
Points : 2
Merci de vos indices. A partir de ces dernier j'ai pu trouver ma solution : Perte connexion Tomcat/Oracle en prod suite à sauvegarde à froid.

Ca marche ! Merci !

Guillaume
Aikanaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h39.


 
 
 
 
Partenaires

Hébergement Web