Ejb 2.1 Таймер IOException - PullRequest
       6

Ejb 2.1 Таймер IOException

0 голосов
/ 17 декабря 2010

У меня странная проблема, я использую объект таймера EJB 2.1 для запуска таймера в определенное время дня и выполнения некоторых служебных действий, таких как удаление файлов.Таймер срабатывает, как и ожидалось, но проблема в том, что он не останавливается.Ниже приведен код, который я использовал для запуска таймера:

Timer myTimer = timerService.createTimer(timeOfDay, myInterval, null);

В моем методе ejbTimeout у меня есть код, который удаляет файлы, теперь, если я получаю IOException в этом методе, тогда EJB откатывается;и метод вызывается снова.Таймер срабатывает 10-15 раз до остановки.Я использую WAS 6.1, и у меня были некоторые неудачные опыты с WAS, не придерживавшимся пятен EJB раньше.У кого-нибудь есть другие объяснения или обоснования?любая помощь будет оценена!

1 Ответ

0 голосов
/ 18 декабря 2010

Вместо написания логики внутри метода TimeOut используйте потоки для удаления файлов.Поэтому, даже если в потоке возникает исключение, ваша транзакция может не откатиться.

В противном случае вы можете использовать управляемую компонентом транзакцию Bean для контроля транзакций, можете откатить - зафиксировать соответственно.

...