0

サーバーの起動中(Tomcat)、エンティティマネージャーファクトリーを作成し、メモリに保存しています。私の質問ですが、この間に接続状態を確認する方法はありますか?

現在起こっていることは、起動時に entitymangerfactory オブジェクトを作成していますが、データベースに接続しているかどうかをテストしていません。無効な構成では、entitymanagerfactory を作成していますが、いくつかのクエリを実行しようとすると、例外が発生します。

サーバーの起動時に接続状態を確認したい場合はどうすればよいですか?

前もって感謝します

-よろしく、ソムナス・グハ

4

2 に答える 2

1

ServletContextListener を実装するサーブレットを作成する必要があります。

web.xml:

<listener>
  <listener-class>test.JPACheckServlet</listener-class>
</listener>

コード:

public class JPACheckServlet implements ServletContextListener {
  public void contextInitialized(ServletContextEvent event) {
    here put the code for checking the connection and report status, logging...
  }
  public void contextDestroyed(ServletContextEvent event) {
    here to handle fancy shutdown situation, loggings, etc 
  }
}

読むのに良いスレッド: サーブレットはどのように機能しますか? インスタンス化、セッション、共有変数、およびマルチスレッド

于 2013-08-06T08:06:30.153 に答える
0

質問を言い換えさせてください。起動時に、クエリを正常に実行できるかどうかを知りたいです。接続状態を忘れてください。それが最終的な目標です。JPA の永続化を実行し、接続エラーを発生させないことです。

そのため... ファクトリを作成した後の起動時に、EntityManager を取得し、単純なフェッチを実行してみてください。明らかですね。

于 2013-08-06T08:43:24.187 に答える