[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - XAException XAER_DUPID in CMP EJB finder invoked from a sche
torf
do-not-reply at jboss.com
Thu Jan 11 14:25:36 EST 2007
Hi,
we have a org.jboss.varia.scheduler.Schedulable implementation which invokes a SLSB (MessageSchedulerTimer), which in turn invokes a CMP entity bean's (MessageEntryBean) finder method. Often it works fine, but sometimes the finder fails with a XAExcpetion with errorCode XAER_DUPID.
It is running on a JBoss 4.0.4.GA with no other cluster members, and no other JBoss instances running on the same computer.
Stack trace for a successful scheduler run (at 15:00:00), followed by one with XAER_DUPID (at 15:00:20). (Not shown here: the next run at 15:00:40 succeeds.)
2007-01-11 15:00:00,962 DEBUG [org.jboss.varia.scheduler.Scheduler$Listener] Listener.handleNotification(), notification: javax.management.timer.TimerNotification[source=jboss:service=Timer][type=Schedule][message=Scheduler Notification]
| 2007-01-11 15:00:00,962 DEBUG [org.jboss.varia.scheduler.Scheduler$Listener] Scheduler is started: true
| 2007-01-11 15:00:00,962 DEBUG [de.mobilcom.messenger.scheduler.SchedulerTimerBean] onTimeout() invoked
| 2007-01-11 15:00:00,962 DEBUG [de.mobilcom.messenger.scheduler.SchedulerTimerBean] handleOverduedMessages() invoked with RescheduleDelayMin=1,RescheduleDelayMax=50000000,RescheduleCountMax=1000
| 2007-01-11 15:00:00,962 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.MessageEntryBean#findByTransmissionDate] Executing SQL: SELECT t0_o.id, t0_o.deleteDate, t0_o.message, t0_o.originator, t0_o.originatorCode, t0_o.originatorKey, t0_o.transmissionDate, t0_o.transmissionDate FROM messenger_messages t0_o WHERE (t0_o.transmissionDate < ?) ORDER BY t0_o.transmissionDate DESC
| 2007-01-11 15:00:00,972 DEBUG [de.mobilcom.messenger.scheduler.SchedulerTimerBean] handleOverduedMessages() no overdued messages found
| 2007-01-11 15:00:00,972 DEBUG [de.mobilcom.messenger.scheduler.SchedulerTimerBean] handleOutdatedMessages() invoked with RemoveCountMax=-1
| 2007-01-11 15:00:00,972 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.MessageEntryBean#findByDeleteDate] Executing SQL: SELECT t0_o.id, t0_o.deleteDate, t0_o.message, t0_o.originator, t0_o.originatorCode, t0_o.originatorKey, t0_o.transmissionDate, t0_o.deleteDate FROM messenger_messages t0_o WHERE (t0_o.deleteDate < ?) ORDER BY t0_o.deleteDate ASC
| 2007-01-11 15:00:00,982 DEBUG [de.mobilcom.messenger.scheduler.SchedulerTimerBean] handleOutdatedMessages() no outdated messages found
| 2007-01-11 15:00:00,982 DEBUG [de.mobilcom.messenger.scheduler.SchedulerTimerBean] onTimeout() returned within 20 [ms]
| 2007-01-11 15:00:00,982 DEBUG [org.jboss.varia.scheduler.Scheduler$Listener] Remaining Repititions: -1, wait for next call to stop: false
| 2007-01-11 15:00:20,991 DEBUG [org.jboss.varia.scheduler.Scheduler$Listener] Listener.handleNotification(), notification: javax.management.timer.TimerNotification[source=jboss:service=Timer][type=Schedule][message=Scheduler Notification]
| 2007-01-11 15:00:20,991 DEBUG [org.jboss.varia.scheduler.Scheduler$Listener] Scheduler is started: true
| 2007-01-11 15:00:20,991 DEBUG [de.mobilcom.messenger.scheduler.SchedulerTimerBean] onTimeout() invoked
| 2007-01-11 15:00:20,991 DEBUG [de.mobilcom.messenger.scheduler.SchedulerTimerBean] handleOverduedMessages() invoked with RescheduleDelayMin=1,RescheduleDelayMax=50000000,RescheduleCountMax=1000
| 2007-01-11 15:00:20,991 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.MessageEntryBean#findByTransmissionDate] Executing SQL: SELECT t0_o.id, t0_o.deleteDate, t0_o.message, t0_o.originator, t0_o.originatorCode, t0_o.originatorKey, t0_o.transmissionDate, t0_o.transmissionDate FROM messenger_messages t0_o WHERE (t0_o.transmissionDate < ?) ORDER BY t0_o.transmissionDate DESC
| 2007-01-11 15:00:20,991 WARN [org.jboss.tm.TransactionImpl] XAException: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=1052360-D/368, BranchQual=, localId=368] errorCode=XAER_DUPID
| javax.transaction.xa.XAException
| at com.informix.jdbcx.IfxXAResource.start(IfxXAResource.java:451)
| at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.start(XAManagedConnection.java:117)
| at org.jboss.tm.TransactionImpl$Resource.startResource(TransactionImpl.java:2063)
| at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:581)
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.enlist(TxConnectionManager.java:757)
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:548)
| at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:323)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:501)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:382)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:812)
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbstractQueryCommand.java:225)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbstractQueryCommand.java:144)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCFindEntitiesCommand.execute(JDBCFindEntitiesCommand.java:54)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.findEntities(JDBCStoreManager.java:613)
| at org.jboss.ejb.plugins.CMPPersistenceManager.findEntities(CMPPersistenceManager.java:337)
| at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.findEntities(CachedConnectionInterceptor.java:242)
| at org.jboss.ejb.EntityContainer.findLocal(EntityContainer.java:655)
| at sun.reflect.GeneratedMethodAccessor97.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
| at org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:1130)
| at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:105)
| at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:203)
| at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:189)
| at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:105)
| at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:134)
| at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:76)
| at org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCreationInterceptor.java:43)
| at org.jboss.ejb.plugins.CallValidationInterceptor.invokeHome(CallValidationInterceptor.java:56)
| at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:125)
| at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
| at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:161)
| at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:145)
| at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:132)
| at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyFactoryFinderInterceptor.java:107)
| at org.jboss.ejb.EntityContainer.internalInvokeHome(EntityContainer.java:514)
| at org.jboss.ejb.Container.invoke(Container.java:975)
| at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invokeHome(BaseLocalProxyFactory.java:359)
| at org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java:133)
| at $Proxy95.findByTransmissionDate(Unknown Source)
| at de.mobilcom.messenger.repository.RepositoryEntityImpl.queryOverduedMessages(RepositoryEntityImpl.java:232)
| at de.mobilcom.messenger.scheduler.SchedulerTimerBean.handleOverduedMessages(SchedulerTimerBean.java:271)
| at de.mobilcom.messenger.scheduler.SchedulerTimerBean.onTimeout(SchedulerTimerBean.java:212)
| at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
| at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237)
| at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
| at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169)
| at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
| at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
| at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
| at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
| at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168)
| at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
| at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:136)
| at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
| at org.jboss.ejb.Container.invoke(Container.java:954)
| at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169)
| at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118)
| at org.jboss.invocation.InvokerInterceptor.invokeLocalMarshalled(InvokerInterceptor.java:292)
| at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.java:61)
| at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
| at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
| at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)
| at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
| at $Proxy77.onTimeout(Unknown Source)
| at de.mobilcom.framework.timer.TimedObjectSchedulableRemote.perform(TimedObjectSchedulableRemote.java:118)
| at org.jboss.varia.scheduler.Scheduler$Listener.handleNotification(Scheduler.java:1235)
| at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.mx.notification.NotificationListenerProxy.invoke(NotificationListenerProxy.java:153)
| at $Proxy10.handleNotification(Unknown Source)
| at javax.management.NotificationBroadcasterSupport.handleNotification(Unknown Source)
| at javax.management.NotificationBroadcasterSupport.sendNotification(Unknown Source)
| at javax.management.timer.Timer.sendNotification(Unknown Source)
| at javax.management.timer.Timer.notifyAlarmClock(Unknown Source)
| at javax.management.timer.TimerAlarmClock.run(Unknown Source)
| at java.util.TimerThread.mainLoop(Unknown Source)
| at java.util.TimerThread.run(Unknown Source)
| 2007-01-11 15:00:20,991 ERROR [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.MessageEntryBean#findByTransmissionDate] Find failed
| org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=1052360-D/368, BranchQual=, localId=368]); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=1052360-D/368, BranchQual=, localId=368]))
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbstractQueryCommand.java:225)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbstractQueryCommand.java:144)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCFindEntitiesCommand.execute(JDBCFindEntitiesCommand.java:54)
| at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.findEntities(JDBCStoreManager.java:613)
| at org.jboss.ejb.plugins.CMPPersistenceManager.findEntities(CMPPersistenceManager.java:337)
| at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.findEntities(CachedConnectionInterceptor.java:242)
| at org.jboss.ejb.EntityContainer.findLocal(EntityContainer.java:655)
| at sun.reflect.GeneratedMethodAccessor97.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
| at org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:1130)
| at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:105)
| at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:203)
| at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:189)
| at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:105)
| at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:134)
| at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:76)
| at org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCreationInterceptor.java:43)
| at org.jboss.ejb.plugins.CallValidationInterceptor.invokeHome(CallValidationInterceptor.java:56)
| at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:125)
| at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
| at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:161)
| at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:145)
| at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:132)
| at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyFactoryFinderInterceptor.java:107)
| at org.jboss.ejb.EntityContainer.internalInvokeHome(EntityContainer.java:514)
| at org.jboss.ejb.Container.invoke(Container.java:975)
| at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invokeHome(BaseLocalProxyFactory.java:359)
| at org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java:133)
| at $Proxy95.findByTransmissionDate(Unknown Source)
| at de.mobilcom.messenger.repository.RepositoryEntityImpl.queryOverduedMessages(RepositoryEntityImpl.java:232)
| at de.mobilcom.messenger.scheduler.SchedulerTimerBean.handleOverduedMessages(SchedulerTimerBean.java:271)
| at de.mobilcom.messenger.scheduler.SchedulerTimerBean.onTimeout(SchedulerTimerBean.java:212)
| at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
| at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237)
| at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
| at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169)
| at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
| at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
| at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
| at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
| at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168)
| at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
| at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:136)
| at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
| at org.jboss.ejb.Container.invoke(Container.java:954)
| at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169)
| at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118)
| at org.jboss.invocation.InvokerInterceptor.invokeLocalMarshalled(InvokerInterceptor.java:292)
| at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.java:61)
| at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
| at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
| at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)
| at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
| at $Proxy77.onTimeout(Unknown Source)
| at de.mobilcom.framework.timer.TimedObjectSchedulableRemote.perform(TimedObjectSchedulableRemote.java:118)
| at org.jboss.varia.scheduler.Scheduler$Listener.handleNotification(Scheduler.java:1235)
| at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.mx.notification.NotificationListenerProxy.invoke(NotificationListenerProxy.java:153)
| at $Proxy10.handleNotification(Unknown Source)
| at javax.management.NotificationBroadcasterSupport.handleNotification(Unknown Source)
| at javax.management.NotificationBroadcasterSupport.sendNotification(Unknown Source)
| at javax.management.timer.Timer.sendNotification(Unknown Source)
| at javax.management.timer.Timer.notifyAlarmClock(Unknown Source)
| at javax.management.timer.TimerAlarmClock.run(Unknown Source)
| at java.util.TimerThread.mainLoop(Unknown Source)
| at java.util.TimerThread.run(Unknown Source)
| Caused by: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=1052360-D/368, BranchQual=, localId=368])
| at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:329)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:501)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:382)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:812)
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
| ... 81 more
| Caused by: javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=1052360-D/368, BranchQual=, localId=368]
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:728)
| at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:561)
| at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:323)
| ... 85 more
| 2007-01-11 15:00:21,001 DEBUG [de.mobilcom.messenger.scheduler.SchedulerTimerBean] handleOverduedMessages() no overdued messages found
| 2007-01-11 15:00:21,001 DEBUG [de.mobilcom.messenger.scheduler.SchedulerTimerBean] handleOutdatedMessages() invoked with RemoveCountMax=-1
| 2007-01-11 15:00:21,001 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.MessageEntryBean#findByDeleteDate] Executing SQL: SELECT t0_o.id, t0_o.deleteDate, t0_o.message, t0_o.originator, t0_o.originatorCode, t0_o.originatorKey, t0_o.transmissionDate, t0_o.deleteDate FROM messenger_messages t0_o WHERE (t0_o.deleteDate < ?) ORDER BY t0_o.deleteDate ASC
| 2007-01-11 15:00:21,001 WARN [org.jboss.tm.TransactionImpl] XAException: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=1052360-D/368, BranchQual=, localId=368] errorCode=XAER_DUPID
| javax.transaction.xa.XAException
| at com.informix.jdbcx.IfxXAResource.start(IfxXAResource.java:451)
| at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.start(XAManagedConnection.java:117)
|
The Schedulable deployment is:
| <?xml version="1.0" encoding="UTF-8"?>
| <server>
| <classpath codebase="deploy/applications/MessengerService" archives="MessengerService-api-v3.0.jar"/>
| <mbean code="org.jboss.varia.scheduler.Scheduler" name=":service=Scheduler,schedule=MessengerService">
| <depends>jboss.j2ee:service=EARDeployment,url='MessengerService-all-v3.0.0.ear'</depends>
| <attribute name="StartAtStartup">true</attribute>
| <attribute name="SchedulableClass">de.mobilcom.framework.timer.TimedObjectSchedulableRemote</attribute>
| <attribute name="SchedulableArguments">ejb/MessageSchedulerTimer</attribute>
| <attribute name="SchedulableArgumentTypes">java.lang.String</attribute>
| <attribute name="InitialStartDate">0</attribute>
| <attribute name="SchedulePeriod">20000</attribute>
| <attribute name="InitialRepetitions">-1</attribute>
| </mbean>
| </server>
|
The relevant part of ejb-jar.xml:
| <?xml version="1.0" encoding="UTF-8"?>
| <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans
| 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
| <ejb-jar >
| <description><![CDATA[No Description.]]></description>
| <display-name>Generated by XDoclet</display-name>
|
| <enterprise-beans>
| <!-- Session Beans -->
| <session >
| <description><![CDATA[The
| periodically invoked scheduler timer bean searches for any overdued message
| transmissions and immediately reschedules these messages. Normally this
| should not happen as all scheduled messages should be handled immediately by
| the <code> SchedulerMessageBean</code> on timed JMS scheduling message
| delivery. Nevertheless, due to the high importance of reliable message
| delivery, the scheduler timer acts as a fallback system for ensuring message
| transmission even in case of scheduling errors (e.g.]]></description>
|
| <ejb-name>MessageSchedulerTimer</ejb-name>
|
| <home>de.mobilcom.messenger.scheduler.MessageSchedulerTimerRemoteHome</home>
| <remote>de.mobilcom.messenger.scheduler.MessageSchedulerTimerRemote</remote>
| <ejb-class>de.mobilcom.messenger.scheduler.SchedulerTimerBean</ejb-class>
| <session-type>Stateless</session-type>
| <transaction-type>Container</transaction-type>
|
| <env-entry>
| <description><![CDATA[JMS user identity for sending scheduled JMS
| messages to internal queue]]></description>
| <env-entry-name>JMSQueueUser</env-entry-name>
| <env-entry-type>java.lang.String</env-entry-type>
| <env-entry-value><![CDATA[xxx]]></env-entry-value>
| </env-entry>
| <env-entry>
| <description><![CDATA[JMS user password]]></description>
| <env-entry-name>JMSQueuePassword</env-entry-name>
| <env-entry-type>java.lang.String</env-entry-type>
| <env-entry-value><![CDATA[xxx]]></env-entry-value>
| </env-entry>
|
| <security-identity>
| <run-as>
| <role-name>Service</role-name>
| </run-as>
| </security-identity>
| </session>
|
| <!-- Entity Beans -->
| <entity >
| <description><![CDATA[Message entry entity bean]]></description>
| <display-name>MessageEntryBean</display-name>
|
| <ejb-name>MessageEntryBean</ejb-name>
|
| <local-home>de.mobilcom.messenger.repository.MessageEntryBeanLocalHome</local-home>
| <local>de.mobilcom.messenger.repository.MessageEntryBeanLocal</local>
|
| <ejb-class>de.mobilcom.messenger.repository.MessageEntryBean</ejb-class>
| <persistence-type>Container</persistence-type>
| <prim-key-class>java.lang.Integer</prim-key-class>
| <reentrant>False</reentrant>
| <cmp-version>2.x</cmp-version>
| <abstract-schema-name>messages</abstract-schema-name>
| <cmp-field >
| <description><![CDATA[Gets the message delete date]]></description>
| <field-name>deleteDate</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Gets the message id (primary key)]]></description>
| <field-name>id</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Gets the message persistence value]]></description>
| <field-name>message</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Gets the originator persistence value]]></description>
| <field-name>originator</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Gets the originator code persistence value]]></description>
| <field-name>originatorCode</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Gets the originator key persistence value]]></description>
| <field-name>originatorKey</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Gets the next transmission date]]></description>
| <field-name>transmissionDate</field-name>
| </cmp-field>
| <primkey-field>id</primkey-field>
|
| <query>
| <query-method>
| <method-name>findByOriginatorAsc</method-name>
| <method-params>
| <method-param>java.lang.String</method-param>
| </method-params>
| </query-method>
| <ejb-ql><![CDATA[SELECT OBJECT(o) FROM messages AS o WHERE o.originator=?1 ORDER BY o.id ASC]]></ejb-ql>
| </query>
| <query>
| <query-method>
| <method-name>findByOriginatorDesc</method-name>
| <method-params>
| <method-param>java.lang.String</method-param>
| </method-params>
| </query-method>
| <ejb-ql><![CDATA[SELECT OBJECT(o) FROM messages AS o WHERE o.originator=?1 ORDER BY o.id DESC]]></ejb-ql>
| </query>
| <query>
| <query-method>
| <method-name>findByOriginatorAndOriginatorKeyAsc</method-name>
| <method-params>
| <method-param>java.lang.String</method-param>
| <method-param>java.lang.String</method-param>
| </method-params>
| </query-method>
| <ejb-ql><![CDATA[SELECT OBJECT(o) FROM messages AS o WHERE o.originator=?1 AND o.originatorKey=?2 ORDER BY o.id ASC]]></ejb-ql>
| </query>
| <query>
| <query-method>
| <method-name>findByOriginatorAndOriginatorKeyDesc</method-name>
| <method-params>
| <method-param>java.lang.String</method-param>
| <method-param>java.lang.String</method-param>
| </method-params>
| </query-method>
| <ejb-ql><![CDATA[SELECT OBJECT(o) FROM messages AS o WHERE o.originator=?1 AND o.originatorKey=?2 ORDER BY o.id DESC]]></ejb-ql>
| </query>
| <query>
| <query-method>
| <method-name>findByTransmissionDate</method-name>
| <method-params>
| <method-param>java.util.Date</method-param>
| </method-params>
| </query-method>
| <ejb-ql><![CDATA[SELECT OBJECT(o) FROM messages AS o WHERE o.transmissionDate < ?1 ORDER BY o.transmissionDate DESC]]></ejb-ql>
| </query>
| <query>
| <query-method>
| <method-name>findByDeleteDate</method-name>
| <method-params>
| <method-param>java.util.Date</method-param>
| </method-params>
| </query-method>
| <ejb-ql><![CDATA[SELECT OBJECT(o) FROM messages AS o WHERE o.deleteDate < ?1 ORDER BY o.deleteDate ASC]]></ejb-ql>
| </query>
| <!-- Write a file named ejb-finders-MessageEntryBean.xml if you want to define extra finders. -->
| </entity>
|
| </enterprise-beans>
|
| <!-- Relationships -->
|
| <!-- Assembly Descriptor -->
| <!--
| To specify your own assembly descriptor info here, add a file to your
| XDoclet merge directory called assembly-descriptor.xml that contains
| the <assembly-descriptor></assembly-descriptor> markup.
| -->
|
| <assembly-descriptor >
|
| <method-permission >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <unchecked/>
| <method >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <ejb-name>MessageEntryBean</ejb-name>
| <method-intf>Local</method-intf>
| <method-name>*</method-name>
| </method>
| </method-permission>
| <method-permission >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <unchecked/>
| <method >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <ejb-name>MessageEntryBean</ejb-name>
| <method-intf>LocalHome</method-intf>
| <method-name>*</method-name>
| </method>
| </method-permission>
| <method-permission >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <unchecked/>
| <method >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <ejb-name>MessageEntryBean</ejb-name>
| <method-intf>Remote</method-intf>
| <method-name>*</method-name>
| </method>
| </method-permission>
| <method-permission >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <unchecked/>
| <method >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <ejb-name>MessageEntryBean</ejb-name>
| <method-intf>Home</method-intf>
| <method-name>*</method-name>
| </method>
| </method-permission>
|
| <method-permission >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <unchecked/>
| <method >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <ejb-name>MessageSchedulerTimer</ejb-name>
| <method-intf>Local</method-intf>
| <method-name>*</method-name>
| </method>
| </method-permission>
| <method-permission >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <unchecked/>
| <method >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <ejb-name>MessageSchedulerTimer</ejb-name>
| <method-intf>LocalHome</method-intf>
| <method-name>*</method-name>
| </method>
| </method-permission>
| <method-permission >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <unchecked/>
| <method >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <ejb-name>MessageSchedulerTimer</ejb-name>
| <method-intf>Remote</method-intf>
| <method-name>*</method-name>
| </method>
| </method-permission>
| <method-permission >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <unchecked/>
| <method >
| <description><![CDATA[description not supported yet by ejbdoclet]]></description>
| <ejb-name>MessageSchedulerTimer</ejb-name>
| <method-intf>Home</method-intf>
| <method-name>*</method-name>
| </method>
| </method-permission>
|
| <!-- transactions -->
| <!--
| To specify additional container-transaction elements, add a file in the merge
| directory called ejb-container-transactions.ent that contains them.
| -->
| <container-transaction >
| <method >
| <ejb-name>MessageEntryBean</ejb-name>
| <method-name>*</method-name>
| </method>
| <trans-attribute>Required</trans-attribute>
| </container-transaction>
| <container-transaction >
| <method >
| <ejb-name>MessageSchedulerTimer</ejb-name>
| <method-name>*</method-name>
| </method>
| <trans-attribute>Required</trans-attribute>
| </container-transaction>
|
| <!-- finder transactions -->
|
| <!-- message destinations -->
| <!--
| To specify additional message-destination elements, add a file in the merge
| directory called ejb-message-destinations.ent that contains them.
| -->
|
| <!-- exclude list -->
| <!--
| To specify an exclude-list element, add a file in the merge directory
| called ejb-exclude-list.xml that contains it.
| -->
| </assembly-descriptor>
|
| </ejb-jar>
|
Can anyone please help?
Thanks,
Christoph
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4000582#4000582
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4000582
More information about the jboss-user
mailing list