JBESB-Internal/DeadLetterService PersistAction
noel.rocher Mar 5, 2008 10:51 AMthis action is based on the class "org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl"
where the transaction isolation level is setup to Connection.TRANSACTION_READ_UNCOMMITTED :
... public boolean redeliver(URI uuid) throws MessageStoreException { boolean isDelivered=false; boolean error=false; Connection con = null; try { con = mgr.getConnection(); con.setAutoCommit(false); con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED); ...
This is producing only warnings but the exception make the redelivry to fail :
... catch (SQLException e) { if (logger.isDebugEnabled()) { logger.debug("Deadlocks may occur under normal processing"); logger.debug(e.getMessage(), e); } error=true; } ...
here is the sample logs in DEBUG level :
2008-03-05 15:44:06,916 DEBUG [org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl] Deadlocks may occur under normal processing 2008-03-05 15:44:06,916 DEBUG [org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl] READ_COMMITTED and SERIALIZABLE are the only valid transaction levels java.sql.SQLException: READ_COMMITTED and SERIALIZABLE are the only valid transaction levels at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1608) at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.setJdbcTransactionIsolation(BaseWrapperManagedConnection.java:534) at org.jboss.resource.adapter.jdbc.WrappedConnection.setTransactionIsolation(WrappedConnection.java:390) at org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl.redeliver(DBMessageStoreImpl.java:372) at org.jboss.soa.esb.actions.MessageRedeliverer.process(MessageRedeliverer.java:74) at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:316) at org.jboss.soa.esb.listeners.ScheduleListener.onSchedule(ScheduleListener.java:121) at org.jboss.soa.esb.schedule.ScheduleProvider$ESBScheduledJob.execute(ScheduleProvider.java:217) at org.quartz.core.JobRunShell.run(JobRunShell.java:203) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520) 2008-03-05 15:44:06,916 WARN [org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory] Error resetting transaction isolation java.sql.SQLException: READ_COMMITTED and SERIALIZABLE are the only valid transaction levels at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1608) at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.cleanup(BaseWrapperManagedConnection.java:189) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.returnConnection(InternalManagedConnectionPool.java:332) at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.returnConnection(JBossManagedConnectionPool.java:629) at org.jboss.resource.connectionmanager.BaseConnectionManager2.returnManagedConnection(BaseConnectionManager2.java:363) at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.connectionClosed(TxConnectionManager.java:639) at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.closeHandle(BaseWrapperManagedConnection.java:266) at org.jboss.resource.adapter.jdbc.WrappedConnection.close(WrappedConnection.java:129) at org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl.redeliver(DBMessageStoreImpl.java:435) at org.jboss.soa.esb.actions.MessageRedeliverer.process(MessageRedeliverer.java:74) at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:316) at org.jboss.soa.esb.listeners.ScheduleListener.onSchedule(ScheduleListener.java:121) at org.jboss.soa.esb.schedule.ScheduleProvider$ESBScheduledJob.execute(ScheduleProvider.java:217) at org.quartz.core.JobRunShell.run(JobRunShell.java:203) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
good candidate for Jira ?