【发布时间】:2014-11-04 08:53:30
【问题描述】:
我在 Websphere 7 上部署了一个 CMT MDB,它从 Websphere MQ 7 队列中获取消息,并通过资源适配器将它们发送到外部系统。 消息通过 MDB 逻辑后,我尝试通过资源适配器与外部系统建立连接,但出现错误:
Connection Error Request Stack: java.lang.Throwable
at com.ibm.ejs.j2c.ConnectionEventListener.connectionErrorOccurred(ConnectionEventListener.java:441)
at com.jbase.jremote.jca.EventNotifier$1.notify(Unknown Source)
at com.jbase.jremote.jca.JRemoteManagedConnection.notify(Unknown Source)
at com.jbase.jremote.jca.JRemoteManagedConnection.isAlive(Unknown Source)
at com.jbase.jremote.jca.JRemoteManagedConnectionFactory.matchManagedConnections(Unknown Source)
at com.ibm.ejs.j2c.PoolManager.getMCWrapperFromMatch(PoolManager.java:3909)
at com.ibm.ejs.j2c.PoolManager.claimVictim(PoolManager.java:3784)
at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2474)
at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:1064)
at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:701)
at com.jbase.jremote.jca.JRemoteConnectionFactoryImpl.getConnection(Unknown Source)
at com.jbase.jremote.jca.JRemoteConnectionFactoryImpl.getConnection(Unknown Source)
at com.temenos.tocf.grouping.mdb.MessageGroupingMDB.processRequest(MessageGroupingMDB.java:192)
at com.temenos.tocf.grouping.mdb.MessageGroupingMDB.sendMessage(MessageGroupingMDB.java:166)
at com.temenos.tocf.grouping.mdb.MessageGroupingMDB.onMessage(MessageGroupingMDB.java:123)
at com.ibm.ejs.container.MessageEndpointHandler.invokeMdbMethod(MessageEndpointHandler.java:1093)
at com.ibm.ejs.container.MessageEndpointHandler.invoke(MessageEndpointHandler.java:778)
at $Proxy28.onMessage(Unknown Source)
at com.ibm.mq.connector.inbound.MessageEndpointWrapper.onMessage(MessageEndpointWrapper.java:131)
at com.ibm.mq.jms.MQSession$FacadeMessageListener.onMessage(MQSession.java:147)
at com.ibm.msg.client.jms.internal.JmsSessionImpl.run(JmsSessionImpl.java:2598)
at com.ibm.mq.jms.MQSession.run(MQSession.java:862)
at com.ibm.mq.connector.inbound.WorkImpl.run(WorkImpl.java:229)
at com.ibm.ejs.j2c.work.WorkProxy.run(WorkProxy.java:399)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1662)
如果我在 WebSphere 8.5 中使用相同的资源适配器部署相同的 MDB,它可以正常工作而不会出现任何错误。 所以我认为它与 WebSphere 7 以及它无法在连接池中打开/找到连接的方式有关。 这不是负载测试,因此不会有太多资源试图获得免费连接。
提前感谢您对此问题的任何建议!
【问题讨论】:
-
您是否正在尝试从 WAS 连接到 JBoss 消息传递? com.jbase.jremote.jca.JRemoteManagedConnection 表明了这一点。
-
我正在尝试通过资源适配器从 Websphere 连接到 EIS。我拥有的资源适配器包含存档 jremote.jar,其中包括 com.jbase.jremote.jca.JRemoteManagedConnection 类。
-
扩展日志还显示:Exception (not XA_RB*) from end javax.transaction.xa.XAException: Failed to receive message - Server disconnected at com.jbase.jremote.io.JConnectionImpl.end( Unknown Source) at com.ibm.ejs.j2c.XATransactionWrapper.end(XATransactionWrapper.java:603) at com.ibm.ws.Transaction.JTA.JTAResourceBase.end(JTAResourceBase.java:240) at com.ibm.tx。 jta.RegisteredResources.sendEnd(RegisteredResources.java:1152) at com.ibm.tx.jta.RegisteredResources.distributeEnd(RegisteredResources.java:1126)
标签: ejb ibm-mq websphere-7 message-driven-bean