内部に静的ブロックを含む MDB EJB があります。静的ブロックを使用して、アプリケーションの初回実行時 (つまり、デプロイ時) に 1 回だけコンポーネントを初期化しました。MDB EJB は、Admin_Server 以外の別のサーバー (My_Server) にデプロイされます。
問題は、静的ブロックが 2 回呼び出されることです!
- 初回: (My_Server にタグ付けされた) MDB EJB をデプロイした直後。
- 2 回目: (MDB が関連付けられている) JMS キューがメッセージを受信した後。
また、サーバー名とpidを出力しましたが、両方で同じです:
System.out.println("server name: " + System.getProperty("weblogic.Name"));
System.out.println("pid: " + ManagementFactory.getRuntimeMXBean().getName().split("@")[0]);
また、いくつかの奇妙な行動にも気付きました。基本的に、アプリケーションのシャットダウン時に電子メールを送信するために、Shutdown Hook を (静的ブロック内から) 添付しました。
- My_Server をシャットダウンすると、通知が届きました。
- Admin_Server をシャットダウンすると、通知も受け取りました。
この問題を解決するにはどうすればよいですか?
追加情報:
Weblogic version: 10.3.0
EJB version: 3.0