2011-07-29 6 views
1

まず、WAS 5.1で動作するJava Webアプリケーションを実行しています。その背後には、Oracleデータベースが使用されています。私たちが直面している問題は本当にシンプルですが、Googleの検索の数時間後、私はあなたに尋ねることにしました。Websphereアプリケーション・サーバー5.1 DBの再起動時にDataSourceが無効になる

WASで実行されているアプリケーションがあります。サーバーを始動すると、WASはDataSourceをデータベースに設定します。すべて正常に動作し、DBAがデータベースサーバを再起動しなければならない時があります。それらが実行されると、データソースはもはや有効でなくなり、すべてのサーバーを手動で再起動する必要があります。可能であれば、現在これを修正しようとしています。アプリケーションのための3つのプレプロダクション環境があり、それに関連する2つのサーバーがあり、1つはアプリケーション用で、もう1つはレポート生成Webサービスです。したがって、DBAがサーバを再起動したいとき(通常は私たちに言わないでください)、6台のサーバをリブートする必要があります。 Javaでデータソースをリセットしてサーバーを再起動する必要がないかどうかは疑問でした。

WebSphereはv5.1、OracleはJava 1.4.2.17で9gです。

我々はまた、RAD使用:

バージョン:6.0.1 ビルドID:20050725_1800

答えて

1

あなたは常にクライアントにそれをリースする前に接続をテストするためにアプリケーションサーバーを設定する必要があります。私はそれほどWebsphereに慣れていませんが、WebLogicではselect 1 from dualのようなjdbc sql文を設定でき、コンテナは古いプールを接続プールから削除します。ここで

は、私はあなたのノートから読んだものに基づいて、Websphereの

http://www-01.ibm.com/support/docview.wss?uid=swg21439688

+0

私は本当に、その目的を理解していないけれども、私は、このことについてはかなりよく分かりません。私は実際に私が管理する例外を取得しますが、私はその "ソケットクローズ"例外をキャッチするときにデータソースを "リフレッシュ"したいと思います。彼らはすべて無効なので、私は別の接続を取得するために再試行する必要はありません。例:サーバーを起動します。起動したら、VPN接続を閉じます(DBはリモートネットワークにあります)。再接続します。現在、私のデータソースは何であれ、有効ではありません。私はサーバーを再起動する必要があります。 Websphereにはそういうものがあるでしょうか? – Sylvain

0

それを行う方法上のリンクであるとして(そのプール内の)古いハンドルを持っていたように、あなたは古い接続例外を受け取る必要がありますDBが再起動されました。

古い接続が検出されると、プール全体をパージするようにデータソース構成を構成できます。デフォルトのポリシーは、個々の接続をパージすることです。

これを採用すると、WASサーバーを再起動できなくなります。

リソースの数は、この空間に存在する http://www-01.ibm.com/support/docview.wss?uid=swg21063645

HTH

Manglu

+0

実際、「接続リセット」と言うSQLExceptionが発生します。 StaleConnectionExceptionは利用できません...私が読んだものが良ければ、Websphere jarライブラリからJarファイルutils.jarをインポートする必要がありますが、アプリケーションが十分に大きいのであまり好きではありません。私はそのSQLException(私は)キャッチが、私はプールをフラッシュし、それをリフレッシュするJavaプロシージャのようにする必要があります。私はそれが可能だとは思わない... – Sylvain

関連する問題