IBMWebsphere7.0.0.19で実行されているスタンドアロンアプリケーションがあります。これはJava6で実行されており、Axis2JARをEARにパックします。'parent last'スタイルのクラスの読み込みがあり、デフォルトでWAS7にパックされているAxisサービスを無効にしました。
最近、6週間以上継続して機能した後、アプリケーションでOOMが発生しました。困惑するのは、アプリケーションが2台の異なるマシンに別々にデプロイされていることです。しかし、1台のマシンだけがダウンしました。2台目のマシンはまだ稼働しています。
WASコンソールを使用してOS、クラスローダーポリシーなどのサーバー構成を確認しましたが、どちらのマシンでも類似しています。
アプリケーションがクラッシュすると、.phdファイルが生成され、Eclipse Memory Analyzer Tool(MAT)を使用して分析しました。分析はスクリーンショットに示されています。
私が正しければ、ブートストラップクラスローダーはAxisConfiguraitonの参照を繰り返しロードして保持しているため、GCは実行時にそれらを収集できません。ただし、その場合は、両方のサーバーがダウンしている必要があります。しかし、1台のサーバーだけがOOMを経験しました。JVMに割り当てられたメモリは、両方のマシンで同じです。
問題がWAS7にあるのか、axis2-kernel-1.4.1.jarにあるのか、それとも他の何かにあるのかはわかりません。
http://www.slideshare.net/leefs/axis2-client-memory-leak
https://issues.apache.org/jira/browse/AXIS2-3870
http://java.dzone.com/articles/12- year-old-bug-jdk-still-out
(リンクは現在の問題を参照していない場合がありますが、単なるポインタです)
誰かが似たようなことを経験したことがありますか?