控制台启动server时报"对于服务器server-1与计算机machin
<!--StartFragment -->对于服务器AdminServer,?与计算机Machine-0相关联的节点管理器无法访问。
所有所选服务器当前都处于与此操作不兼容的状态,?或未与运行的节点管理器关联,?或没有授权您执行请求的操作。不会执行任何操作次错误基本都遇到过。在网上搜了半天,最后才解决,基本如下:
对于服务器server-1与计算机machine-2相关联的节点管理器无法访问。
所有所选服务器当前都处于与此操作不兼容的状态, 或未与运行的节点管理器关联, 或没有授权您执行请求的操作。不会执行任何操作。
原因:nodemanager没有启起来
一、对于managedServer于adminServer在同一服务器上的情况:
1、在控制台可查看该机器的节点管理器端口,比如为5556
2、用netstat -nap | grep 5556命令查看端口为5556的进程是否存在便知nodemanager是否已启动,这时肯定是不存在的
3、但是用ps -ef |grep java命令查看进程,可看到NodeManager进程
4、用kill -9 NodeManager进程号
5、vi /etc/hosts查看ip地址配置是否正确
6、vi /etc/sysconfig/network查看机器名配置是否正确
7、vi??$WL_HOME/common/nodemanager/nodemanager.properties查看以下配置是否正确,这里的端口5556就与上文提到的端口一致,如果端口不对可能是因为在前一次nodemanager起来之后,在控制台修改了端口,而在nodemanager.properties文件中保存的还是原端口,所以当再次启动nodemanager时,启动的端口不是修改后的而是原来的。
???ListenPort=5556
???SecureListener=false
???StartScriptEnabled=true
?
二、如果AdminServer在服务器A上,ManagedServer在服务器B上的情况:
这时候不能启动nodemanager还可能是因为服务器B无法与服务器A通讯,这时候会报socket相关错误。此时,
1、在B服务器上修改$WL_HOME/common/nodemanager/nodemanager.properties文件:
?SecureListener=false
?StartScriptEnabled=true
2、在B上$WL_HOME/common/bin/目录下执行wlst.sh脚本
./wlst.sh即可
3、执行完2后会来到wls:/offline>下,在此输入connect()回车
4、此时会依次要求输入AdminServer的用户名、密码及url如下
Please enter your username [weblogic] :weblogic
Please enter your password [weblogic] :
Please enter your server URL [t3://localhost:7001] :t3://adminServerIP:port
以上三项指服务器A上登录控制台时的用户名、密码及IP地址和端口
5、如果第4步执行成功,则显示
Successfully connected to Admin Server 'AdminServer' that belongs to domain 'my_domain'.
会跳到wls:/my_domain/serverConfig>
my_damain指服务器A上的domain
如果第4步执行不成功,会返回第3步重新输入connect()
此时也可输入dumpStack()回车,查看具体错误
6、第5步执行成功后,在wls:/my_domain/serverConfig>下依次执行
nmEnroll('/home/weblogic/Oracle/Middleware/wlserver_10.3/common/nodemanager')
nmEnroll('/home/weblogic/Oracle/Middleware/user_projects/domains/server_b_domain')
这里的weblogic目录指服务器B上的weblogic目录,视自己的目录修改语句。
7、注册成功后,按ctrl+c返回weblogic目录,再到$WL_HOME/servers/bin目录下
nohup ./startNodeManager.sh &启动nodemanager
如果启动时报以下错误
严重: Fatal error in node manager server
java.net.BindException: Address already in use
????????at java.net.PlainSocketImpl.socketBind(Native Method)
????????at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365)
????????at java.net.ServerSocket.bind(ServerSocket.java:319)
????????at java.net.ServerSocket.<init>(ServerSocket.java:185)
????????at weblogic.nodemanager.server.Listener.init(Listener.java:54)
????????at weblogic.nodemanager.server.NMServer.start(NMServer.java:205)
????????at weblogic.nodemanager.server.NMServer.main(NMServer.java:355)
????????at weblogic.NodeManager.main(NodeManager.java:31)
说明前面以执行过该语句,此时需要杀掉nodemanager的进程号再次执行启动语句。
补充:节点管理器类型可选择"普通"。