【问题标题】:Trigger monitor does not work触发监视器不起作用
【发布时间】: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


【解决方案1】:

配置的问题是您创建了一个名为Paint 的进程,但在应用程序队列中,您将进程名称设置为sample。队列指向的进程的名称需要与您创建的进程的名称相匹配..


MQGem Software 的 Paul Clarke 在 Capitalware's MQ Technical Conference v2.0.1.4 上做了一个名为 MQ Triggering 的演示文稿,这是一个关于 IBM MQ 触发的综合演示文稿,详细介绍了如何解决我认为非常有用的问题。

【讨论】:

    【解决方案2】:

    进程名称:画图

    傻兔子,小把戏是给孩子看的!!

    MQ 在服务帐户下运行。您正在尝试在后台启动 GUI 应用程序。我敢肯定,如果你打开任务管理器,会有很多“mspaint.exe”在运行但不可见。

    使用可以在后台运行的程序或创建您自己的程序。创建一个名为:hello.bat 的批处理文件并将以下内容放入其中:

    echo "Hello World. " %time% > C:\temp\hello.txt
    

    使用“hello.bat”更新 MQ 进程定义并进行测试。注意:确保 C:\temp 目录存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 2018-10-17
      • 2017-04-22
      • 2011-03-16
      • 2019-01-17
      • 2012-09-04
      • 2013-04-26
      相关资源
      最近更新 更多