2012-03-07 11 views
2

私は、PostgreSQLデータベースでデータベースの読み書きを行うスタンドアロンのJavaアプリケーションを使用しています。私はjava.sql.Connectionオブジェクトで利用可能なisValid関数を使用して、データベースの接続が失われた場合やネットワークの問題やクラッシュのためにデータベース接続を再確立しました。次のコードは、すぐにこのアイデアを示していますJavaのPostgresqlデータベースのプログラムによる接続有効性チェック

//dbConnection is an instance of java.sql.Connection 

    if(dbConnection.isValid(1)){ 
    reEstablishConnection(); 
    } 

それにも関わらず、実行時に、私は方法は「のisValid」まだ実装されていないと言っている以上の場合はブロックの状態、内の例外を取得しています。最新のJDBCドライバ(v9.1-101)を使用しています。私のpostgesql DBMSのバージョンは8.3.9です。私はSUSe Linux(SLES 11 SP2 - 64ビット)にYast2を使ってインストールしました。誰かが、Javaでpostgresql用のプログラムで接続が失われているかどうかをどのように確認できるか教えていただけますか?私の意図は、ユーザーの介入なしに自動的に再接続することです。

答えて

3

独自の接続有効性チェック機能を実装することができます("select 1"を実行し、1がエラーなしにdbから返された場合はtrueを返します)。

しかし、私はあなたがconnection poolingを使用することをお勧めと私は(他の多くのものの中で)あなたの有効性は、接続上のチェックのために処理しますApache Tomcat Pool

を使用することをお勧めします
関連する問題