0

私の組織では、3 層アプリケーション システムを介してデータ入力操作を行っています。構成は次のように表示されます。

  • オペレーティング システム: Linux
  • アプリケーション ソフトウェアは以下を使用して構築されています: JSF (Java EE フレームワーク テクノロジ)
  • データベース: オラクル 11g

問題: エントリごとにエンタープライズ Bean が作成され、Weblogic サーバー内のキューに保持されます。Bean はデータベースに送信されていますが、Bean に使用されているメモリが解放されていません。その結果、特定の期間、ヒット数がピークに達し、メモリが 16GB 以上使用されると、サーバーが応答しなくなり、メモリを解放するためにサーバーを再起動する必要があります。

安全のために、最大同時接続数を最大に設定しています。しかし、これは役に立ちません。

何が問題で、システムを調整する方法は?

4

1 に答える 1

1

Bean はデータベースに送信されていますが、Bean に使用されているメモリが解放されていません。

コードで DB 接続が閉じられていないなどの特定のリソースが原因で、ここでメモリ リークが発生する可能性があります。

ヒープ ダンプを HPROF ファイルに取り込み、 Eclipseメモリ アナライザー ツールまたはVisualVMを使用してこれを実行するか、 JConsole を使用してこれを監視します。

于 2012-04-23T11:14:32.737 に答える