0 Replies Latest reply on Oct 29, 2005 1:59 AM by mcaughey

    Software caused connection abort: recv failed

    mcaughey

      I have an application running on JBoss 4.0.2 using Hibernate 3.0 and MySQL Connector 3.1.10 all using the 1.5_04 JDK.

      I'm seeing this on Windows XP with MySQL 4.0.26 and RedHat Linux 7.1 with MySQL 3.23.58.

      I'm getting the following stack trace:

      
      java.net.SocketException: Software caused connection abort: recv failed
       at java.net.SocketInputStream.socketRead0(
      01:21:46,709 INFO [STDOUT] Native Method)
       at java.net.SocketInputStream.read(SocketInputStream.java:129)
       at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:105)
       at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:148)
       at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:176)
       at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1899)
       at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2348)
       at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2858)
       at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1570)
       at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
       at com.mysql.jdbc.Connection.execSQL(Connection.java:2978)
       at com.mysql.jdbc.Connection.execSQL(Connection.java:2902)
       at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:930)
       at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1024)
       at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:120)
       at org.hibernate.loader.Loader.getResultSet(Loader.java:1272)
       at org.hibernate.loader.Loader.doQuery(Loader.java:391)
       at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218)
       at org.hibernate.loader.Loader.doList(Loader.java:1593)
       at org.hibernate.loader.Loader.list(Loader.java:1577)
       at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:395)
       at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271)
       at org.hibernate.impl.SessionImpl.list(SessionImpl.java:844)
       at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
       at com.caughey.gameman.db.GameDB.getGameList(GameDB.java:79)
      


      Here's the configuration I'm using to configure my Datasource:
      <datasources>
       <local-tx-datasource>
       <jndi-name>GameManagerDS</jndi-name>
       <connection-url>jdbc:mysql://localhost:3306/gameman?autoReconnect=true</connection-url>
       <driver-class>com.mysql.jdbc.Driver</driver-class>
       <user-name>myuser</user-name>
       <password>mypassword</password>
       <min-pool-size>5</min-pool-size>
       <max-pool-size>20</max-pool-size>
       <idle-timeout-minutes>5</idle-timeout-minutes>
       <exception-sorter-class-name>com.mysql.jdbc.integration.jboss.ExtendedMysqlExceptionSorter</exception-sorter-class-name>
       <valid-connection-checker-class-name>com.mysql.jdbc.integration.jboss.MysqlValidConnectionChecker</valid-connection-checker-class-name>
       <new-connection-sql>select count(*) from Game</new-connection-sql>
       <check-valid-connection-sql>select count(*) from Game</check-valid-connection-sql>
       </local-tx-datasource>
      
      


      MySQL Time out variables are set accordingly:
      connect_timeout = 5
      interactive_timeout = 28800
      wait_timeout = 28800
      


      I've googled, I've search these forums, reviewed the books Mastering MySQL 4 and JBoss 4.0 Official Guide to no avail.

      It only happens after a night of the application sitting idle. So I suspect one of the two 8 hour (28800) settings are kicking in. How ever, according to everything I've read the autoReconnect=true and setting the idle-timeout-minutes should do the trick. Well it hasn't. Is there something i'm missing. I did see that I should set the 28800 settings to 50000. Setting longer isn't going to help. I may even want to set them shorter in which case I could expect the connections to go away faster.

      Any help will be appericiated.

      Thanks,
      Michael