是否有可能(以及如何)找出在Java中创建命名线程的类?

时间:2014-07-25 21:54:44

标签: java multithreading tomcat

在Ubuntu 12.04 64位的Tomcat 7中,我收到以下错误:

  

严重:Web应用程序[/ MyApplication]似乎已经启动了一个名为[AS400 Read Daemon [system:mysystem:093048 / QUSER / QZDASOINIT]]但未能阻止它的线程。这很可能会造成内存泄漏。

我想找出创建该线程的内容,以便我可以弄清楚如何阻止它。如果有帮助的话,我可以用jdb附加到Tomcat。

1 个答案:

答案 0 :(得分:3)

您可以安装自己的日志记录安全管理器(记录创建线程权限的堆栈),但默认情况下不会记住该信息(只有父线程组和访问控制上下文,除非被覆盖)。

另一个选择是使用类似BTrace的东西来设置线程创建(记录呼叫站点)。但事实并非如此,这需要一些设置。

也许有助于定期线程转储您的系统并查看相关线程所使用的代码。

线程的名称听起来很像IBM iSeries的JTOpen Toolbox(TAFKA AS / 400)。