[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