[MQ 6.0 救急]MQ 收不到消息
问题大概是这样的,我们现在在做一个系统的升级,就是从websphere5 升级到websphere7, MQ 是以前在websphere5 上面能够正常运行的,唯一的差别就是在websphere5上的MQ通道(channel)的设置的设置为空,但是在websphere7里面,必须添加channel信息,要不在连接MQ server的时候会报错,因此我们添加了一个server connection类型的channel,我们的程序设置接收消息的时间为30秒,但是现在不知道为什么,接收队列总是收不到消息,错误消息如下:
<我可以确定消息已经发送成功而且已经有消息返回,但是接收队列收不到>
[<DEBUG>][18:26:41:290] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.saveSentMessage() AbstractJmsQueueTransporterImpl Save sent message:
JMSMessage class: jms_text
JMSType: null
JMSDeliveryMode: 2
JMSExpiration: 0
JMSPriority: 4
JMSMessageID: ID:414d5120514d47525f5452414445525f4eba714f201f860a
JMSTimestamp: 1334334401287
JMSCorrelationID: ID:343535380000000000000000000000000000000000000000
JMSDestination: queue:///TDR.OLY.A0001.SCQ.XML.SIT?readAheadAllowed=1&putAsyncAllowed=1&targetClient=1
JMSReplyTo: null
JMSRedelivered: false
JMSXAppID: WebSphere MQ Client for Java
JMSXDeliveryCount: 0
JMSXUserID: wifomc81
JMS_IBM_PutApplType: 28
JMS_IBM_PutDate: 20120413
JMS_IBM_PutTime: 16264144
<?xml version="1.0" encoding="UTF-8"?><FIXML xmlns="http://www.fixprotocol.org/FIXML-4-4" xmlns:xsi= ...
[<DEBUG>][18:26:41:290] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.saveSentMessage() Save sent message:
JMSMessage class: jms_text
JMSType: null
JMSDeliveryMode: 2
JMSExpiration: 0
JMSPriority: 4
JMSMessageID: ID:414d5120514d47525f5452414445525f4eba714f201f860a
JMSTimestamp: 1334334401287
JMSCorrelationID: ID:343535380000000000000000000000000000000000000000
JMSDestination: queue:///TDR.OLY.A0001.SCQ.XML.SIT?readAheadAllowed=1&putAsyncAllowed=1&targetClient=1
JMSReplyTo: null
JMSRedelivered: false
JMSXAppID: WebSphere MQ Client for Java
JMSXDeliveryCount: 0
<?xml version="1.0" encoding="UTF-8"?><FIXML xmlns="http://www.fixprotocol.org/FIXML-4-4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.fixprotocol.org/FIXML-4-4 /C:/FiXML/4.4/Schema/fixml-main-4-4.xsd" v="4.4" r="20030618" s="20040109"><Order Acct="0005000-000" Ccy="USD" HandlInst="1" ClOrdID="TID000000011550" OrigntnDt="20120413-182200" PrevClsPx="204.150000" Px="205" PxTyp="2" QtyTyp="0" SettlCcy="USD" Side="1" TxnTm="20120413-182640" OrdTyp="101" XSettlAcctID="0005000.001.000.840" XOrdChl="006" XPreCheckFlag="Y"><Pty ID="fabriqfr" R="101"/><Pty ID="GG" R="98"/><Pty ID="0150105" R="106" Src="0150105"/><Instrmt Desc="IBM+CORP" Exch="065" ID="US4592001014" SecTyp="EQ" IDSrc="4"><AID AltID="0006442000" AltIDSrc="K"/></Instrmt><OrdQty Qty="50"/><Comm CommTyp="101"/><Hdr SeqNum="1909" MsgTyp="D" SID="IFOP_TRADER_MC" SndgTm="20120413-182641" TID="OLY_MC"/></Order></FIXML>
[<DEBUG>][18:26:41:290] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.saveSentMessage() adpCtx outMsgId=5562
[<DEBUG>][18:26:41:291] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.getMessageType() actionType = 206
[<DEBUG>][18:26:41:291] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.getMessageType() result = SEC_NEW_SINGLE_ORDER_PRECHECK
[< INFO>][18:26:41:309] 61607dda OBK JmsHelper.createInstance() JNDI JMS is used by Cfg!
[<DEBUG>][18:26:41:309] 61607dda TDR StoreMQConnection.putConnection() try to put JmsHelper8 to list
[<DEBUG>][18:26:41:309] 61607dda TDR StoreMQConnection.putConnection() original List size=0
[<DEBUG>][18:26:41:309] 61607dda TDR StoreMQConnection.putConnection() after List size=1
[<DEBUG>][18:26:41:309] 61607dda TDR StoreMQConnection.putConnection() mList[0]=JmsHelper8
[<DEBUG>][18:26:41:310] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.doReceiveAction() actionType= 206
[<DEBUG>][18:26:41:310] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.doReceiveAction() mReceiveTimeoutRealValue= 30000
[<DEBUG>][18:26:41:310] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.doReceiveAction() getReplyMsgSelector()=JMSCorrelationID= 'ID:343535380000000000000000000000000000000000000000'
[<DEBUG>][18:26:41:312] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.doReceiveAction() receiver.getQueue= queue:///OLY.TDR.A0002.SCP.XML.SIT?readAheadAllowed=1&putAsyncAllowed=1&targetClient=1
[<DEBUG>][18:26:41:313] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.processReplyMessage() msg='null'
[<DEBUG>][18:26:41:313] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.doReceiveAction() receivedObj=null
[< INFO>][18:26:41:313] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.doReceiveAction() throw ReceiveTimeoutException getSelectedMsgID()=ID:343535380000000000000000000000000000000000000000
[<DEBUG>][18:26:41:313] 61607dda TDR.BSV SecuritiesValidationTransporterImpl.doReceiveAction() throw ReceiveTimeoutException=throw ReceiveTimeoutException getSelectedMsgID()=ID:343535380000000000000000000000000000000000000000(messageCode=COM000312)
[<DEBUG>][18:26:41:315] 61607dda TDR StoreMQConnection.removeConnection() try to remove JmsHelper8 from list
[<DEBUG>][18:26:41:315] 61607dda TDR StoreMQConnection.removeConnection() original List size=1
[<DEBUG>][18:26:41:315] 61607dda TDR StoreMQConnection.removeConnection() mList[0]=JmsHelper8
[<ERROR>][18:26:41:315] 61607dda TDR StoreMQConnection.removeConnection() List already contain JmsHelper8
[<DEBUG>][18:26:41:315] 61607dda TDR StoreMQConnection.removeConnection() after List size=0
[<DEBUG>][18:26:41:315] 61607dda TDR StoreMQConnection.removeConnection() try to remove JmsHelper from list
这个问题已经拖延很久没有解决了,本来这个项目一直都做得很好,客户评价很高,由于这个问题,客户都投诉了,有没有高手帮忙解决啊,小女子跪谢了。
[解决办法]
先确认下Queue里面有没有消息,是由于没有消息接收到null了 还是说有消息接收不进来,我看你贴出来的东西也没有Exception啊