Weblogic 10.3.0:丢失 Bean 池中的无状态会话 Bean
我们遇到了一个奇怪的情况,在 Weblogic 10.3.0 中,我们在 Bean 池中丢失了 Stateless SessionBean。由于池中只有一个 Bean,因此这会有效地挂起所有传入呼叫。由于应用程序限制,我们不希望池中有多个实例。
在Weblogic管理控制台中,我们可以看到bean池中有1个实例,0个bean正在使用,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)
非常欢迎任何帮助。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是 Oracle 中的一个已知问题,他们有针对此问题的补丁。请联系 Oracle 支持以获取补丁。
This is a known issue in Oracle and they have a patch for this issue. Contact Oracle support to get the patch.
比直接答案更多的解决方法,但如果这适用于 WebLogic 8,也许尝试切换到 8.1 风格执行队列 看看是否有帮助。无论如何,你确实应该立案。
More a workaround than a direct answer but if this worked with WebLogic 8, maybe try to switch to 8.1 style execute queues and see if it helps. In any case, you should open a case indeed.