有没有办法为在 EJB 中运行的线程命名,以便在 VisualVM 的线程列表中识别它们? 线程调用计时器(@Timeout)和JMS(onMessage())方法以及http servlets方法。
目前,线程被赋予通用名称,例如:
http--0.0.0.0-443-3
or
EJB default - 9
我目前使用:
Thread.currentThread().setName("Checker thread")
在这些方法的开头,但我不确定它是否总是在 VisualVM 中工作,所以我正在寻找其他想法。
在 EJB 的@PostConstruct
方法中,我使用与您相同的Thread
语句。
您还可以考虑将其放在类级拦截器中,并使用调用上下文来获取 EJB 的名称,并在此时相应地命名线程。