JBoss 6でデプロイ時に問題が発生しました。私のアプリケーションには、アノテーションでマークされた 1 つのメソッドを持つステートレス EJBが含まれています。@Schedule(hour="1")
このようなメソッドは、@EJB アノテーションによって注入された別のステートレス EJB を使用します。
@Stateless
public class AuditRecordCleanerBean implements AuditRecordCleanerLocal
{
@EJB
private RecordManager recordManager;
@Schedule(hour="1")
public void moveRecordsToHistoricTable()
{
recordManager.moveRecords();
...
}
}
JBoss ではタイマーが永続的であるため、アプリケーション サーバーを再起動すると、EJB RecordManager がまだデプロイされていないときにタイマーがトリガーされ、NameNotFoundException が発生することがあります。
server.log で、次の警告を見つけました。
WARN [org.jboss.ejb3.TimerServiceContainer] (Thread-2) EJBTHREE-2193: using deprecated TimerServiceFactory for restoring timers
これが問題でしょうか?アプリケーションのデプロイが完了した後、最初のタイマーの実行を遅らせるにはどうすればよいですか?
よろしく、 ファビオ