2011-12-05 15 views
2

JPA EntityManagerを処理している接続プールで古い接続で終了する可能性があります。このような接続を使用すると、[generic]例外がスローされますが、接続が古くなっていないかどうかを判断するためのポータブルな(ベンダー固有ではない)方法は何ですか(したがって再試行する必要があるかどうか)。JPAで古い接続を処理する方法

私が探しているのは、JDBC Connection.isValid()メソッドと同等です。

おかげ

+0

通常、これは接続プールの設定で「テストクエリ」を使用して処理します。ただし、これはベンダー固有のものです。 –

+0

通常、接続プールでこれを処理する必要があります。アプリケーションでこのようなエラーが発生していますか?どの接続プールを使用していて、どのように構成されていますか? – aishwarya

+0

残念ながら、接続プールは 'テスト接続'が無効に設定されています(これは私の制御を超えています)。そのため、 – chris

答えて

0

あなたはEclipseLinkののconnecitonは、それが自動的に通信障害で死んでの接続を検出し、再接続しますプールで、EclipseLinkはを使用している場合。

DataSourceを使用している場合は、DataSourceで実際に接続を有効にする必要があります。それ以外の場合は、DataSourceのプールから接続を追放する方法がありません。別の接続を取得しようとする可能性がありますが、DataSourceが接続が失われていることがわからない場合は、

関連する問題