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)
どんな助けでも大歓迎です。