2011-08-01 9 views
0

私はこの質問をしましたが、応答がありませんでした。多分長すぎたので、質問を言い換えると
Apache Axis2 v.1.5.4を使用するアプリケーションの開始から約3日後、OutOfLangMemoryError開始(ヒープサイズ = 2048メガバイト)アプリケーションサーバを低下のいずれかで得を発生する(プロセスがまだ存在する)性能や論理サーバーを停止する( v.7.0.0.7 WAS)。
Apache Axis2によってOutOfLangMemoryErrorが発生しました

何らかの理由で、タイマー = 1秒がWebサービスの呼び出しプロセスでピーク時に発生する(確立または読み取りのいずれかで)。
Axis2のスレッドがハングアップしているようです:かどうか、Axis2のスレッドが終了していることを確認するために、どのように

 
"Axis2 Task" TID:0x00000000E4076200, j9thread_t:0x0000000122C2B100, state:P, prio=5. 
at sun/misc/Unsafe.park(Native Method) 
at java/util/concurrent/locks/LockSupport.park(LockSupport.java:173) 
at java/util/concurrent/SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:433) 
at java/util/concurrent/SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:334) 
at java/util/concurrent/SynchronousQueue.take(SynchronousQueue.java:868) 
at java/util/concurrent/ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:957) 
at java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917) 
at java/lang/Thread.run(Thread.java:735) 

javacoreとと、サーバによってスローheapdumpsで探し

応答が返されたかどうか、つまり例外が発生しましたか?

答えて

1

すべてのプラグインがインストールされたVisual VM 1.3.2をアプリケーションに向けることをお勧めします。あなたの世代ヒープ・メモリーと開始されたすべてのスレッドで何が起きているかを示します。私はあなたに答えを与えることはできませんが、Visual VMはプロセスをより透明にします。

+0

ありがとうduffymo、私の主な関心事は、Axis2 APIを使用することで、開発段階での問題を防ぐことです。Stub、ServiceClient、Transport、およびConfigurationContextのcleanup()メソッドを使って試しました。しかし、運がない。おそらく私は誤った方法で正しいAPIを使用しています。 – guirgis

+0

Visual VMを使用して開発マシンを指定し、アプリケーションをローカルで実行します。私はあなたのことを理解していません。 – duffymo

+0

Javaコア/ヒープ・ダンプを分析するために、Visual VMに似ているjca(http://www.alphaworks.ibm.com/tech/jca)を使用しましたが、問題はAxi2によって発生しているようです。 私の主張は、すべてのリソースがクリーンアップ(メモリ、スレッド)されていることを保証するAPIがあるかどうかを確認することでした。 問題が発生した時点で、状態が「停止」の29,459スレッドが見つかりました。 – guirgis

関連する問題