我正在尝试使用 asadmin 界面来监视 GlassFish 3.1.1 上的线程池。我正在执行以下命令:

asadmin get -m server.network.my-listener.thread-pool.*

我正在取回数据,但其中大部分的 lastsampletime = -1(因此相关数据为零;并且毫无值(value))。

注意:我还尝试了 REST 接口(interface)(我相信是 asadmin 委托(delegate)给它的)和 JMX 接口(interface)。同样的问题:大部分数据的 lastsampletime = -1。

我已经将所有模块的监控设置为 HIGH。我错过了什么?

最佳答案

似乎重新部署我的应用程序对于监视实际获取值是必要的。也许我错误地解释了手册,但似乎表明不需要重新启动/重新部署:

Oracle GlassFish Server 3.1 Administration Guide

另外,奇怪的是以下显示没有监控数据:

asadmin get -m server.thread-pools.thread-pool.http-thread-pool.*

相反,您必须通过特定的网络监听器,例如:
asadmin get -m server.network.http-listener-2.thread-pool.*

让我感到惊讶的是,启用线程池监视不足以查看线程池统计信息。您还必须启用 http 服务监控:
asadmin enable-monitoring
asadmin set server.monitoring-service.module-monitoring-levels.thread-pool=HIGH
asadmin set server.monitoring-service.module-monitoring-levels.http-service=HIGH

10-07 19:11