我在Linux环境中使用WAS 7.0.0.35(64位)创建MQ操作时遇到问题。
系统配置 -
WAS版本: - 7.0.0.35(64位) 操作系统 - Redhat Enterprise Linux 5.8 x86_64 WebSphere MQ:-7.5
注意: - MQ和WAS服务器安装在不同的机器上。传输类型TCP用于MQ。
WAS配置: 服务器级别的类加载器策略是:: Single 服务器级别的类加载模式是::首先使用父类加载器加载的类。
应用程序级别的类加载器策略是::首先使用父类加载器加载的类。
我们发现错误后的MQ日志 -
流程(8240.4)用户(mqm)程序(amqrmppa) 主机(mq-qa1.XXXfintech.com)安装(安装1) VRMF(7.5.0.0)QMgr(krishnendur.LLLmv.XXXfintech.com)
AMQ9504 :检测到频道' CHKMV'的协议错误。
说明: 在与远程队列管理器通信期间,通道程序 检测到协议错误。失败类型为11,关联数据为0。 行动: 请与应检查错误日志的系统管理员联系 确定失败的原因。
应用程序日志中的错误 -
[2015-08-19 13:43:37,835] - [WARN] - [bContainer:10] - [com.abc.AspectFailOver.ajc $ $ $ com_XXX__AspectFailOver $ 3 $ 73ca82ff(){82}] - 通用例外 javax.jms.JMSException:CC = 2; RC = 2009
at com.abc.inf.QueueConnectionFactoryBean.createQueueConnection(QueueConnectionFactoryBean.java:159)
at com.abc.inf.JmsConnectionFactoryImpl.newSession(JmsConnectionFactoryImpl.java:67)
at com.abc.inf.QueueHandler.<init>(QueueHandler.java:115)
at com.abc.inf.QueueHandlerFactory.getHandler(QueueHandlerFactory.java:51)
at com.abc.ref.web.base.AbstractWizardController.commitAction(AbstractWizardController.java:1055)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1694)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1635)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:149)
....
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:191)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:516)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:307)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:84)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1662)
[2015-08-19 13:43:37,837]-[ERROR]-[bContainer : 10]-[applicationclass.QueueXXX.<init>(){118}]-javax.jms.JMSException: CC=2;RC=2009
[2015-08-19 13:43:37,837]-[WARN ]-[bContainer : 10]-[applicationclass.AFOXXX.ajc$before$cxxxxxxx(){82}]-Generic Exception
applicationclass.MKEClass: **Failed To Create MQ Session**
at applicationclass.QueueXXX.<init>(QueueXXX.java:119)
at applicationclass.QueueXXXZZZ.getHandler(QueueXXXZZZ.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1694)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1635)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:149)
....
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:516)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:307)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:84)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1662)
但是在WAS日志中我们发现了以下错误代码 -
与MQbind相关的错误代码 ** mqjbnd等级: - CC = 2; RC = 2495; AMQ8568 **
消息传递提供程序组件: | CMVC: - k700-L080820
|类名: - 类com.ibm.msg.client.wmq.factories.WMQComponent
|组件名称: - com.ibm.msg.client.wmq
|组件标题: - IBM WebSphere MQ
|工厂类: - 类com.ibm.msg.client.wmq.factories.WMQFactoryFactory
|版本: - 7.0.0.0
| mqjbnd级别: - CC = 2; RC = 2495; AMQ8568:原生JNI库&#39; mqjbnd&#39;没找到。 [3 = mqjbnd] :: mqjbnd(在java.library.path中找不到)
提供商特定信息
JMS系统概述 民。连接:1 民。会话:0 民。消费者:0 民。制片人:0
..... | queueManagerName: - XXXst2.XXXmv.AAAfintech.com
| XMSC_CONNECTION_TYPE: - 1
| XMSC_CONNECTION_TYPE_NAME: - com.ibm.msg.client.wmq
日志中发现的另一个错误代码是 com.ibm.mq.jmqi.remote.internal.RemoteHconn原因代码:2009和compcode:2
FFDC
异常:com.ibm.ws.wmqcsi.trace.WMQClientException SourceId:ProbeId:XN00100C Reporter:java.util.HashMap@24252425 com.ibm.ws.wmqcsi.trace.WMQClientException:
FDCTitle
源类: - com.ibm.msg.client.wmq.internal.WMQConnection
来源方法: -
ProbeID: - XN00100C
线程: - name = WebContainer:10 priority = 5 group = main ccl = com.ibm.ws.classloader.CompoundClassLoader@11621162 [战争:XXXmv-LLL-QA / YYY-tomcat.war]
... 家长:com.ibm.ws.classloader.CompoundClassLoader@f120f12 [app:XXXmv-LLL-qa]
委派模式:PARENT_FIRST
Data
----
| compcode: - 2 | hconn: - com.ibm.mq.jmqi.remote.internal.RemoteHconn [connectionId = 414D51436E696E7374322E6E696E6D76E4C1905501054F20] | 原因: - 2009
Version information
-------------------
用于Java消息服务的WebSphere MQ类 7.0.0.0 K700-L080820 生产
Java消息服务客户端 7.0.0.0 K700-L080820 生产
IBM WebSphere MQ 7.0.0.0 K700-L080820 生产
Java平台标准版公共服务 1.0.0.0 K700-L080820 生产
空 空值 生产
Stack trace
-----------
堆栈跟踪以显示FFST呼叫的位置 | FFST位置: - java.lang.Exception |在com.ibm.msg.client.commonservices.trace.Trace.getCurrentPosition(Trace.java:1671) |在com.ibm.msg.client.commonservices.trace.Trace.createFFSTString(Trace.java:1610) |在com.ibm.msg.client.commonservices.trace.Trace.ffstInternal(Trace.java:1494) |在com.ibm.msg.client.commonservices.trace.Trace.ffst(Trace.java:1353) |在com.ibm.msg.client.wmq.internal.WMQConnection。(WMQConnection.java:438) | at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:7855) | at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:7331) | at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:276) | at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6058) | at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:144) |在com.abc.inf.AAAQueueConnectionFactoryBean.makeObject(AAAQueueConnectionFactoryBean.java:221)
谢谢&amp;的问候,
Krishnendu
答案 0 :(得分:0)
此问题的原因是IBM MQ APAR“IV36766: MQ V7.0.0.0 JAVA CLIENT APPLICATION CONNECTING TO MQ V7.1 QMGR GETS AMQ9504 PROTOCOL ERROR; FDC HAS PROBE IDS RM680037 RM039000”
问题摘要
受影响的用户:
v7.0.0.0的用户连接到v7.1或v7.5的Java客户端 队列管理器可能会受此问题的影响。
受影响的平台:
所有分布式(iSeries,所有Unix和Windows)
问题摘要:
v7.0.0.0 JMS客户端流程中存在一个错误 已在更高版本的代码中修复。在队列管理员之前 比v7.1,未检测到无效流量。
在v7.1中添加了代码以检测并报告无效流和此 检测导致生成rrcE_PROTOCOL_ERROR FDC。
问题结论
队列管理器的行为是正确的 报告无效流,因此未恢复此代码更改。
该问题的推荐解决方案是升级任何客户端 客户端发布于v7.0.1.0或更高版本时仍然在v7.0.0.0到更高版本 稍后包含客户端代码的修复程序,以便它不发送 流到队列管理器的流程无效。
另请注意,自2015年9月30日起,MQ v7.0已停止服务,但如果WAS版本为EOS,则在支持的WAS版本中将保留支持。