Ibm mq 如何在代理日志中打印消息

Ibm mq 如何在代理日志中打印消息,ibm-mq,messagebroker,Ibm Mq,Messagebroker,我一直在互联网和ESQL/WebSphereMessageBroker文档上搜索,以找到一种打印变量值的方法,以便在代理日志中跟踪它。类似于java中的System.out.println() 由于一些技术问题,我无法调试messageflow,因此您能否建议我如何调试messageflow或其他解决方法。最简单的方法可能是: 1) 将环境中的临时位置设置为变量值:Set Environment.temp=yourVar 2) 随后,在跟踪节点中,将跟踪节点的“基本”选项卡上的模式设置为该临时位

我一直在互联网和ESQL/WebSphereMessageBroker文档上搜索,以找到一种打印变量值的方法,以便在代理日志中跟踪它。类似于java中的System.out.println()


由于一些技术问题,我无法调试messageflow,因此您能否建议我如何调试messageflow或其他解决方法。

最简单的方法可能是:

1) 将环境中的临时位置设置为变量值:Set Environment.temp=yourVar

2) 随后,在跟踪节点中,将跟踪节点的“基本”选项卡上的模式设置为该临时位置:${Environment.temp}

3) 将跟踪节点配置为打印到文件、用户跟踪或本地错误日志


4) 部署并运行您的流。然后查看跟踪节点的输出。

UserTrace应该为ESQL履行这个角色,但是如果UserTrace没有帮助,那么我看到很多人使用从ESQL到java的静态调用,然后记录这些调用

java代码可以像写入stdout(将在/var/mqsi/components//stdout中)一样简单,但更常见的是,我看到这种模式与现有的java日志框架(如log4J)一起使用


这种方法的优点是可以统一JCN和ESQL计算节点之间的日志记录。

用户跟踪应该满足您的需要,将跟踪节点放在要记录的位置,选择文件跟踪并给出文件路径, 模式如下所示:

${CURRENT_TIMESTAMP}
${Root}
${Environment}
${LocalEnvironment}
${ExceptionList}
所以它记录了一切


如果它位于更高的环境中,那么您必须使用
mqsichangetrace
命令来启用流上的跟踪。

值得注意的是,在IBM文档中,它说对本地创建的变量使用Environment.Variables-请参阅