java.rmi.server.ExportException:端口已在使用中:0

use*_*259 5 java jmx rhel

我有大约20个启动使用的java进程

-Dcom.sun.management.jmxremote 
Run Code Online (Sandbox Code Playgroud)

在他们的命令行中,没有指定明确的端口号.

我的理解是,这意味着JVM会从临时端口范围分配任何空闲端口.

多年来,这一切都没有问题.

上周,我有一次性事件,其中一些进程由于以下原因而无法启动:

Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 0; nested exception is:java.net.BindException: Address already in use
Run Code Online (Sandbox Code Playgroud)

这个问题不可重复,我之前没有见过这个问题.

据我所知,端口0是任何短暂端口的另一个术语.由于系统将它们分配给JVM,如何使用短暂的端口?

[me@server:/tmp]cat /proc/sys/net/ipv4/ip_local_port_range
32768   61000
Run Code Online (Sandbox Code Playgroud)

应该有大约29000个端口; 这个错误是否表明它们在我的进程请求它们时都在使用?