Weblogic 10.3.0: потеря сеансового компонента без сохранения состояния в пуле компонентов - PullRequest
1 голос
/ 17 февраля 2010

У нас странная ситуация, когда мы теряем SessionBean без состояния в пуле компонентов в Weblogic 10.3.0. Поскольку в пуле у нас только один компонент, это фактически блокирует все входящие вызовы. Мы не хотим более одного экземпляра в пуле из-за ограничений приложения.

В консоли администратора Weblogic мы видим, что в пуле компонентов имеется 1 экземпляр, используется 0 компонентов и 1 ожидает входящего запроса. Вопрос в том, почему система не отправляет запрос на один явно свободный экземпляр компонента?

Это происходит после нескольких часов и более 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)

Любая помощь будет приветствоваться.

Ответы [ 2 ]

0 голосов
/ 08 мая 2010

Это известная проблема в Oracle, и у них есть патч для этой проблемы. Обратитесь в службу поддержки Oracle, чтобы получить исправление.

0 голосов
/ 17 февраля 2010

Больше обходного пути, чем прямой ответ, но если это сработало с WebLogic 8, возможно, попробуйте переключиться на очереди выполнения 8.1 и посмотреть, поможет ли это.В любом случае, вы действительно должны открыть дело.

...