2

Spring/JPA を使用してスタンドアロン アプリケーションに取り組んでおり、使用されているデータベース リソースを適切に解放しようとしています。

たとえば、Tomcat を使用する Web アプリケーションでは、サーバーをシャットダウンし、Tomcat にリソースを管理させます。

しかし、私はスタンドアロン アプリにいるので、これに注意する必要があります。Runtime.getRuntime().addShutdownHookを使用してシャットダウン イベントを「キャッチ」し、((ClassPathXmlApplicationContext) context).close();を呼び出します。、 このようなもの:

Runtime.getRuntime().addShutdownHook(new Thread() {
    @Override
    public void run() {
        ((ClassPathXmlApplicationContext) context).close();
    }

スレッドが接続を使用していた場合、スタックトレースで例外が発生します。別のオプションがあるかどうか疑問に思っていますか?開いているトランザクションのリストを取得して、それらを強制的にロールバックすることはありますか?

4

1 に答える 1

0

このようなものを実装する必要があり、destroy メソッド内で、データソースを取得してcloseメソッドなどを呼び出す必要があると思います。また、アプリケーションをシャットダウンするときに行うべきことがいくつかあると想定しています。

データソースに何を使用しているのかわからないため、正しいメソッド名についてはあまり役に立ちません。

于 2014-04-04T03:23:36.093 に答える