【发布时间】:2017-11-09 01:39:54
【问题描述】:
我创建了一个队列管理器 (IBM WebSphere MQ->QueueManagers->new->QueueManager)
我已经创建了一个启动队列 (QueueManager->Queues->New->Local Queue):
- 队列名称:
INITQUEUE - 发送消息和获取消息:
Allowed - 范围:
Queue manager
我已经创建了一个进程(Process Definitions->New->Process Definition):
- 进程名称:
Paint - 申请类型:
DOS - 应用程序 ID:
C:\Users\Desktop\paint.bat
我已经创建了一个应用队列 (QueueManager->Queues->New->Local Queue):
- 触发器类型:
First - 触发控制:
On - 启动队列:
INITQUEUE - 进程名称:
sample
我创建了一个服务来启动触发器监视器(Services->New->Service):
- 服务类型:
server - 服务控制:
Queue Manager - 启动命令:
C:\Program Files (x86)\IBM\WebSphere MQ\bin\runmqtrm - 开始参数:
-q INITQUEUE
当一条消息被放入应用队列时,没有触发消息被插入到初始化队列中。
当我启动触发器监视器时,它会在几秒钟后自动停止。
如何纠正这些问题。
这是我启动 runmqtrm 时得到的输出:
C:\Program Files (x86)\IBM\WebSphere MQ\bin>runmqtrm -m QMGR -q INITQUEUE
5724-H72 (C) Copyright IBM Corp. 1994, 2011. ALL RIGHTS RESERVED.
11/3/2017 01:54:43: WebSphere MQ trigger monitor started.
__________________________________________________
11/3/2017 01:55:04: Waiting for a trigger message
AMQERR01.LOG 中没有错误。但这个过程不起作用。
此外,当数据插入应用程序队列时,它不会启用启动队列。
在 CMD 中,它说随着 WebSphere MQ 触发器监视器的启动,启动队列的打开输入计数增加到 1,但在我的 UI 中它仍然保持停止状态。
MQ 服务器版本:
Name: WebSphere MQ
Version: 7.5.0.2
Level: p750-002-130627
BuildType: IKAP - (Production)
Platform: WebSphere MQ for Windows
Mode: 32-bit
O/S: Windows 7 Professional x64 Edition, Build 7601: SP1
InstName: Installation1
InstDesc:
Primary: Yes
InstPath: C:\Program Files (x86)\IBM\WebSphere MQ
DataPath: C:\Program Files (x86)\IBM\WebSphere MQ
MaxCmdLevel: 750
AMQ8351: WebSphere MQ Java environment has not been configured correctly.
AMQ8351: WebSphere MQ Java environment has not been configured correctly.
Name: IBM WebSphere MQ custom channel for Windows Communication Foundatio
n
Version: 7.5.0.2
Level: wn750-002-130611_P
Build Type: Production
Name: IBM Message Service Client for .NET (XMS .NET)
Version: 2.5.0.2
Level: nn250-002-130627
Build Type: Production
Name: IBM Global Security Kit for WebSphere MQ
Version: 8.0.14.28
Build Type: Production
Mode: 32-bit
Name: IBM Global Security Kit for WebSphere MQ
Version: 8.0.14.28
Build Type: Production
Mode: 64-bit
【问题讨论】:
-
能否从 CMD 提示符启动 runmqtrm,然后单击编辑并将输出添加到问题的末尾。还要查看 qmgrs/QmgrName/errors/AMQERR01.LOG 以查看在您启动 runmqtrm 的同时是否发生任何错误,如果是,请添加这些错误。
-
请记住,除非触发器监视器正在运行,否则不会生成触发器消息。修复触发器监视器在启动后很快停止的原因,请参阅 Josh 的评论。
-
请在上面找到MQ服务器版本
-
还要注意一些规则: 1. 如果你有一个从应用程序队列读取的进程,则不会生成触发消息。 2. 使用触发器类型:首先,通常只有当队列的深度从 0 增加到 1 并且正如@MoragHughson 所指出的触发器监视器已经连接到 INITQ 时才会生成触发器消息。因此,如果在启动触发器监视器时队列上已经有 1 条消息,MQ 将不会生成触发器消息。
-
我注意到你的应用队列你提到了
Process name: sample,但在上面你说你用Process name:Paint创建了一个进程。这些必须匹配,因此如果这是您设置它的方式,它将无法工作,您需要将应用队列的进程属性指向您创建的进程的名称。
标签: ibm-mq