У нас есть инициированная задача сервиса таймера в JBoss 5.1.0. Приложение GA и проблема - то, что мы не можем изменить временной лимит транзакции. Эта долгая индексация Lucene может занять больше времени, чем значение по умолчанию 300 вторых пределов.
Вопрос состоит в том, как изменить значение тайм-аута, добавив @TransactionTimeout (1800) к методу рабочего, или класс не имел никакого эффекта.
Править: Установка этого в deploy/transaction-jboss-beans.xml хорошо работает:
<property name="transactionTimeout">1800</property>
но аннотация, кажется, не имеет эффект или на таймер инициируемый или на нормальный EJBs не сохраняющий состояние.
TransactionTimeout это MDB? у них другая аннотация. Ссылка дает различные варианты установки тайм-аута передачи либо с помощью кода в файлах конфигурации.
Вы можете вручную объявить период тайм-аута и создать таймер в Session Bean.
Ниже приведен пример кода моего компонента без сохранения состояния:
public void createTimer(String timerName) {
//...
sessionContext.getTimerService().createTimer(timeLongValue, timerName);
//...
}
@Timeout
public void timeOutHandler(Timer timer){
// code
}