现象:
在启动NodeManager的时候,报如下的错误:
<2012-12-05 13:38:18> <SEVERE> <Fatal error in node manager server>
java.lang.IllegalArgumentException: Invalid pid format
at weblogic.nodemanager.util.WindowsProcessControl.isProcessAlive(WindowsProcessControl.java:40)
at weblogic.nodemanager.server.ServerManager.initialize(ServerManager.java:174)
at weblogic.nodemanager.server.ServerManager.<init>(ServerManager.java:68)
at weblogic.nodemanager.server.DomainManager.initialize(DomainManager.java:94)
at weblogic.nodemanager.server.DomainManager.<init>(DomainManager.java:52)
at weblogic.nodemanager.server.NMServer.initDomains(NMServer.java:215)
at weblogic.nodemanager.server.NMServer.start(NMServer.java:192)
at weblogic.nodemanager.server.NMServer.main(NMServer.java:329)
at weblogic.NodeManager.main(NodeManager.java:31)
引起原因:
在启动nodemanager的时候,会检查在<servername>.pid中的managed server的process id的值。<servername>.pid位于DOMAIN_DIRECTORY/servers/<server name>/data/nodemanager目录下。如果nodemanager无法解析/读取在<servername>.pid中的信息(pid 文件损坏或其他原因),就会抛出java.lang.IllegalArgumentException异常,然后无法启动
解决办法:
参照以下方法:
1、删除DOMAIN_DIRECTORY/servers/<server name>/data路径下的文件。或者,修改DOMAIN_DIRECTORY/servers/<server name>/data/nodemanager下的<servername>.pid文件的内容,使用一个有效的process id PID的值。