java - 将任务 ID 从 ActiveMQ 代理记录到客户端应用程序
问题描述
我将 ActiveMQ 5.15.5 作为独立代理运行,我的 spring 应用程序正在连接到它。我想知道我是否可以在客户端应用程序日志中记录代理记录的任务 ID。
当前应用程序日志如下所示:
INFO ] 2018-11-29 09:52:19,144 [ActiveMQ Session Task] ....
[INFO ] 2018-11-29 09:52:19,168 [ActiveMQ Session Task] ...
[INFO ] 2018-11-29 09:52:19,199 [ActiveMQ Session Task] ....
我相信如果我嵌入了 activeMQ 日志看起来像
INFO ] 2018-11-29 09:52:19,144 [ActiveMQ Session Task-9] ....
[INFO ] 2018-11-29 09:52:19,168 [ActiveMQ Session Task-9] ...
查看客户端应用程序日志,我无法按多个用户对事务进行分类,因为它们都被记录为“ActiveMQ 会话任务”
有没有办法在客户端日志中记录来自代理的任务 ID(我确实在代理日志 activemq.log 中看到了任务 ID)。我尝试将客户端 log4j.xml 中的 ActiveMQ 日志设置为 info,但没有成功。
谢谢
解决方案
此处记录的“任务 ID”,正如您所说的,实际上只是代理上正在执行工作的线程的名称。客户端不知道代理上的线程名称,也无法与客户端交流该信息。这些线程被池化并一遍又一遍地重复使用,因此使用它们的名称来识别唯一事务几乎肯定无论如何都行不通。