论坛首页 Java企业应用论坛

JMX端口无法释放

浏览 4406 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-06-12   最后修改:2012-06-12

 

今日在用JMX做一些监控类的开发,在调试过程中发现一个问题,请大家指教。

 

 

-Djava.rmi.server.hostname=$host_ip  
-Dcom.sun.management.jmxremote.port=1112 
-Dcom.sun.management.jmxremote.authenticate=(true|false)  
-Dcom.sun.management.jmxremote.ssl=(true|false)  

 

使用上面的配置来启动resin(版本是3.0.25),经过一点时间后需要重新启动resin,这时发现resin无法启动,原因是刚才开启的1112监听端口仍被占用,所以resin无法启动了。

 

使用如下命令查看:

netstat -anp | grep 1112

 

结果如下:

 

tcp    0 0.0.0.0:1112    0.0.0.0:*    LISTEN    -
 

 

 

不知大家有没有遇到这样的问题。

 

这个监听端口不能重用么?

 

 

3q。

   发表时间:2012-06-13  
是不是你的app里有thread没有停
0 请登录后投票
   发表时间:2012-06-13  
gearever 写道
是不是你的app里有thread没有停



应该不是,整个resin都已经停了,也就没有thread没停的问题了。
0 请登录后投票
   发表时间:2012-06-18  
好吧,这种情况如果是偶发的,你就只能重启了,因为系统也没有停止某个端口的权利...
0 请登录后投票
   发表时间:2012-06-18  
foohsinglong 写道
好吧,这种情况如果是偶发的,你就只能重启了,因为系统也没有停止某个端口的权利...



重启服务器?

经理会吃了我的。
0 请登录后投票
   发表时间:2012-07-17  
caoxudong818 写道
foohsinglong 写道
好吧,这种情况如果是偶发的,你就只能重启了,因为系统也没有停止某个端口的权利...



重启服务器?

经理会吃了我的。

这个真的只有这样,你端口被占用也就意味着某个服务还在使用这个端口,你要么kill掉这个进程,要么重启.实际上你端口被占用你的服务就已经运行不了了,重启经理也不会说什么的.
0 请登录后投票
   发表时间:2012-07-17  
foohsinglong 写道
caoxudong818 写道
foohsinglong 写道
好吧,这种情况如果是偶发的,你就只能重启了,因为系统也没有停止某个端口的权利...



重启服务器?

经理会吃了我的。

这个真的只有这样,你端口被占用也就意味着某个服务还在使用这个端口,你要么kill掉这个进程,要么重启.实际上你端口被占用你的服务就已经运行不了了,重启经理也不会说什么的.



对于这个问题,目前我的解决方法是换一个端口,重启服务。对于为何没有释放掉这个端口,目前还在查找原因,希望后续可以找到具体的原因。重启服务器这个有些动作过大了,暂时还无法采用。
谢谢关注。
0 请登录后投票
   发表时间:2013-03-09  
JMX也是基于TCP实现的吧,怀疑和TCP相关的配置有关。
我看了这里面的一段描述http://www.cnblogs.com/jerrychoi/archive/2010/04/15/1712931.html,猜测以下内容和这个也许有关系:
SO_RESUSEADDR选项
为了确保一个进程关闭了Socket后,即使它还没释放端口,同一个主机上的其他进程还可以立刻重用该端口,可以调用Socket的setResuseAddress(true)
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics