0

Tomcat の proxool と oracle ドライバーに関する問題があります。

私が使用する Web アプリケーションには、metro を使用する Web サービス jar ファイルと、proxool プールを初期化/開始するためのサーブレットが含まれています。proxool プールは、oracle 接続で構成されます。サービスが呼び出されると、プールから接続を取得し、ステートメントを実行して戻ります。その後、結果セット、ステートメント、およびサービス メソッドの接続を閉じます。

Web アプリケーションをホット アンデプロイしようとすると、サーブレットは ProxoolFacade.shutdown(); によって proxool プールを停止します。それはdestroyメソッドです。

問題は、抽出した Web アプリケーションのフォルダーから Oracle ドライバー ojdbc5.jar を削除できないため、ホット アンデプロイを完了できないことです。

SQLサーバーデータベースとjtdsドライバーで同じことを試してみると、この問題は発生しません。

使用バージョン: Apache Tomcat 6.0.18 Oracle 11g JDBC ドライバー 11.1.0.6.0 Proxool 0.9.1

誰にもアイデアがありますか?

よろしくティモ

4

1 に答える 1

0

Oracle ドライバーを Tomcat インスタンスに追加し、Tomcat JNDI を Oracle データソースで構成する必要があります。

このようにして、アプリが終了してもドライバーは存続し、Tomcat が DB 接続のプールを制御します。問題の理由は、一部の DB ドライバーが VM に「フック」することです。これは、Tomcat が再デプロイ中にクラスをアンロードできないことを意味します。まだ参照が残っています。

proxool を Tomcat サーバーに移動して、Tomcat にプールを管理させることもお勧めします。これにより、接続がリークした場合でも、ホットデプロイがはるかに高速で信頼性が高くなります。

于 2009-05-08T09:30:11.273 に答える