Я отлаживал проблему с Java-процессом, открывая случайный порт в диапазоне от 30 000 до 50000.Как управлять номером порта для JMX?
Мне было интересно узнать, что представляет собой стек потоков, связанный с сокетом с портом, поэтому я собрал кучу кучи java-процесса и определил, что поток стека имеет имя «RMI TCP Accept-0». С немного Googling я обнаружил, что этот поток может быть использован для JMX monitoring by jConsole
Так что я искал способ, чтобы контролировать этот номер порта, и я нашел родственный с ответом here
Даже после указания номера порта, Я все еще вижу, что процесс Java открывает этот случайный порт.
Я хотел бы вернуться к стеку и посмотреть, правильно ли я понимаю, что это может быть порт JMX. Вот стек я вижу:
"RMI TCP Accept-0" daemon prio=10 tid=0x00007f3367404000 nid=0x14fb runnable [0x00007f33507b3000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.ServerSocket.implAccept(ServerSocket.java:530)
at java.net.ServerSocket.accept(ServerSocket.java:498)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:388)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:360)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- None
Чтобы уточнить, вы уверены, что этот процесс * прослушивает * на этом случайном порту? Какая ОС это? – Alex
Отметьте этот ответ: http://stackoverflow.com/questions/20884353/why-java-opens-3-ports-when-jmx-is-configured – Alex
Да, я забыл упомянуть об этом. Он находится в состоянии прослушивания на этом порту. Я проверяю поток, который опубликует через мгновение, что дает. – vinayc