启动Nodeagent时遭遇ORBX0390E及WSVR0009E错误,请求技术解决方案
你在启动Nodeagent时碰到的这个错误,核心原因就是端口9101被其他进程占用了,先把你遇到的错误日志贴出来方便参考:
ORBRas E com.ibm.ws.orbimpl.transport.WSTransport createServerSocket P=146590:O=0:CT ORBX0390E: 无法创建监听线程。异常信息=[ java.net.BindException: 套接字名称已被占用。- 在尝试打开端口9101上的服务器套接字时收到该异常 ]。[9/28/22 22:42:29:445 GMT+05:30] 00000001 WsServerImpl E WSVR0009E: 启动过程中发生错误。
下面是几个经过验证的有效解决方案,按优先级执行:
1. 定位占用9101端口的进程
不同操作系统用不同命令,直接抄作业就行:
- Linux/Unix环境:
执行netstat -tulpn | grep 9101或者ss -tulpn | grep 9101,输出里会显示占用端口的进程ID(PID)和进程名,比如类似tcp 0 0 0.0.0.0:9101 0.0.0.0:* LISTEN 1234/java,这里1234就是PID。 - Windows环境:
打开命令提示符,先跑netstat -ano | findstr :9101,找到对应的PID后,再用tasklist /FI "PID eq 1234"替换成你的PID,就能看到是哪个进程在占用。
2. 终止占用端口的进程
如果这个进程是多余的(比如之前异常挂掉的Nodeagent、其他没用的WebSphere组件),直接干掉它:
- Linux/Unix:
kill -9 <你的PID>,强制终止进程,确保彻底关掉。 - Windows:要么打开任务管理器,找到对应PID的进程右键“结束任务”,要么用命令
taskkill /F /PID <你的PID>。
杀完进程后再重启Nodeagent,大概率就能正常启动了。
3. 没法杀进程?那就改Nodeagent的端口
如果占用9101的进程是必须运行的,那咱们换个端口用:
方法一:通过WebSphere管理控制台修改
- 确保部署管理器能正常启动,打开管理控制台。
- 依次点击系统管理 > 节点代理,选中你要修改的Nodeagent。
- 点击页面里的端口选项卡,找到
ORB_LISTENER_ADDRESS对应的端口(就是9101),改成一个没被占用的端口号比如9102。 - 保存配置,同步到对应节点,然后重启Nodeagent。
方法二:直接修改配置文件
如果控制台没法用,直接改配置文件:
找到Nodeagent的配置文件路径:<节点根目录>/nodeagent/config/cells/<单元格名称>/nodes/<节点名称>/serverindex.xml
打开文件后搜索ORB_LISTENER_ADDRESS,找到里面的<port>9101</port>标签,把9101改成新端口,保存后重启Nodeagent就行。
4. 最后排查防火墙/安全组
虽然错误提示是端口被占用,但也可以顺便检查一下9101端口有没有被防火墙或者安全组拦截,确保端口处于开放状态,避免后续出现其他绑定问题。
内容的提问来源于stack exchange,提问作者Gandhi Rao




