与 WebSphere MQ 相关的问题和变通方法包括如下内容:
- 问题:创建队列管理器时出错。 Amqerr*.log 文件中的错误如下:
AMQ9213: A communications error for TCP/IP occurred. 解释: 通信中出现意外的错误。 操作: 来自 TCP/IP(ioctlsocket)的返回码调用是 10038(X'2736')。记录 这些值,并告诉系统管理员。
变通方法:10038 返回码指明,WebSphere MQ 侦听器池在把初始套接字从侦听器传递到池中时遇到问题。在带有防火墙的环境中,非常常见。要变通问题,禁用带有下列环境变量的池:
set MQNOREMPOOL=1
- 问题:错误消息表明 WebSphere MQ 队列连接的问题,可能在 SendMessage 端。队列连接的出厂设置与目标队列设置均正确,但工作流(itim_wf)和工作流暂挂(itim_wf_pending)队列处于不正确状态或不可用状态。
某些错误消息可能包含以下内容:
CNTR0019E:处理方法“send”时出现非应用程序异常。异常数据:(未显示数据...)
连接管理器从资源适配器接收到资源 JMS$ITIM Queue Connection Factory$JMSManagedConnection@1010457898 的致命连接错误。 接收到的异常是 javax.jms.JMSException:MQJMS2008:未能打开 MQ 队列
变通方法:如使用 AIX 的示例,执行以下步骤重新创建 WebSphere MQ 队列:
- 在 /usr/WebSphere/AppServer 目录中,输入以下命令:
deletemq.sh
提供单元名、节点名和队列名称。您可以在 createMQ.nodename_jmsserver.log 文件的 /usr/WebSphere/AppServer/logs 目录中找到这些值。例如,输入:
./deletemq.sh ITIM-45AIXCluster1 faith jmsserver
确保没有 mqm 进程继续运行。如果进程仍在运行,请重新引导计算机。
- 在 /usr/WebSphere/AppServer 目录中,输入以下命令:
createmq.sh
提供单元名、节点名和队列名称。您可以在 createMQ.nodename_jmsserver.log 文件的 /usr/WebSphere/AppServer/logs 目录中找到这些值。例如,输入:
./createmq.sh ITIM-45AIXCluster1 faith jmsserver
重新启动 JMS 服务器。
- 在 /usr/WebSphere/AppServer 目录中,输入以下命令:
- 问题:出现丢失 WebSphere MQ 连接。尽管有足够的可用磁盘空间和实内存,但系统仍发出以下错误消息:
AMQ7463:队列管理器的日志 WAS_timwin7_jmsserver 已满。
此外,出现一个如下的消息,消息与资源用尽的情况相关:
MQJE001:完成码 2,原因 2102
变通方法:当由于日志已满,尝试写入一个日志记录被拒绝时,发布 AMQ7463 消息。队列管理器将尝试解决此问题。
在消息流量高得反常的期间可能遇到这种状况。然而,如果您坚持填充日志,您必须考虑以下步骤:
- 通过更改队列管理器配置文件中的值来增加日志文件的数目。然后,您必须停止并重新启动队列管理器。
- 或者,使日志文件自己增大。您必须删除并重新创建队列管理器。
- 问题:尝试创建队列连接时,出现以下 JMS 异常:
MQJMS2005:无法为 '<identifier>_server1' 创建 MQQueueManager
变通方法:无。由于向队列管理器建立了一个客户机(信道)连接,即使 WebSphere MQ(此时是嵌入消息服务器)和 WebSphere Application Server 位于同一台机器上,也可能偶尔出现网络问题。如果使用绑定连接,可能不会发生此问题。然而,嵌入式消息传递服务器使用的是客户机连接,并且这不是一个可配置的选项。