最近我们注意到websphere MQ服务器上的AMQERR01.log中出现以下错误。
AMQ9271: Channel 'SVRCONN1' timed out.
ACTION:
The return code from the select() [TIMEOUT] 65 seconds call was 0 (X'0').
AMQ9999: Channel 'SVRCONN1' to host 'x.x.x.x' ended abnormally.
dis channel(SVRCONN1)
1 : dis channel(SVRCONN1)
AMQ8414: Display Channel details.
CHANNEL(SVRCONN1) CHLTYPE(SVRCONN)
ALTDATE(2015-10-20) ALTTIME(13.28.54)
COMPHDR(NONE) COMPMSG(NONE)
DESCR( ) **DISCINT(0)**
HBINT(300) KAINT(AUTO)
MAXINST(999999999) MAXINSTC(999999999)
MAXMSGL(4194304) MCAUSER(busyuser)
MONCHL(QMGR) RCVDATA( )
RCVEXIT( ) SCYDATA( )
SCYEXIT( ) SENDDATA( )
SENDEXIT( ) **SHARECNV(10)**
SSLCAUTH(REQUIRED) SSLCIPH( )
SSLPEER( ) TRPTYPE(TCP)
我们没有配置除mcauser之外的任何频道属性。
另一方面,Web服务器在JBoss环境中使用wmqjms.rar资源适配器,并为MQ服务器中定义的主题之一创建10个订阅者。它与SVRCONN1频道通信。
Web服务器上有六个MDB没有响应在其订阅的主题上发布的任何消息。剩下的4个还活着并且回应得当。所有这些MDB具有相同的配置 - 使用相同的QM,SVRCONN1通道,相同的主题......
“通道异常结束”有六个条目(上面的错误)在AMQERR01.log中。
**更新**
资源适配器属性
connectionConcurrency 1 maxConnections 50 reconnectionRetryCount 5 reconnectionRetryInterval 300000
超时的原因是什么?这是配置问题吗?
感谢
答案 0 :(得分:0)
我建议使用IBM MQ 7.5.0.5。该补丁级别包括使用JBoss修复XA事务恢复。
关于在JBoss中记录IBM MQ JCA,您可以在standalone.xml中配置IBM公共服务:
<system-properties>
<property name="com.ibm.msg.client.commonservices.trace.status" value="OFF"/>
<property name="com.ibm.msg.client.commonservices.trace.level" value="0"/>
<property name="com.ibm.msg.client.commonservices.trace.append" value="false"/>
<property name="com.ibm.msg.client.commonservices.trace.startup" value="true"/>
<property name="com.ibm.msg.client.commonservices.trace.maxBytes" value="-1"/>
<property name="com.ibm.msg.client.commonservices.trace.limit" value="5000000"/>
<property name="com.ibm.msg.client.commonservices.trace.count" value="5"/>
<property name="com.ibm.msg.client.commonservices.trace.standalone" value="true"/>
<property name="com.ibm.msg.client.commonservices.trace.errorStream" value="${jboss.server.log.dir}/wmq-trace-error.log"/>
<property name="com.ibm.msg.client.commonservices.trace.outputName" value="${jboss.server.log.dir}/wmq-trace.log"/>
<property name="com.ibm.msg.client.commonservices.log.outputName" value="${jboss.server.log.dir}/wmq.log"/>
<property name="com.ibm.msg.client.commonservices.log.status" value="ON"/>
<property name="com.ibm.msg.client.commonservices.log.maxBytes" value="-1"/>
<property name="com.ibm.msg.client.commonservices.log.limit" value="5000000"/>
<property name="com.ibm.msg.client.commonservices.log.count" value="5"/>
<property name="com.ibm.msg.client.commonservices.log.append" value="false"/>
<property name="com.ibm.msg.client.commonservices.ffst.suppress" value="-1"/>
</system-properties>
请注意,此配置将IBM MQ日志放在JBoss日志目录中。
然后,配置IBM MQ JCA以进行日志记录:
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1">
<resource-adapters>
<resource-adapter id="wmq.jmsra.rar">
<archive>
wmq.jmsra.rar
</archive>
<transaction-support>XATransaction</transaction-support>
<config-property name="logWriterEnabled">
true
</config-property>
<config-property name="traceEnabled">
true
</config-property>
<config-property name="traceLevel">
6
</config-property>
A&#39; traceLevel&#39; 6是INFO级别日志记录,而3是WARN / ERROR。
wmq-trace.log文件可能包含有关您超时的更详细信息。
答案 1 :(得分:0)
如果您愿意,可以使用IBM MQ JCA的完整配置:
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1">
<resource-adapters>
<resource-adapter id="wmq.jmsra.7.5.0.4.rar">
<archive>
wmq.jmsra.7.5.0.4.rar
</archive>
<transaction-support>XATransaction</transaction-support>
<config-property name="logWriterEnabled">
true
</config-property>
<config-property name="maxConnections">
100
</config-property>
<config-property name="traceEnabled">
true
</config-property>
<config-property name="traceLevel">
6
</config-property>
<config-property name="connectionConcurrency">
1
</config-property>