Glassfish и ActiveMQ XATransactions - PullRequest
       33

Glassfish и ActiveMQ XATransactions

0 голосов
/ 14 июля 2011

Я использую

  • Sun GlassFish Enterprise Server v2.1.1 ((v2.1 Patch06) (9.1_02 Patch12))
  • ActiveMQ-ЭОР-5.4.2-плавкая 02-00.rar
  • XAT-транзакция для activemq-rar

Я испытываю исключение ниже и подозреваю, что это происходит потому, что activemqra не может получить соединение activemq после запуска транзакции XAT. Я ожидал, что activemqra откатит транзакцию в этом случае.

В настоящее время запущенная транзакция зависает в Glassfish до истечения времени ожидания. Это особенно плохо, когда транзакция БД является частью XATransaction потому что тогда соединение с БД недоступно.

Понятия не имею, что делать, поэтому я не получаю зависшие транзакции?

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

С наилучшими пожеланиями, Trym

[#|2011-07-14T15:24:50.946+0200|INFO|sunappserver2.1| javax.enterprise.system.container.ejb.mdb |_ThreadID=26;_ThreadName=p: mdb-threadpool; w: 6;|javax.ejb.EJBException javax.ejb.EJBException: Unable to complete container-managed transaction.; 
nested exception is: javax.transaction.SystemException: org.omg.CORBA.INTERNAL: JTS5031: 
Exception [org.omg.CORBA.INTERNAL: vmcid: 0x0  minor code: 0 completed: Maybe] on Resource [commit one phase] operation.  vmcid: 0x0  minor code: 0  completed: No
javax.transaction.SystemException: org.omg.CORBA.INTERNAL: JTS5031: 
Exception [org.omg.CORBA.INTERNAL: vmcid: 0x0  minor code: 0 completed: Maybe] on Resource [commit one phase] operation.  vmcid: 0x0  minor code: 0  completed: No
    at com.sun.jts.jta.TransactionManagerImpl.commit(TransactionManagerImpl.java:321)
    at com.sun.enterprise.distributedtx.J2EETransactionManagerImpl.commit(J2EETransactionManagerImpl.java:1029)
    at com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.commit(J2EETransactionManagerOpt.java:398)
    at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3826)
    at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3605)
    at com.sun.ejb.containers.MessageBeanContainer.afterMessageDeliveryInternal(MessageBeanContainer.java:1226)
    at com.sun.ejb.containers.MessageBeanContainer.afterMessageDelivery(MessageBeanContainer.java:1197)
    at com.sun.ejb.containers.MessageBeanListenerImpl.afterMessageDelivery(MessageBeanListenerImpl.java:79)
    at com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:139)
    at $Proxy65.afterDelivery(Unknown Source)
    at org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery(MessageEndpointProxy.java:128)
    at org.apache.activemq.ra.MessageEndpointProxy.afterDelivery(MessageEndpointProxy.java:69)
    at org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java:224)
    at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:897)
    at org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:169)
    at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:77)
    at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
javax.ejb.EJBException: Unable to complete container-managed transaction.; nested exception is: javax.transaction.SystemException: org.omg.CORBA.INTERNAL: JTS5031: Exception [org.omg.CORBA.INTERNAL: vmcid: 0x0  minor code: 0 completed: Maybe] on Resource [commit one phase] operation.  vmcid: 0x0  minor code: 0  completed: No
    at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:3837)
    at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3605)
    at com.sun.ejb.containers.MessageBeanContainer.afterMessageDeliveryInternal(MessageBeanContainer.java:1226)
    at com.sun.ejb.containers.MessageBeanContainer.afterMessageDelivery(MessageBeanContainer.java:1197)
    at com.sun.ejb.containers.MessageBeanListenerImpl.afterMessageDelivery(MessageBeanListenerImpl.java:79)
    at com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:139)
    at $Proxy65.afterDelivery(Unknown Source)
    at org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery(MessageEndpointProxy.java:128)
    at org.apache.activemq.ra.MessageEndpointProxy.afterDelivery(MessageEndpointProxy.java:69)
    at org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java:224)
    at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:897)
    at org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:169)
    at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:77)
    at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
|#]

Ответы [ 2 ]

0 голосов
/ 25 декабря 2013

Просто удалите содержимое glassfish / domains / domain1 / imq / instances / imqbroker / fs370

это происходит из-за некоторых странных поврежденных файлов для сохранения данных очереди ... после очистки этой папки ошибки исчезнут

0 голосов
/ 15 сентября 2011

Кажется, это ошибка на Glassfish.Он пытается закрыть поток, который уже закрыт.Есть патч, чтобы исправить эту проблему.Взгляните на https://forums.oracle.com/forums/thread.jspa?threadID=1979095.

...