基本的に、別の EJB 3 (DAO) を呼び出す EJB3 タイマーがあります。この呼び出しは catch ブロックにラップされています。もう一方の EJB は、DS への接続を取得しようとするとタイムアウト SQL 例外をスローします (呼び出し側に例外をスローします)。ログを見ると、このタイムアウトが何度も何度も実行しようとしていることがわかります。再試行を防ぐためにどのようなオプションがありますか?
..
// Timer
@Timeout
public void timeout(Timer timer) { // keeps on coming here
...
try {
dao.processJob();
} catch (SQLException) { // catches the timeout
log
}
// dao
@Resource(...)
private Datasource ds
public void process() throws SQLException {
ds.getConnection() // throws timeout here
..
}