【发布时间】:2016-10-27 06:29:34
【问题描述】:
我一直在 Internet 和 ESQL/WebSphere MessageBroker 文档上进行搜索,以找到一种打印变量值的方法,以便我可以在代理日志中对其进行跟踪。类似于 java 中的 System.out.println()。
由于一些技术问题,我无法调试消息流,所以请您建议我如何执行此操作或任何解决方法。
【问题讨论】:
标签: ibm-mq messagebroker
我一直在 Internet 和 ESQL/WebSphere MessageBroker 文档上进行搜索,以找到一种打印变量值的方法,以便我可以在代理日志中对其进行跟踪。类似于 java 中的 System.out.println()。
由于一些技术问题,我无法调试消息流,所以请您建议我如何执行此操作或任何解决方法。
【问题讨论】:
标签: ibm-mq messagebroker
UserTrace 应该为 ESQL 履行这个角色,但如果 UserTrace 没有帮助,那么我看到很多人使用从 ESQL 到 java 的静态调用,然后记录这些调用。
Java 代码可以像写入标准输出一样简单(将进入 /var/mqsi/components//stdout),但更常见的是,我看到这种模式与现有的 java 日志框架(如 log4J)一起使用。
这种方法的优点是您可以统一 JCN 和 ESQL 计算节点之间的日志记录。
【讨论】:
用户跟踪应该足以满足您的需要,在您要记录的点放置一个跟踪节点,选择文件跟踪并给出文件路径, 模式给出:
${CURRENT_TIMESTAMP}
${Root}
${Environment}
${LocalEnvironment}
${ExceptionList}
所以它会记录所有内容。
如果在更高的环境中,那么你必须使用mqsichangetrace命令来启用流跟踪。
【讨论】:
可能最简单的方法是:
1) 将 Environment 中的临时位置设置为变量的值:SET Environment.temp = yourVar;
2) 随后,在 Trace 节点中,将 Trace 节点的 Basic 选项卡上的 Pattern 设置为该临时位置:${Environment.temp}
3) 配置 Trace 节点以打印到文件、用户跟踪或本地错误日志。
4) 部署并运行您的流程。然后查看 Trace 节点的输出。
【讨论】: