[jboss-user] [EJB 3.0] - Problem with TimerService

hasc do-not-reply at jboss.com
Sat Oct 6 11:03:42 EDT 2007


Hi,

i posted this question already in the seam forum, but i was told I should post the question here again...

I wrote a simple stateless bean to test the TimerService. i am using jboss 4.2.0GA

bean using the TimerService:

  | @Stateless
  | @Name("listener")
  | public class DBChangeListenerService implements DBChangeListener {
  | 	
  | 	@Resource TimerService timerservice;
  | 	
  | 	@Logger Log log;
  | 	
  | 	public DBChangeListenerService() {}
  | 	
  | 	public void initTimer() {
  | 		log.info("initTimer");
  | 		timerservice.createTimer(2*60*1000, 2*60*1000,"DBChangeListener");
  | 	}
  | 	
  | 	@Timeout
  | 	public void queryState(Timer timer) {
  | 		log.info("query db state");
  | 	} 
  | }	
  | 

and the bean calling the initTimer() method:

  | @Stateless
  | @AutoCreate
  | @Name("objectcache")
  | public class ObjectCacheService implements ObjectCache{
  | 
  | 
  |    @In(create=true)
  |     DBChangeListenerService listener;
  | 
  |     public void init() {
  |         listener.initTimer();
  |     }
  | }

When the init() method is called the following exception is trhrown:
2007-10-02 14:56:55,437 ERROR [org.jboss.ejb.txtimer.TimerServiceImpl] Cannot create txtimer
  | java.lang.IllegalStateException: Unable to persist timer
  | 	at org.jboss.ejb.txtimer.DatabasePersistencePolicy.insertTimer(DatabasePersistencePolicy.java:124)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  | ...
  | ...
  | 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
  | 	at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
  | 	at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:381)
  | 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
  | 	at java.lang.Thread.run(Thread.java:595)
  | Caused by: org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware
  |  object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to en
  | list resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f57fdff:555:47023fba:53 status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction o
  | n entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Thr
  | owable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f57fdff:555:47023fba:53 status: ActionStatus.ABORT_ONLY >))
  | 	at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
  | 	at org.jboss.ejb.txtimer.GeneralPurposeDatabasePersistencePlugin.insertTimer(GeneralPurposeDatabase
  | PersistencePlugin.java:199)
  | 	at org.jboss.ejb.txtimer.DatabasePersistencePolicy.insertTimer(DatabasePersistencePolicy.java:120)
  | 	... 317 more
  | Caused by: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering me
  | ta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabl
  | ed to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f57fdff:555:47023fba:53 status: ActionStatus.ABORT_ONLY >)
  | 	at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnecti
  | onManager.java:343)
  | 	at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConne
  | ctionManager2.java:518)
  | 	at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionMan
  | ager2.java:399)
  | 	at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConne
  | ction(BaseConnectionManager2.java:842)
  | 	at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
  | 	... 319 more
  | Caused by: javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see t
  | he previous warnings. tx=TransactionImple < ac, BasicAction: -3f57fdff:555:47023fba:53 status: ActionStatus.ABORT_ONLY >
  | 	at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSy
  | nchronization.checkEnlisted(TxConnectionManager.java:744)
  | 	at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConn
  | ectionManager.java:577)
  | 	at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnecti
  | onManager.java:337)
  | 	... 323 mor	


any tips would be great. 

Thanks and regards,
hasc

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4092272#4092272

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4092272



More information about the jboss-user mailing list