views:

1550

answers:

2

We have a timer service triggered task in JBoss 5.1.0.GA application and the problem is that we cannot change the transaction time out. This long Lucene indexing can take longer than the default 300 second limit.

The question is how to change the timeout value, adding @TransactionTimeout(1800) to the worker method or the class did not have any effect.

Edit: Setting this in deploy/transaction-jboss-beans.xml works fine:

<property name="transactionTimeout">1800</property>

but the annotation doesn't seem to have effect on either timer initiated or normal stateless EJBs.

A: 

TransactionTimout is it a MDB? they have a different annotation. The link gives the various options for setting the transation timeout either via code on config files.

HadleyHope
+1  A: 

You can manually declare the timeout period & create a timer in Session Bean.

Below is sample code of my Stateless Bean :

public void createTimer(String timerName) {

//...

sessionContext.getTimerService().createTimer(timeLongValue, timerName);

//...

}

@Timeout public void timeOutHandler(Timer timer){

// code

}

Nayan Wadekar