Hi Everyone!

I'm using Jackrabbit-JCA 1.5.6 on JBoss 4.2.3 and the repository is being stored in MySQL 5.1.34 (with JNDIDatabaseFileSystem and JNDIDatabasePersistenceManager) after some inactivity time (we presume is the default wait_timeout in MySQL) the connection is closed and Jackrabbit is unable to connect to the database again. Here is the JBoss datasource definition:

<local-tx-datasource>
   <jndi-name>RepositoryDS</jndi-name>
   
<connection-url>jdbc:mysql://localhost:3306/repository?autoReconnect=true</connection-url>
   <driver-class>com.mysql.jdbc.Driver</driver-class>
   <user-name>user</user-name>
   <password>password</password>
   <min-pool-size>1</min-pool-size>
   <max-pool-size>10</max-pool-size>
   
<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>
</local-tx-datasource>


And the exception that is thrown:

org.jboss.util.NestedSQLException: Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000001:c59d:4a4bbc04:2553b status: ActionStatus.ABORT_ONLY >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000001:c59d:4a4bbc04:2553b status: ActionStatus.ABORT_ONLY >) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:95) at org.apache.jackrabbit.core.persistence.db.JNDIDatabasePersistenceManager.getConnection(JNDIDatabasePersistenceManager.java:77) at org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.initConnection(DatabasePersistenceManager.java:754) at org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.reestablishConnection(DatabasePersistenceManager.java:833) at org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.executeStmt(DatabasePersistenceManager.java:879) at org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.exists(DatabasePersistenceManager.java:697) at org.apache.jackrabbit.core.state.SharedItemStateManager.hasNonVirtualItemState(SharedItemStateManager.java:1345) at org.apache.jackrabbit.core.state.SharedItemStateManager.hasItemState(SharedItemStateManager.java:297) at org.apache.jackrabbit.core.state.XAItemStateManager.hasItemState(XAItemStateManager.java:295) at org.apache.jackrabbit.core.version.NodeStateEx.getOrCreatePropertyState(NodeStateEx.java:246) at org.apache.jackrabbit.core.version.NodeStateEx.setPropertyValues(NodeStateEx.java:228) at org.apache.jackrabbit.core.version.NodeStateEx.setPropertyValue(NodeStateEx.java:201) at org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.create(InternalVersionHistoryImpl.java:522) at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:313) at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:147) at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:234) at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:727)
at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1080)
at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:858)
at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180) Caused by: javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000001:c59d:4a4bbc04:2553b status: ActionStatus.ABORT_ONLY > at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:319) at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:402) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:849) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89)
... 151 more
2009-07-02 11:33:46,499 ERROR [org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager] failed to check existence of property state: f1b6c59d-72fc-4932-90f7-8e6d190bc45d/{http://www.jcp.org/jcr/1.0}versionableUuid java.sql.SQLException: Connection is not associated with a managed connection.org.jboss.resource.adapter.jdbc.jdk6.wrappedconnectionj...@76663cdf at org.jboss.resource.adapter.jdbc.WrappedConnection.lock(WrappedConnection.java:81) at org.jboss.resource.adapter.jdbc.WrappedStatement.lock(WrappedStatement.java:64) at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:718) at org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.executeStmt(DatabasePersistenceManager.java:865) at org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.exists(DatabasePersistenceManager.java:697) at org.apache.jackrabbit.core.state.SharedItemStateManager.hasNonVirtualItemState(SharedItemStateManager.java:1345) at org.apache.jackrabbit.core.state.SharedItemStateManager.hasItemState(SharedItemStateManager.java:297) at org.apache.jackrabbit.core.state.XAItemStateManager.hasItemState(XAItemStateManager.java:295) at org.apache.jackrabbit.core.version.NodeStateEx.getOrCreatePropertyState(NodeStateEx.java:246) at org.apache.jackrabbit.core.version.NodeStateEx.setPropertyValues(NodeStateEx.java:228) at org.apache.jackrabbit.core.version.NodeStateEx.setPropertyValue(NodeStateEx.java:201) at org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.create(InternalVersionHistoryImpl.java:522) at org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHistory(AbstractVersionManager.java:313) at org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAVersionManager.java:147) at org.apache.jackrabbit.core.version.AbstractVersionManager.getVersionHistory(AbstractVersionManager.java:234) at org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:727)
at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1080)
at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:858)
at org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180)

What can I do to prevent the connection from being closed ? Thanks in advance

Regards


Juan Diego Botiva

Reply via email to