Bon le probleme est simple avant j'utilisais un Driver Manager pour me connecter à ma base MySQL et donc au bout de 8 heures la connexion se fermait (timeout du Driver Manager).
Donc j'ai mis en place un pool de connexion (dbcp) que j'ai configuré à partir de l'interface Admin Tool de Tomcat :
Mais le problème continu à moitié :-) ...
En fait après 8 heures de connexion l' AutoReconnect se fait mais pas du premier coup il faut que je lance l'application 2/3 fois pour que l'autoReconnect passe, avant ca il me claque une exception(la meme que lorsque j'utilisais le Driver Manager).Et donc allez expliquer aux utilisateurs qu'il faut lancer l'appli 2/3 fois avant pour qu'elle fonctionne...


JNDI Name: jdbc/GST
Data Source URL: jdbc:mysql://localhost:3306/db_support?autoReconnect=true
JDBC Driver Class: org.gjt.mm.mysql.Driver
User Name: root
Password: ****


server.xml : (je fais pointer le contexte(SGST-0.2) sur le DataSource créé)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<Context path="/SGST-0.2" reloadable="true">
<ResourceLink global="jdbc/GST" name="jdbc/GST" type="javax.sql.DataSource" />
</Context></Host>

methode init() :

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
 
      public void init() throws ServletException{
         try {
            //récupération de la source de donnée
            Context initCtx = new InitialContext();
            ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/GST");
         } catch (Exception e) {
            throw new RuntimeGSTException(
                  "ERREUR - chargement data source. \n" + e);
         }
 
         try {
            con = ds.getConnection();
            conDotproject = ds.getConnection();
            init = true;
         } catch (SQLException e) {
            throw new RuntimeGSTException(
                  "ERREUR - recuperation connexion. \n" + e);
         }
      }
Exception :

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
 
exception
 
servletGST.domaine.RuntimeGSTException: java.sql.SQLException: Communication link failure: java.net.SocketException, underlying cause: Software caused connection abort: recv failed
 
** BEGIN NESTED EXCEPTION **
 
java.net.SocketException
MESSAGE: Software caused connection abort: recv failed
 
STACKTRACE:
 
java.net.SocketException: Software caused connection abort: recv failed
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(Unknown Source)
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1392)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1539)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1930)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1168)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1279)
   at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1225)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:2278)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:2225)
   at com.mysql.jdbc.Statement.executeQuery(Statement.java:1163)
   at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:205)
   at servletGST.mapping.PersistanceManagerDB.findCompanyById(PersistanceManagerDB.java:577)
   at servletGST.mapping.PersistanceManagerDB.makeUtilisateur(PersistanceManagerDB.java:1438)
   at servletGST.mapping.PersistanceManagerDB.findUtilisateurByLogin(PersistanceManagerDB.java:1160)
   at servletGST.web.ServletGST.doPost(ServletGST.java:68)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
   at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
   at java.lang.Thread.run(Unknown Source)
 
 
** END NESTED EXCEPTION **
 
 
   servletGST.mapping.PersistanceManagerDB.findCompanyById(PersistanceManagerDB.java:585)
   servletGST.mapping.PersistanceManagerDB.makeUtilisateur(PersistanceManagerDB.java:1438)
   servletGST.mapping.PersistanceManagerDB.findUtilisateurByLogin(PersistanceManagerDB.java:1160)
   servletGST.web.ServletGST.doPost(ServletGST.java:68)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)