我们正在跟踪应用程序中的一些内存问题,并且我们可以看到问题似乎存在的会话大小.它只会影响某些会话,它们似乎会失控,并且我们希望能够或多或少地“手动”使这些会话无效以回收该内存.有没有办法通过JMX做到这一点?我们正在使用JBoss 4.5.2.
提前致谢.
解决方法:
答案是肯定的,你可以.
– 这将获得在JBoss中加载的Web模块MBean–
/opt/lib/jboss-4.2.3.GA/bin/twiddle.sh -s< - ServerIP - >:1099查询’jboss.web:*’| grep“type = Manager”
– 一旦你有了,你可以从那个MBean获得活跃的会话 –
/opt/lib/jboss-4.2.3.GA/bin/twiddle.sh -s 172.16.0.216:1099调用“< - MBean - >” listSessionIds
– 最后,一旦你有了这个列表,你就可以选出感兴趣的会话并使它过期 –
/opt/lib/jboss-4.2.3.GA/bin/twiddle.sh -s< - ServerIP - >:1099调用“< - MBean - >” expireSession< - SessionID - >
你会替换< - ServerIP - >与服务器绑定的IP …它不一定是本地的.只要您可以访问端口1099,就可以远程运行.
< – 的MBean – >将被第一个查询的结果之一替换.
< – 的SessionID – >将被第二个命令中的一个会话ID替换.
您还可以将/opt/lib/jboss-4.2.3.GA/bin/twiddle.sh替换为机器上旋转的位置.它包含在JBoss中.