2009-12-03 17 views
6

estoy usando JNDI con Tomcat6 para administrar las conexiones MySQL, mi Catalina/domain.com/ROOT.xml tiene:MySQL no volver a conectar con JNDI Tomcat 6

<Resource name="jdbc/db" auth="Container" type="javax.sql.DataSource" 
    username="db1" password="somepass" driverClassName="com.mysql.jdbc.Driver"    
    url="jdbc:mysql://localhost:3306/db?autoReconnect=true" maxActive="15" maxIdle="3" 
    maxWait="5000" removeAbandoned="true" removeAbandonedTimeout="20" /> 

I aunque autoReconnect va a hacer el trabajo de volver a conectarse a la base de datos pero no es así, después de aproximadamente 8 horas de inactividad, mi aplicación escupe la conexión perdida a los errores de la base de datos. ¿Algunas ideas?

Gracias, Fedor

Respuesta

14

no uso autoReconnect. Hay problemas con él y it's been deprecated. Por ejemplo, podría tener un evento de desconexión/reconexión mientras un hilo está usando la conexión. En su lugar, tendré conexiones de prueba de grupo de conexiones con testOnBorrow antes de pasarlas a la aplicación. Aquí está un ejemplo:

<Resource name="jdbc/db" 
      auth="Container" 
      type="javax.sql.DataSource" 
      username="db1" 
      password="somepass" 
      driverClassName="com.mysql.jdbc.Driver" 
      url="jdbc:mysql://localhost:3306/db" 
      maxActive="15" 
      maxIdle="3" 
      maxWait="5000" 
      removeAbandoned="true" 
      removeAbandonedTimeout="20" 
      logAbandoned="true" 
      factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" 
      validationQuery="select 1" 
      minEvictableIdleTimeMillis="3600000" 
      timeBetweenEvictionRunsMillis="1800000" 
      numTestsPerEvictionRun="10" 
      testWhileIdle="true" 
      testOnBorrow="true" 
      testOnReturn="false" 
      /> 
+1

agradecimiento que trabajará – Fedor

+1

Cabe mencionar que con Tomcat, se puede utilizar el validationQuery más ligero y eficiente de "* de ping/\ * /". Ver: http://dev.mysql.com/doc/connector-j/en/connector-j-usagenotes-tomcat.html – Jon

Cuestiones relacionadas