Bonjour,
J'ai installé une application basé sur Spring et Hibernate (http://www.esup-portail.org/display/...lishment-level).
Au bout de quelques minutes d'inactivité, j'obtiens cette erreur dès que je souhaite re-naviguer dans l'application (Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.io.EOFException STACKTRACE: java.io.EOFException).
Comment dois-t-on paramétrer une application utilisant Hibernate avec un pool JNDI pour éviter ce genre de désagrément ?
Ci dessous le contenu du fichier "hibernate-jndi.cfg.xml" :
du server.xml (Tomcat) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> <property name="hibernate.connection.datasource">java:/comp/env/jdbc/esup-helpdesk</property> <property name="hibernate.connection.autocommit">false</property> <property name="hibernate.connection.charSet">UTF-8</property> <property name="hibernate.show_sql">false</property> <property name="hibernate.bytecode.use_reflection_optimizer">false</property> <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> <property name="connection.autoReconnectForPools">true</property> <property name="connection.is-connection-validation-required">true</property> <property name="connection.autoReconnect">true</property> <property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property> <property name="hibernate.jdbc.fetch_size">25</property> <property name="hibernate.jdbc.batch_size">25</property> <property name="hibernate.jdbc.use_scrollable_resultset">true</property> <property name="hibernate.jdbc.use_streams_for_binary">true</property> <property name="hibernate.max_fetch_depth">1</property> <property name="hibernate.cache.use_query_cache">false</property> <property name="hibernate.cache.use_second_level_cache">false</property> <property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <property name="dbcp.validationQuery">select 1</property> <property name="dbcp.testOnReturn">true</property> <property name="dbcp.testWhileIdle">true</property> <property name="dbcp.timeBetweenEvictionRunsMillis">10000</property> <property name="dbcp.numTestsPerEvictionRun">10</property> </session-factory>
Le Message d'erreur complet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <Context path="/tickets" docBase="/applis/Internet/esup-helpdesk/deploy" debug="1" crossContext="true"> <Resource name="jdbc/esup-helpdesk" auth="Container" type="javax.sql.DataSource" username="************" password="***********" driverClassName="com.mysql.jdbc.Driver" url="*****************" maxActive="100" maxIdle="10" maxWait="10000" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" /> </Context>
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 org.esupportail.commons.services.database.DatabaseException: org.hibernate.TransactionException: JDBC begin failed: org.esupportail.commons.services.database.AbstractDatabaseManagerStore.begin(AbstractDatabaseManagerStore.java:47) org.esupportail.commons.services.database.DatabaseUtils.begin(DatabaseUtils.java:97) org.esupportail.commons.web.servlet.FacesServlet.service(FacesServlet.java:355) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) java.lang.Thread.run(Thread.java:619) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - caused by: org.hibernate.TransactionException: JDBC begin failed: org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:96) org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353) org.esupportail.commons.services.database.hibernate.HibernateThreadConnectionData.beginTransaction(HibernateThreadConnectionData.java:114) org.esupportail.commons.services.database.hibernate.HibernateThreadData.beginTransaction(HibernateThreadData.java:74) org.esupportail.commons.services.database.hibernate.AbstractHibernateDatabaseManagerImpl.beginTransaction(AbstractHibernateDatabaseManagerImpl.java:134) org.esupportail.commons.services.database.AbstractDatabaseManagerStore.begin(AbstractDatabaseManagerStore.java:43) org.esupportail.commons.services.database.DatabaseUtils.begin(DatabaseUtils.java:97) org.esupportail.commons.web.servlet.FacesServlet.service(FacesServlet.java:355) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) java.lang.Thread.run(Thread.java:619) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.io.EOFException STACKTRACE: java.io.EOFException at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1905) at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2351) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2862) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666) at com.mysql.jdbc.Connection.execSQL(Connection.java:2988) at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:4913) at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:331) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:317) at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:91) at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353) at org.esupportail.commons.services.database.hibernate.HibernateThreadConnectionData.beginTransaction(HibernateThreadConnectionData.java:114) at org.esupportail.commons.services.database.hibernate.HibernateThreadData.beginTransaction(HibernateThreadData.java:74) at org.esupportail.commons.services.database.hibernate.AbstractHibernateDatabaseManagerImpl.beginTransaction(AbstractHibernateDatabaseManagerImpl.java:134) at org.esupportail.commons.services.database.AbstractDatabaseManagerStore.begin(AbstractDatabaseManagerStore.java:43) at org.esupportail.commons.services.database.DatabaseUtils.begin(DatabaseUtils.java:97) at org.esupportail.commons.web.servlet.FacesServlet.service(FacesServlet.java:355) 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.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) 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.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567) 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.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:619) ** END NESTED EXCEPTION ** Last packet sent to the server was 1 ms ago. com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2563) com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2862) com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571) com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666) com.mysql.jdbc.Connection.execSQL(Connection.java:2988) com.mysql.jdbc.Connection.setAutoCommit(Connection.java:4913) org.apache.tomcat.dbcp.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:331) org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:317) org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:91) org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353) org.esupportail.commons.services.database.hibernate.HibernateThreadConnectionData.beginTransaction(HibernateThreadConnectionData.java:114) org.esupportail.commons.services.database.hibernate.HibernateThreadData.beginTransaction(HibernateThreadData.java:74) org.esupportail.commons.services.database.hibernate.AbstractHibernateDatabaseManagerImpl.beginTransaction(AbstractHibernateDatabaseManagerImpl.java:134) org.esupportail.commons.services.database.AbstractDatabaseManagerStore.begin(AbstractDatabaseManagerStore.java:43) org.esupportail.commons.services.database.DatabaseUtils.begin(DatabaseUtils.java:97) org.esupportail.commons.web.servlet.FacesServlet.service(FacesServlet.java:355) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) java.lang.Thread.run(Thread.java:619)
Partager