基于JMX监控GlassFish 4 HTTP监听器的技术问询
GlassFish 4 HTTP监听器状态监控的JMX MBean指引
核心HTTP监听器MBean路径
所有GlassFish 4的HTTP监听器MBean统一注册在以下路径下,可覆盖默认及自定义的所有监听器:
amx:pp=/server/network-config/network-listeners/network-listener/<监听器名称>,type=network-listener
默认监听器名称通常为http-listener-1、http-listener-2、admin-listener,替换<监听器名称>即可定位对应实例。
关键监控属性(排查僵死/未释放状态)
每个监听器MBean的Attributes节点下,重点关注以下属性:
state:返回监听器运行状态,正常为RUNNING;若监听器僵死,可能显示FAILED、UNKNOWN或状态长期不更新acceptCount:等待处理的连接队列长度,持续居高不下说明监听器无法及时处理新连接,存在僵死风险connectionsCount:当前活跃连接数,若数值长期维持高位且无下降趋势,大概率存在未释放的连接connectionCreationRate:每秒新建连接数,异常波动或骤降可能预示监听器处理能力失效
辅助排查的关联MBean
如果监听器绑定了线程池或虚拟服务器,可结合以下MBean进一步定位问题:
- 线程池MBean:路径为
amx:pp=/server/thread-pools/thread-pool/<线程池名称>,type=thread-pool,监控activeThreadCount(活跃线程数)、queueLength(线程队列长度),若线程池满且队列积压,会导致监听器无法处理新连接,表现为僵死 - 虚拟服务器MBean:路径为
amx:pp=/server/http-service/virtual-server/<虚拟服务器名称>,type=virtual-server,监控requestCount(总请求数)、errorCount(错误请求数),若请求数停滞但连接数仍维持高位,说明存在请求处理僵死的情况
JConsole定位技巧
- 在JConsole的MBean标签页,直接搜索
network-listener关键词,快速列出所有HTTP监听器实例 - 展开目标MBean的
Operations节点,调用ping()方法测试监听器响应,若调用超时或返回失败,可直接判定监听器处于僵死状态
内容的提问来源于stack exchange,提问作者user1175801
相关产品推荐
相关产品推荐

