在让部署重新搭建weblogic 10后,系统在提交JMS消息是有发现有如下报错:
JDBC driver does not support XA, hencecannot be a participant in two-phase commit. To force this participation, setthe GlobalTransactionsProtocol attribute to LoggingLastResource (recommended)or EmulateTwoPhaseCommit for the Data Source = datasource/pass/eoa9istg/0
at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1884)
atweblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:376)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:268)
atweblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:623)
at weblogic.ejb.container.internal.BaseLocalObject.__WL_postInvokeTxRetry(BaseLocalObject.java:455)
atweblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:52)
atcom.paic.pafa.app.biz.action.impl.pafaTxnAction_3r4470_ELOImpl.perform(UnknownSource)
atsun.reflect.GeneratedMethodAccessor180.invoke(Unknown Source)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.paic.pafa.app.lwc.service.remoting.access.ejb.LocalSlsbInvokerInterceptor.invokeInContext(LocalSlsbInvokerInterceptor.java:111)
atcom.paic.pafa.app.lwc.service.remoting.access.ejb.AbstractSlsbInvokerInterceptor.invoke(AbstractSlsbInvokerInterceptor.java:193)
atcom.paic.pafa.app.lwc.core.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:138)
atcom.paic.pafa.app.lwc.core.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:148)
at $Proxy65.perform(Unknown Source)
at com.paic.pass.biz.async.TxnPassJob.doAction(TxnPassJob.java:29)
at com.paic.pass.biz.async.PassJob.execute(PassJob.java:106)
at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:596)
Caused by:javax.transaction.xa.XAException: JDBC driver does not support XA, hence cannotbe a participant in two-phase commit. To force this participation, set theGlobalTransactionsProtocol attribute to LoggingLastResource (recommended) orEmulateTwoPhaseCommit for the Data Source = datasource/pass/eoa9istg/0
atweblogic.jdbc.wrapper.JTSXAResourceImpl.prepare(JTSXAResourceImpl.java:83)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:1343)
atweblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:513)
atweblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.java:392)
at weblogic.transaction.internal.ServerTransactionImpl.localPrepare(ServerTransactionImpl.java:2633)
atweblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTransactionImpl.java:2281)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:307)
... 17 more
.>
javax.ejb.TransactionRolledbackLocalException:Error committing transaction:; nested exception is:javax.transaction.xa.XAException: JDBC driver does not support XA, hence cannotbe a participant in two-phase commit. To force this participation, set theGlobalTransactionsProtocol attribute to LoggingLastResource (recommended) orEmulateTwoPhaseCommit for the Data Source = datasource/pass/eoa9istg/0
javax.transaction.xa.XAException: JDBCdriver does not support XA, hence cannot be a participant in two-phase commit.To force this participation, set the GlobalTransactionsProtocol attribute toLoggingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source= datasource/pass/eoa9istg/0
atweblogic.jdbc.wrapper.JTSXAResourceImpl.prepare(JTSXAResourceImpl.java:83)
atweblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:1343)
atweblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:513)
atweblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.java:392)
at weblogic.transaction.internal.ServerTransactionImpl.localPrepare(ServerTransactionImpl.java:2633)
atweblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTransactionImpl.java:2281)
atweblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:307)
atweblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:268)
atweblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:623)
at weblogic.ejb.container.internal.BaseLocalObject.__WL_postInvokeTxRetry(BaseLocalObject.java:455)
atweblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:52)
atcom.paic.pafa.app.biz.action.impl.pafaTxnAction_3r4470_ELOImpl.perform(UnknownSource)
at sun.reflect.GeneratedMethodAccessor180.invoke(Unknown Source)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.paic.pafa.app.lwc.service.remoting.access.ejb.LocalSlsbInvokerInterceptor.invokeInContext(LocalSlsbInvokerInterceptor.java:111)
atcom.paic.pafa.app.lwc.service.remoting.access.ejb.AbstractSlsbInvokerInterceptor.invoke(AbstractSlsbInvokerInterceptor.java:193)
atcom.paic.pafa.app.lwc.core.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:138)
atcom.paic.pafa.app.lwc.core.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:148)
at $Proxy65.perform(Unknown Source)
at com.paic.pass.biz.async.TxnPassJob.doAction(TxnPassJob.java:29)
at com.paic.pass.biz.async.PassJob.execute(PassJob.java:106)
at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:596)
javax.ejb.TransactionRolledbackLocalException:Error committing transaction:; nested exception is:javax.transaction.xa.XAException: JDBC driver does not support XA, hence cannotbe a participant in two-phase commit. To force this participation, set theGlobalTransactionsProtocol attribute to LoggingLastResource (recommended) orEmulateTwoPhaseCommit for the Data Source = datasource/pass/eoa9istg/0
at weblogic.ejb.container.internal.EJBRuntimeUtils.throwTransactionRolledbackLocal(EJBRuntimeUtils.java:240)
atweblogic.ejb.container.internal.EJBRuntimeUtils.throwEJBException(EJBRuntimeUtils.java:138)
atweblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:650)
atweblogic.ejb.container.internal.BaseLocalObject.__WL_postInvokeTxRetry(BaseLocalObject.java:455)
atweblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:52)
atcom.paic.pafa.app.biz.action.impl.pafaTxnAction_3r4470_ELOImpl.perform(UnknownSource)
at sun.reflect.GeneratedMethodAccessor180.invoke(Unknown Source)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
atcom.paic.pafa.app.lwc.service.remoting.access.ejb.LocalSlsbInvokerInterceptor.invokeInContext(LocalSlsbInvokerInterceptor.java:111)
at com.paic.pafa.app.lwc.service.remoting.access.ejb.AbstractSlsbInvokerInterceptor.invoke(AbstractSlsbInvokerInterceptor.java:193)
atcom.paic.pafa.app.lwc.core.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:138)
at com.paic.pafa.app.lwc.core.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:148)
at $Proxy65.perform(Unknown Source)
at com.paic.pass.biz.async.TxnPassJob.doAction(TxnPassJob.java:28)
at com.paic.pass.biz.async.PassJob.execute(PassJob.java:104)
atorg.quartz.core.JobRunShell.run(JobRunShell.java:202)
atorg.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:596)
Caused by:javax.transaction.xa.XAException: JDBC driver does not support XA, hence cannotbe a participant in two-phase commit. To force this participation, set theGlobalTransactionsProtocol attribute to LoggingLastResource (recommended) orEmulateTwoPhaseCommit for the Data Source = datasource/pass/eoa9istg/0
at weblogic.jdbc.wrapper.JTSXAResourceImpl.prepare(JTSXAResourceImpl.java:83)
atweblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:1343)
atweblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:513)
at weblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.java:392)
atweblogic.transaction.internal.ServerTransactionImpl.localPrepare(ServerTransactionImpl.java:2633)
at weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTransactionImpl.java:2281)
atweblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:307)
atweblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:268)
atweblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:623)
atweblogic.ejb.container.internal.BaseLocalObject.__WL_postInvokeTxRetry(BaseLocalObject.java:455)
at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:52)
atcom.paic.pafa.app.biz.action.impl.pafaTxnAction_3r4470_ELOImpl.perform(UnknownSource)
at sun.reflect.GeneratedMethodAccessor180.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
atcom.paic.pafa.app.lwc.service.remoting.access.ejb.LocalSlsbInvokerInterceptor.invokeInContext(LocalSlsbInvokerInterceptor.java:111)
atcom.paic.pafa.app.lwc.service.remoting.access.ejb.AbstractSlsbInvokerInterceptor.invoke(AbstractSlsbInvokerInterceptor.java:193)
atcom.paic.pafa.app.lwc.core.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:138)
atcom.paic.pafa.app.lwc.core.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:148)
at $Proxy65.perform(Unknown Source)
at com.paic.pass.biz.async.TxnPassJob.doAction(TxnPassJob.java:29)
at com.paic.pass.biz.async.PassJob.execute(PassJob.java:106)
at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
... 1 more
2013-05-27 09:51:13.075 [ERROR] Errorcommitting transaction:; nested exception is: javax.transaction.xa.XAException:JDBC driver does not support XA, hence cannot be a participant in two-phasecommit. To force this participation, set the GlobalTransactionsProtocolattribute to LoggingLastResource (recommended) or EmulateTwoPhaseCommit for theData Source = datasource/pass/eoa9istg/0
2013-05-27 09:51:13.076 [ERROR]com.paic.pass.biz.async.PassJob:execute,PassJob.java:115
2013-05-27 09:51:13.076 [ERROR]org.quartz.core.JobRunShell:run,JobRunShell.java:202
2013-05-27 09:51:13.076 [ERROR]org.quartz.simpl.SimpleThreadPool$WorkerThread:run,SimpleThreadPool.java:596
2013-05-27 09:51:13.076 [ERROR] ...
2013-05-27 09:51:13.076 [DEBUG] job over!2013-05-27 09:51:13 > DefaultQuartzScheduler_Worker-13
2013-05-27 09:51:18.002 [DEBUG] threadName:Pooled Threads:DefaultQuartzScheduler_Worker-15
2013-05-27 09:51:18.002 [DEBUG]oas-csms10SF4543isRunJobFlag
2013-05-27 09:51:18.002 [DEBUG]oas-csms10SF4543isRunJobFlag
2013-05-27 09:51:18.002 [DEBUG] actionName= dispenseRequestAction,isRunJobFlag= oas-csms10SF4543 服务器运行
2013-05-27 09:51:18.003 [DEBUG] 进入com.paic.pass.biz.async.DispenseRequestJob
2013-05-27 09:51:18.003 [DEBUG]com.paic.pass.biz.async.DispenseRequestJob job time begin.
后来经过分析发现是JMS 连接工厂配置有问题,取消勾选 “已启用 XA 连接工厂” 后问题解决。