Проблема: ORB.destroy() не очищает правильно, а экземпляры объектов ORB не собираются в мусор.ORB.destroy() не очищается правильно, а экземпляры объектов ORB не собираются с мусором
Эта проблема была поднята с помощью JDK5 и исправлена в последующих выпусках, зарегистрированных здесь http://bugs.java.com/view_bug.do?bug_id=6354718. Мы используем JDK7 и по-прежнему видим, что дескриптор файла открыт для подключения и никогда не получает выпуск в качестве немедленного решения. Мы увеличили лимит ОС FB (но через день эта проблема ударит нас).
Для каждого соединения мы видим это ниже, используя команду "Lsof -p идентификатор процесса"
COMMAND PID USER FD TYPE DEVICE SIZE/OFF УЗЕЛ ИМЯ
Java 14674 хуг 106u IPv6 хуг 0t0 TCP *: xyz (LISTEN)
Мы также попытались запустить образец программы с возможностью увидеть, что соединения закрыты новыми JDK6 и JDK7 (проанализировано соединение с помощью TCP Viewer).
Не понимаю, почему HelloWorld CORBA программа правильно, но не работает с нашим приложением в обоих случаях мы делаем:
orb.shutdown(true);
orb.destroy();
Мы также пытались с, но это не освобождает соединение (где rootNamingContext является экземпляром of NamingContextExt):
rootNamingContext._release();
rootNamingContext = null;
System.gc();
Дальнейшее исследование этого с помощью tcpdump, которое мы обнаружили, сессия закрыта правильно. –