ORB.destroy()没有正确清理,ORB对象实例不是垃圾回收

时间:2016-03-11 09:16:31

标签: java garbage-collection corba orb

问题:ORB.destroy()没有正确清理,ORB对象实例也没有被垃圾回收。

此问题是在JDK5中引发的,并在此处记录的后续版本中得到修复 http://bugs.java.com/view_bug.do?bug_id=6354718。我们正在使用JDK7,仍然看到文件描述符是开放的连接,并且永远不会发布作为一个直接的解决方法,我们增加了操作系统FB限制(但有一天后,这个问题将再次触及我们)。

对于我们在下面通过使用命令“lsof -p process-id”

看到的每个连接

命令PID用户FD类型设备大小/关闭节点名称

java 14674 xyz 106u IPv6 xyz 0t0 TCP *:xyz(LISTEN)

我们还尝试使用能够看到新JDK6和JDK7(使用TCP Viewer分析连接)关闭连接的示例程序。

不明白为什么helloworld corba程序正常工作,但在我们正在做的两种情况下都不能用于我们的应用程序:

orb.shutdown(true);
orb.destroy();

我们也尝试过,但它没有释放连接(其中rootNamingContext是NamingContextExt的实例):

rootNamingContext._release();
rootNamingContext = null;
System.gc();

1 个答案:

答案 0 :(得分:0)

使用tcpdump进一步调查此问题,我们发现连接正确关闭。