0

Glassfish 3.1.2.2 アプリケーションには、定期的に JMS メッセージを消費する多数の MDB があります。アプリケーションの起動後、12 時間から数日の間、すべてが問題なく動作するように見えます。その後、以下のようなエラーが繰り返し発生し始めます。エラー テキスト (「Client's transaction aborted」) から、コンテナが既存のトランザクションで MDB を実行しようとしているように聞こえますが、トランザクションが何らかの理由で中止されたため、MDB を呼び出すことができません。もう 1 つの情報は、アプリケーションを再デプロイしてもエラーが消えないことです。Glassfish を再起動すると、エラーが消えたように見えます (一定期間、その後再び表示されます)。

[#|2012-09-12T21:42:15.045+0000|WARNING|glassfish3.1.2|javax.resourceadapter.mqjmsra.inbound.message|_ThreadID=74;_ThreadName=Thread-2;|MQJMSRA_MR2001: run:Caught Exception from onMessage():Redelivering:
javax.ejb.EJBException
    at com.sun.ejb.containers.MessageBeanContainer.deliverMessage(MessageBeanContainer.java:1176)
    at com.sun.ejb.containers.MessageBeanListenerImpl.deliverMessage(MessageBeanListenerImpl.java:81)
    at com.sun.enterprise.connectors.inbound.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:171)
    at $Proxy614.onMessage(Unknown Source)
    at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:260)
    at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:114)
    at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)
    at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)
Caused by: javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted
    at com.sun.ejb.containers.BaseContainer.useClientTx(BaseContainer.java:4722)
    at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:4601)
    at com.sun.ejb.containers.MessageBeanContainer.beforeMessageDelivery(MessageBeanContainer.java:1040)
    at com.sun.ejb.containers.MessageBeanListenerImpl.beforeMessageDelivery(MessageBeanListenerImpl.java:77)
    at com.sun.enterprise.connectors.inbound.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:139)
    at $Proxy614.beforeDelivery(Unknown Source)
    at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:247)
    ... 3 more
|#]
4

1 に答える 1

1

エラーが表示され始めたとき、同じスレッドでまだ発生していますか? この場合のよう_ThreadID=74;_ThreadName=Thread-2に?スレッドがロールバックされたトランザクションに関連付けられたままになるこのバグを報告しましたが、これに対する反応はありませんでした。しかし、データベース接続がより安定した後、それを取り除きました。

このエラーが発生し始める前に、問題のあるスレッドの最後のアクティビティを探します。

于 2012-09-16T19:51:56.397 に答える