我已到达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("************************");
}
}
每当收到消息时,我怎样才能得到这个信息。
答案 0 :(得分:6)
首先,不要通过应用程序进行触发设置。这是浪费时间。
其次,阅读&了解这些MQ网页:
第三,对于Java应用程序,创建一个批处理文件或Unix脚本来设置任何环境变量,即CLASSPATH,并在PROCESS的APPLICID字段中设置批处理文件或Unix脚本。
第四,在为队列和进程执行MQSC定义之后,不要忘记启动触发器监视器(否则不会触发任何内容)。
第五,如果你设置Trigger Type of First,那么请确保被触发的应用程序在退出之前从队列中读取每条消息。
第六,触发(Trigger First)仅适用于消息之间存在较大间隙或消息突发之间存在较大间隙的情况。如果您每秒或2接收消息,则触发不好,因为应用程序启动,处理&每秒退出或2.如果它是Java应用程序,您将始终拥有JVM加载时间。
第七,如果您真正想要的是Message CallBack(Asynchronous)而不是MQ Triggering,那么请阅读:Asynchronous consumption of IBM MQ messages