2012-03-01 7 views
0

Java EE Webエンタープライズアプリケーションで同時にデータベースにアクセスするユーザーの平均数または正確な数を確認する方法を教えてください。 Glassfishアプリケーションサーバーで設定した「接続プール設定」がWebアプリケーションに適しているかどうかを確認したいと思います。アプリケーションサーバーの接続プール設定で接続の最大数を正しく設定する必要があります。最近、私のアプリケーションで接続がなくなり、DBのクライアント要求が切れたときに例外がスローされました。Webアプリケーションでのデータベースへの同時アクセス

+0

接続を使用した後、接続を正しく閉じてもよろしいですか? – GriffeyDog

+0

Webアプリケーションでは、接続とステートメントを閉じます。しかし、ある人がDBに直接アクセスすることがありますが、時にはそれらを正しく閉じるのを忘れることもあります。 DBのconfファイルでは、私は接続の最大数は100です参照してください。このWebアプリケーションのいくつかのユーザーがあります&接続プールのno。最大接続数は4に設定されています。だから私は今それを増やした。私は平均的な数を監視する方法があるかどうかを知りたいと思います。 db接続を同時に使用するリクエストの数。 – user981116

+0

各ユーザーにデータベース接続が必要ですか? – perissf

答えて

2

複数の方法があります。

あなたのDBAの助けを借りて、あなたのウェブサーバからのアクティブな接続数や接続プールのユーザIDを特定の時間に正確に伝えることができます。

グッドフィッシュが提供するJMX管理拡張が必要です。 this pageのリスト6 - 接続プールを監視するためのJMSベースのスニペットの記述方法の例を示します。

最後に、アプリケーションでconnection.close();タイプのコールによってすべての接続が明示的に閉じられていることを確認する必要があります。場合によっては、ResultSetも閉じる必要があります。 次に、DB接続が閉じるまでに時間がかかりすぎると、同時アクセスが多すぎるのを防ぐために、httpスレッドプールを絞っています。

+0

あなたのアドバイスをいただき、ありがとうございました。しかし、「レコードセットを閉じる必要がある場合もあります」と言いましたが、多くの専門家からも同じことを聞きましたが、結果セットを明示的に閉じることが重要であることを知りたいと思います。彼らは声明で閉じなければなりません。私に教えてもらえますか? – user981116

+0

こんにちは理想的には、文オブジェクトが閉じられたときに 'ResultSet'が終了します。一部のドライバベンダーは、その仕様を適切に実装していません。両方を閉じても安全です。それに害はない。これは、他の処理のために明細書を開いたままにする場合に適用されます。 –

関連する問題