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" :
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>
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
        <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>
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
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)
Merci d'avance.