我们如何在 IBM MQ 中使用触发器?

How can we use a trigger in IBM MQ?

我已经访问了 ibm 站点,但找不到使用触发器的实际逻辑。

我已经完成了下面的代码,但是我怎样才能收到来自触发器的提示?

public void setTrigger()
        {
        try{
            Queue = QMGR.accessQueue(queueName, (MQC.MQOO_INQUIRE+MQC.MQOO_SET));
            Queue.setTriggerControl(1);
            Queue.setTriggerType(2);
            }
        catch(Exception e){
            System.out.println("------------------------");
            System.out.println("trigger method");
            System.out.println("------------------------");
            System.out.println(e);
            System.out.println("************************");
            }
        }

消息来了怎么才能得到提示

首先,不要通过应用程序进行触发设置。这是浪费时间。

其次,阅读并理解这些 MQ 网页:

第三,对于 Java 应用程序,创建一个批处理文件或 Unix 脚本来设置任何环境变量,即 CLASSPATH,并在 PROCESS 的 APPLICID 字段中设置批处理文件或 Unix 脚本。

第四,队列和进程的MQSC定义完成后,不要忘记启动触发器监视器(否则什么都不会触发)。

第五,如果您将触发器类型设置为第一个,则绝对确保触发的应用程序在退出之前从队列中读取每条消息。

第六,触发(Trigger First)只适用于消息之间存在较大间隙或消息突发之间存在较大间隙的场景。如果您每秒或每 2 秒接收一次消息,那么触发并不好,因为应用程序每秒或每 2 秒启动、处理和退出。如果它是一个 Java 应用程序,您将始终有 JVM 加载时间。

第七,如果您真正想要的是消息回调(异步)而不是 MQ 触发,那么请阅读:Asynchronous consumption of IBM MQ messages