1

Weblogic10.3.0のBeanプールでステートレスSessionBeanが失われるという奇妙な状況があります。プールにはBeanが1つしかないため、これによりすべての着信コールが効果的にハングします。アプリケーションの制限のため、プールに複数のインスタンスは必要ありません。

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

これは、数時間後に100,000を超える着信要求が発生した後に発生し、同じシナリオが古いweblogic8環境で正常に機能しました。

次のスタックトレースを取得します。

   "[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)

どんな助けでも大歓迎です。

4

2 に答える 2

0

直接的な答えよりも回避策ですが、これがWebLogic 8で機能する場合は、 8.1スタイルの実行キューに切り替えて、それが役立つかどうかを確認してください。いずれにせよ、あなたは確かにケースを開くべきです。

于 2010-02-17T15:37:08.803 に答える
0

これはOracleの既知の問題であり、この問題のパッチがあります。パッチを入手するには、Oracleサポートに連絡してください。

于 2010-05-07T22:16:12.417 に答える