システム テストでの最近の展開の後、サーブレットの 1 つが通常よりもはるかに大きな打撃を受け、メモリが上昇し始め、最終的に weblogic が停止することに気付きました。私のインターンは、非常に誇りに思っていましたが、メモリリークの原因を発見しました。
リクエストが来るたびに、次の行が呼び出されます。
JAXBContext jc = JAXBContext.newInstance(“ruby.oracle_servlet.schemas”);
何らかの理由で、オブジェクトがガベージ コレクションされることはありません。静的にして初期化した場所に移動すると、メモリリークはなくなりました。
私たちの開発者の別の 1 人は、スタンドアロン Java アプリケーションの while ループにその行だけを入れ、メモリがどんどん増えていくのを見ました。
そのオブジェクトがガベージコレクションされない理由を誰かが知っていますか?
ありがとう