-
Type: Bug
-
Status: Resolved
-
Priority: Critical
-
Resolution: Fixed
-
Affects Version/s: None
-
Component/s: Runtime
-
Tags:
-
Sprint:Sprint RepoTeam 7.1-1
Tranql is sorting connection errors. If the error is detected as fatal, the pool is immediately handled for reacting on the error which destroy the connection in the pool.
By default transql is injecting the org.tranql.connector.jdbc.KnownSQLStateExceptionSorter which states too much errors as fatak such as the h2 constraint errors 23506 as fatal.
2014-11-03 18:19:21,818 WARN [Nuxeo-Work-default-4] [org.apache.geronimo.connector.outbound.GeronimoConnectionEventListener] connectionErrorOccurred called with null org.h2.jdbc.JdbcBatchUpdateException: Referential integrity constraint violation: "CONTENT_ID_HIERARCHY_FK: PUBLIC.CONTENT FOREIGN KEY(ID) REFERENCES PUBLIC.HIERARCHY(ID) ('f0958317-8400-4928-b5fe-59b6336a326c')"; SQL statement: INSERT INTO "CONTENT" ("ID", "NAME", "LENGTH", "DATA", "ENCODING", "DIGEST", "MIME-TYPE") VALUES (?, ?, ?, ?, ?, ?, ?) [23506-177] at org.h2.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:1199) at org.tranql.connector.jdbc.StatementHandle.executeBatch(StatementHandle.java:155) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper.insertSimpleRows(JDBCRowMapper.java:592) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper.writeCreates(JDBCRowMapper.java:504) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper.write(JDBCRowMapper.java:474) at sun.reflect.GeneratedMethodAccessor67.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapperConnector.doInvoke(JDBCMapperConnector.java:22) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapperConnector.invoke(JDBCMapperConnector.java:62) at com.sun.proxy.$Proxy64.write(Unknown Source) at org.nuxeo.ecm.core.storage.sql.SoftRefCachingRowMapper.write(SoftRefCachingRowMapper.java:428) at org.nuxeo.ecm.core.storage.sql.SessionImpl.doFlush(SessionImpl.java:407) at org.nuxeo.ecm.core.storage.sql.SessionImpl.flush(SessionImpl.java:380) at org.nuxeo.ecm.core.storage.sql.SessionImpl.end(SessionImpl.java:1568) at org.apache.geronimo.transaction.manager.WrapperNamedXAResource.end(WrapperNamedXAResource.java:61) at org.apache.geronimo.transaction.manager.TransactionImpl.endResources(TransactionImpl.java:569) at org.apache.geronimo.transaction.manager.TransactionImpl.endResources(TransactionImpl.java:548) at org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:408) at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:255) at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252) at org.nuxeo.runtime.jtajca.NuxeoContainer$UserTransactionImpl.commit(NuxeoContainer.java:582) at org.nuxeo.runtime.transaction.TransactionHelper.commitOrRollbackTransaction(TransactionHelper.java:284) at org.nuxeo.ecm.core.work.AbstractWork.runWorkWithTransaction(AbstractWork.java:375) at org.nuxeo.ecm.core.work.AbstractWork.runWorkWithTransactionAndCheckExceptions(AbstractWork.java:312) at org.nuxeo.ecm.core.work.AbstractWork.run(AbstractWork.java:280) at org.nuxeo.ecm.core.work.WorkHolder.run(WorkHolder.java:52) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) org.h2.jdbc.JdbcSQLException: Referential integrity constraint violation: "CONTENT_ID_HIERARCHY_FK: PUBLIC.CONTENT FOREIGN KEY(ID) REFERENCES PUBLIC.HIERARCHY(ID) ('f0958317-8400-4928-b5fe-59b6336a326c')"; SQL statement: INSERT INTO "CONTENT" ("ID", "NAME", "LENGTH", "DATA", "ENCODING", "DIGEST", "MIME-TYPE") VALUES (?, ?, ?, ?, ?, ?, ?) [23506-177] at org.h2.message.DbException.getJdbcSQLException(DbException.java:344) at org.h2.message.DbException.get(DbException.java:178) at org.h2.message.DbException.get(DbException.java:154) at org.h2.constraint.ConstraintReferential.checkRowOwnTable(ConstraintReferential.java:373) at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:315) at org.h2.table.Table.fireConstraints(Table.java:909) at org.h2.table.Table.fireAfterRow(Table.java:927) at org.h2.command.dml.Insert.insertRows(Insert.java:162) at org.h2.command.dml.Insert.update(Insert.java:115) at org.h2.command.CommandContainer.update(CommandContainer.java:79) at org.h2.command.Command.executeUpdate(Command.java:254) at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:158) at org.h2.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:1184) at org.tranql.connector.jdbc.StatementHandle.executeBatch(StatementHandle.java:155) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper.insertSimpleRows(JDBCRowMapper.java:592) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper.writeCreates(JDBCRowMapper.java:504) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper.write(JDBCRowMapper.java:474) at sun.reflect.GeneratedMethodAccessor67.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapperConnector.doInvoke(JDBCMapperConnector.java:22) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapperConnector.invoke(JDBCMapperConnector.java:62) at com.sun.proxy.$Proxy64.write(Unknown Source) at org.nuxeo.ecm.core.storage.sql.SoftRefCachingRowMapper.write(SoftRefCachingRowMapper.java:428) at org.nuxeo.ecm.core.storage.sql.SessionImpl.doFlush(SessionImpl.java:407) at org.nuxeo.ecm.core.storage.sql.SessionImpl.flush(SessionImpl.java:380) at org.nuxeo.ecm.core.storage.sql.SessionImpl.end(SessionImpl.java:1568) at org.apache.geronimo.transaction.manager.WrapperNamedXAResource.end(WrapperNamedXAResource.java:61) at org.apache.geronimo.transaction.manager.TransactionImpl.endResources(TransactionImpl.java:569) at org.apache.geronimo.transaction.manager.TransactionImpl.endResources(TransactionImpl.java:548) at org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:408) at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:255) at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252) at org.nuxeo.runtime.jtajca.NuxeoContainer$UserTransactionImpl.commit(NuxeoContainer.java:582) at org.nuxeo.runtime.transaction.TransactionHelper.commitOrRollbackTransaction(TransactionHelper.java:284) at org.nuxeo.ecm.core.work.AbstractWork.runWorkWithTransaction(AbstractWork.java:375) at org.nuxeo.ecm.core.work.AbstractWork.runWorkWithTransactionAndCheckExceptions(AbstractWork.java:312) at org.nuxeo.ecm.core.work.AbstractWork.run(AbstractWork.java:280) at org.nuxeo.ecm.core.work.WorkHolder.run(WorkHolder.java:52) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) 2014-11-03 18:19:21,824 ERROR [Nuxeo-Work-default-4] [org.apache.geronimo.transaction.manager.RollbackTask] Unexpected exception committing org.apache.geronimo.connector.outbound.LocalXAResource@19b86f6c; continuing to commit other RMs javax.transaction.xa.XAException at org.apache.geronimo.connector.outbound.LocalXAResource.rollback(LocalXAResource.java:88) at org.apache.geronimo.transaction.manager.RollbackTask.run(RollbackTask.java:63) at org.apache.geronimo.transaction.manager.TransactionImpl.rollbackResources(TransactionImpl.java:584) at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:265) at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252) at org.nuxeo.runtime.jtajca.NuxeoContainer$UserTransactionImpl.commit(NuxeoContainer.java:582) at org.nuxeo.runtime.transaction.TransactionHelper.commitOrRollbackTransaction(TransactionHelper.java:284) at org.nuxeo.ecm.core.work.AbstractWork.runWorkWithTransaction(AbstractWork.java:375) at org.nuxeo.ecm.core.work.AbstractWork.runWorkWithTransactionAndCheckExceptions(AbstractWork.java:312) at org.nuxeo.ecm.core.work.AbstractWork.run(AbstractWork.java:280) at org.nuxeo.ecm.core.work.WorkHolder.run(WorkHolder.java:52) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: javax.resource.spi.LocalTransactionException: Unable to rollback at org.tranql.connector.jdbc.ManagedJDBCConnection.localTransactionRollback(ManagedJDBCConnection.java:113) at org.tranql.connector.AbstractManagedConnection$LocalTransactionImpl.rollback(AbstractManagedConnection.java:203) at org.apache.geronimo.connector.outbound.LocalXAResource.rollback(LocalXAResource.java:86) ... 13 more Caused by: org.h2.jdbc.JdbcSQLException: The object is already closed [90007-177] at org.h2.message.DbException.getJdbcSQLException(DbException.java:344) at org.h2.message.DbException.get(DbException.java:178) at org.h2.message.DbException.get(DbException.java:154) at org.h2.message.DbException.get(DbException.java:143) at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1465) at org.h2.jdbc.JdbcConnection.checkClosedForWrite(JdbcConnection.java:1453) at org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java:486) at org.tranql.connector.jdbc.ManagedJDBCConnection.localTransactionRollback(ManagedJDBCConnection.java:111) ... 15 more