我正在尝试检测我的应用以监控连接池。 我们使用apache commons pool 1.6进行连接池,所有应用程序都部署在同一个AS上(我们使用Jboss EAP 6)。跟踪脚本有效,但在同一AS上的所有应用程序中调用池方法时会触发。
有一种方法可以让我的脚本挂钩池方法仅在选定的应用程序中调用吗?
答案 0 :(得分:0)
BTrace适用于JVM级别。因此,默认情况下,它不会识别在同一JVM上运行的多个应用程序。
通常,仅仅探测应用服务器中托管的一个应用程序并不是一件容易的事。如果您能够识别作为每个应用程序和的入口点的方法,后续请求在同一个线程上运行(或者从原始线程递归启动的线程),您可以使用{{1或} ThreadLocal
将应用标识存储在那里。
BTrace仅通过InheritableThreadLocal
注释直接支持前一个 - 对于@TLS
,您将不得不使用不安全/可信模式,其中将关闭BTrace安全保证检查。