シングルトンのpreDestroyメソッドでステートレスEJBにアクセスする際に問題があります。アプリケーション・サーバーのシャットダウンをデータベース・テーブルに記録する必要があります。シングルトンのPreDestroyメソッドでステートレスEJBにアクセスする
これは、シングルトンは、次のようになります。
@Stateless
public class TableFacade {
...
public TestEntity find(String test) {
Query query =
getEntityManager().createNamedQuery("TestEntity.namedQuery");
return (TestEntity) query.getSingleResult();
}
}
サーバーがシャットダウンされている場合は、preDestroyメソッドにアクセスすると、EJBメソッド:
@Startup
@Singleton
public class ServerShutdown {
@EJB
TableFacade tableFacade;
@PreDestroy
private void shutdown() {
TestEntity e = tableFacade.find("test");
//do something
}
}
ここでステートレス豆のサンプルコードがありますが呼び出されます。しかし、呼び出し中、サーバーはシャットダウンプロセスを強制し、EJBメソッドの呼び出しをキャンセルします。
私はJava EE 6、JDK 1.8、EJB 3.1、eclipselink 2.5.2を使用しています。事前に
おかげ
Errrrとあなたの問題は....? –
追加されました。ごめんなさい。 ;) –