websphere mq 不能访问集群中其它节点对列
2008-03-23 12:49:02,310 WARN [CMPP Protocol Thread :adaptor2 -- 58] [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple@f69bf2org.springframework.jms.InvalidDestinationException: MQJMS2008: 未能打开 MQ 队列 CENTER; nested exception is javax.jms.InvalidDestinationException: MQJMS2008: 未能打开 MQ 队列 CENTER; nested exception is com.ibm.mq.MQException: MQJE001: 完成代码是 2,原因为 2085
Caused by:
javax.jms.InvalidDestinationException: MQJMS2008: 未能打开 MQ 队列 CENTER
at com.ibm.mq.jms.MQQueueServices.getQueueOpenException(MQQueueServices.java:412)
at com.ibm.mq.jms.MQQueueServices.getOutputQueue(MQQueueServices.java:354)
at com.ibm.mq.jms.JMSServicesMgr.getOutputQueue(JMSServicesMgr.java:145)
at com.ibm.mq.jms.MQSession.createQSender(MQSession.java:6359)
at com.ibm.mq.jms.MQQueueSession.createSender(MQQueueSession.java:240)
at com.ibm.mq.jms.MQQueueSession.createProducer(MQQueueSession.java:360)
at org.springframework.jms.core.JmsTemplate.doCreateProducer(JmsTemplate.java:846)
at org.springframework.jms.core.JmsTemplate.createProducer(JmsTemplate.java:827)
at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:505)
at org.springframework.jms.core.JmsTemplate$2.doInJms(JmsTemplate.java:477)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:428)
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:475)
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:467)
at com.wxxr.common.service.JMSDataTransferer.transfer(JMSDataTransferer.java:48)
at com.wxxr.workstation.jboss.service.WSDataTransferInterceptor$1.invoke(WSDataTransferInterceptor.java:66)
at com.wxxr.common.service.UserCacheLoaderService$updateObject_7337301020227518154.invokeNext(UserCacheLoaderService$updateObject_7337301020227518154.java)
at com.wxxr.common.service.UserCacheLoaderService.updateObject(UserCacheLoaderService.java)
at com.wxxr.common.service.BizObjectCacheLoader.updateNode(BizObjectCacheLoader.java:391)
at com.wxxr.common.service.BizObjectCacheLoader.put(BizObjectCacheLoader.java:255)
at com.wxxr.common.service.BizObjectCacheLoader.prepare(BizObjectCacheLoader.java:479)
at org.jboss.cache.interceptors.CacheStoreInterceptor.prepareCacheLoader(CacheStoreInterceptor.java:258)
at org.jboss.cache.interceptors.CacheStoreInterceptor.invoke(CacheStoreInterceptor.java:131)
at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
at org.jboss.cache.interceptors.TxInterceptor.runPreparePhase(TxInterceptor.java:873)
at org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1156)
at org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:75)
at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:114)
at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:247)
at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:86)
at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177)
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1389)
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:175)
at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87)
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
at com.wxxr.common.jboss.ExJMSGateKeeper$MyMessageListener$onMessage_N6811220613805550889.invokeNext(ExJMSGateKeeper$MyMessageListener$onMessage_N6811220613805550889.java)
at com.wxxr.common.jboss.ExJMSGateKeeper$MyMessageListener.onMessage(ExJMSGateKeeper.java)
at com.wxxr.network.adaptor.cmpp.CMPPProtocolService.processReceivedMessage(CMPPProtocolService.java:643)
at com.wxxr.network.adaptor.cmpp.CMPPProtocolService.handleEvent(CMPPProtocolService.java:627)
at com.wxxr.network.adaptor.cmpp.AbstractCMPPSession.processMessage(AbstractCMPPSession.java:481)
at com.wxxr.network.adaptor.cmpp.AbstractCMPPClientSession.processReceivePacket(AbstractCMPPClientSession.java:73)
at com.wxxr.network.adaptor.cmpp.AbstractCMPPSession$4.run(AbstractCMPPSession.java:1001)
at com.hygensoft.common.util.AnotherThreadPoolExecutor$Worker.runTask(AnotherThreadPoolExecutor.java:397)
at com.hygensoft.common.util.AnotherThreadPoolExecutor$Worker.run(AnotherThreadPoolExecutor.java:422)
at java.lang.Thread.run(Thread.java:595)
环境:
2008年01月23日 20时05分54秒 - Process(28036.1) User(jboss) Program(dspmq)
AMQ6047: Conversion not supported.
EXPLANATION:
WebSphere MQ is unable to convert string data tagged in CCSID 0 to data in
CCSID 0.
ACTION:
Check the WebSphere MQ Application Programming Reference Appendix and the
appropriate National Language Support publications to see if the CCSIDs are
supported by your system.
----- amqxfdcx.c : 768 --------------------------------------------------------
192.168.5.9
InitCtx> dis q(queue.SendQueue)
FAILIFQUIESCE(YES)
QUEUE(CENTER)
QMANAGER()
PERSISTENCE(APP)
CCSID(1208)
TARGCLIENT(JMS)
ENCODING(NATIVE)
PRIORITY(APP)
EXPIRY(APP)
VERSION(6)
InitCtx>
192.168.5.10
InitCtx> dis q(queue.SendQueue)
FAILIFQUIESCE(YES)
QUEUE(CENTER)
QMANAGER()
PERSISTENCE(APP)
CCSID(1208)
TARGCLIENT(JMS)
ENCODING(NATIVE)
PRIORITY(APP)
EXPIRY(APP)
VERSION(6)
InitCtx>
192.168.1.6
InitCtx> dis q(queue.ReceiveQueue)
FAILIFQUIESCE(YES)
QUEUE(CENTER)
QMANAGER(QM.CENTER)
PERSISTENCE(APP)
CCSID(1208)
TARGCLIENT(JMS)
ENCODING(NATIVE)
PRIORITY(APP)
EXPIRY(APP)
VERSION(6)
InitCtx> dis q(queue.SendQueue.guangzhou)
FAILIFQUIESCE(YES)
QUEUE(GUANGZHOU)
QMANAGER()
PERSISTENCE(APP)
CCSID(1208)
TARGCLIENT(JMS)
ENCODING(NATIVE)
PRIORITY(APP)
EXPIRY(APP)
VERSION(6)
InitCtx>
经查文档:
zh_CN.gb18030 | 简体中文 | GB18030 | 5488 |
参考链接:
How to find the CCSID value associated with the coded character set for a locale in a UNIX session
MQ client does not work unless export MQCCSID is used
XC076001 with a reason code of xecX_E_CONV_NOT_SUP when LC_ALL is left blank
解决方案:
集群环境出了问题,原因不详,在CENTER 节点,找到不正常的对列将其删除.
RESET CLUSTER(WXXRCLUS) ACTION(FORCEREMOVE) QMID('QM.GUANGDONG2_2008-03-10_14.37.13') QUEUES(YES)
(注:其中的QMID 可以通过websphere MQ 资源管理器/队列管理器集群/WXXRCLUS/完整存储库/qm.center 中找到不正常队列的QMID.)
方向:分布式系统设计