Jakarta ee Weblogic 10.3.0:在bean池中丢失无状态会话bean

Jakarta ee Weblogic 10.3.0:在bean池中丢失无状态会话bean,jakarta-ee,weblogic-10.x,stateless-session-bean,Jakarta Ee,Weblogic 10.x,Stateless Session Bean,在WebLogic10.3.0中,我们遇到了一个奇怪的情况,在Bean池中丢失了一个无状态SessionBean。由于池中只有一个bean,这实际上挂起了所有传入呼叫。由于应用程序限制,我们不希望池中有多个实例 在Weblogic管理控制台中,我们可以看到bean池中有1个实例,0个bean正在使用,1个正在等待传入请求。问题是,为什么系统不向一个显然免费的bean实例发送请求 这发生在几个小时后,超过100000个传入请求,同样的场景在旧的weblogic 8环境中运行良好 我们得到以下堆栈跟

在WebLogic10.3.0中,我们遇到了一个奇怪的情况,在Bean池中丢失了一个无状态SessionBean。由于池中只有一个bean,这实际上挂起了所有传入呼叫。由于应用程序限制,我们不希望池中有多个实例

在Weblogic管理控制台中,我们可以看到bean池中有1个实例,0个bean正在使用,1个正在等待传入请求。问题是,为什么系统不向一个显然免费的bean实例发送请求

这发生在几个小时后,超过100000个传入请求,同样的场景在旧的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)

欢迎提供任何帮助。

与其说是直接回答,不如说是一种变通方法,但如果这对WebLogic 8有效,也许可以尝试切换到,看看是否有帮助。在任何情况下,您都应该打开一个案例。

这是Oracle中的一个已知问题,他们有一个解决此问题的修补程序。请与Oracle支持部门联系以获取修补程序。

您可以尝试Oracle对此的支持。这听起来像是weblogic线程处理器中的一个bug。可能是某种形式的内存泄漏。谢谢你的建议克里斯,我们很可能会这么做,只是想听听是否有其他人遇到过这种情况,并知道它可能是什么。谢谢你的建议和链接。我们现在已经向甲骨文打开了一个案例。Weblogic 10.3.1中还解决了一些可能相关的缺陷,这可能会迫使我们升级。希望解决后,我会在这里发布帮助案例的结果。@KlasE感谢反馈谢谢Arun的关注。我们的项目与Oracle合作确定并创建该修补程序。因此,对于任何有类似问题的人,这是很好的了解,去获取该补丁。