ウェブロジック 10.3.0:Bean プール内のステートレス セッション Bean が失われる

StackOverflow https://stackoverflow.com/questions/2281186

質問

Weblogic 10.3.0 の Bean プールでステートレス SessionBean が失われるという奇妙な状況が発生しています。プールには Bean が 1 つしかないため、これによりすべての着信呼び出しが事実上ハングします。アプリケーションの制限により、プール内に複数のインスタンスは望ましくありません。

Weblogic 管理コンソールでは、Bean プールにインスタンスが 1 つ、使用中の Bean が 0 つ、受信リクエストを待機しているものが 1 つあることがわかります。質問は、 なぜシステムは明らかに無料の Bean インスタンスにリクエストを送信しないのでしょうか?

これは、数時間で 100,000 件を超えるリクエストが受信された後に発生します。同じシナリオが古い Weblogic 8 環境でも正常に機能しました。

次のスタック トレースが得られます。

   "[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@b0d484 TIMED_WAITING

            sun.misc.Unsafe.park(Native Method)

            java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)

            java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2054)

            weblogic.ejb.container.pool.StatelessSessionPool.waitForBean(StatelessSessionPool.java:269)

            weblogic.ejb.container.pool.StatelessSessionPool.getBean(StatelessSessionPool.java:111)

            weblogic.ejb.container.manager.StatelessManager.preInvoke(StatelessManager.java:148)

            weblogic.ejb.container.internal.BaseRemoteObject.preInvoke(BaseRemoteObject.java:227)

            weblogic.ejb.container.internal.StatelessRemoteObject.preInvoke(StatelessRemoteObject.java:52)

            com.mycompany.beans.MessageLogFacace_n73y0z_EOImpl.isMyStuffValid(MessageLogFacace_n73y0z_EOImpl.java:261)

            com.mycompany.beans.MessageLogFacace_n73y0z_EOImpl_WLSkel.invoke(Unknown Source)

            weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)

            weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)

            weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)

            weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)

            weblogic.security.service.SecurityManager.runAs(Unknown Source)

            weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)

            weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)

            weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)

            weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

助けていただければ大歓迎です。

役に立ちましたか?

解決

これは、Oracleの既知の問題であり、それらは、この問題に対するパッチを持っています。連絡先オラクルのサポートはパッチを入手します。

他のヒント

直接の答えというよりは回避策ですが、これがWebLogic 8で機能した場合は、次のようなものに切り替えてみてください。 8.1 スタイルの実行キュー それが役立つかどうかを確認してください。いずれにせよ、実際に訴訟を起こす必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top