1

私が担当しているアプリケーションは、さまざまなアプリケーション ログのいずれかに何かを書き込むためにアプリケーションが停止する 5 日前に、ログの 1 つに OutOfMemoryError を書き込みました。ログに何も書き込まれなくなったとき、ユーザーがアプリケーションが応答していないことを呼び出したため、アプリケーションは本当に死んでいました。

私はいつも OutOfMemoryError の後に JVM が完全にハングしていると思っていたので、少し困惑しています。ログには他のエラーは表示されないため、OutOfMemoryError がアプリケーションの動作を停止する問題であると想定しています。

したがって、問題は、OutOfMemoryError が発生したときに、JVM がある程度まで続行できるかどうかです。これは、いくつかの OSGi バンドルに基づくアプリケーションです。

ありがとう、オリバー

4

4 に答える 4

1

これらの Stackoverflow の質問を参照してください: JVM は再起動せずに OutOfMemoryError から回復できますか、およびJVM は OutOfMemoryError 後に自身を終了しますか。彼らはあなたが必要とするすべての説明を持っています。

于 2013-09-12T07:34:35.533 に答える
0

OutOfMemoryError が発生すると、他のエラーと同じようにキャッチして、処理を試みることができます。

適切に処理した場合 (GC が重いオブジェクトを削除するのに役立ちます)、アプリがクラッシュすることはありません。

于 2013-09-12T07:41:11.450 に答える