欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

weblogic 节点管理器无法启动起来的问题,所选服务器当前都处于与此操作不兼容的状态

程序员文章站 2022-05-19 15:49:14
...

最近在一台新的电脑上安装weblogic,创建了新的server,但是一直无法启动,一直报下面这个错误:

对于服务器test-server, 与计算机java相关联的节点管理器无法访问。
消息图标 - 警告 所有所选服务器当前都处于与此操作不兼容的状态, 或未与运行的节点管理器关联, 
或没有授权您执行请求的操作。不会执行任何操作。

配置计算机、创建server,百度上有很多,直接开始解决这个问题。

首先查看nohup日志:

Oracle_Home/wlserver/server/bin/startNodeManager.sh: [[: not found
Oracle/Middleware/Oracle_Home/wlserver/server/bin/startNodeManager.sh: 151: Oracle_Home/wlserver/server/bin/startNodeManager.sh: [[: not found

这是第一个问题,打开startNodeManager.sh:

WL_HOME="/home/nyl/Oracle/Middleware/Oracle_Home/wlserver"

NODEMGR_HOME="/home/nyl/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/nodemanager"
export NODEMGR_HOME

DOMAIN_HOME="/home/nyl/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain"

JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.RootDirectory=${DOMAIN_HOME} "
export JAVA_OPTIONS

#  Set JAVA_HOME for node manager

. ${DOMAIN_HOME}/bin/setNMJavaHome.sh

#  start node manager

${WL_HOME}/server/bin/startNodeManager.sh

发现真正运行的是【${WL_HOME}/server/bin/startNodeManager.sh】这个文件,找到这个文件,打开之后,146行和151行:

if [[ "$JAVA_OPTIONS" != *"-Dweblogic.RootDirectory"* ]]; then
  # it is global NM
  JAVA_OPTIONS="-Dweblogic.RootDirectory=${NODEMGR_HOME} ${JAVA_OPTIONS}"
fi    

if [[ "$JAVA_OPTIONS" != *"-Djdk.tls.ephemeralDHKeySize"* ]]; then
  # Set default size of ephemeral Diffie-Hellman keys to 2048 bits
  JAVA_OPTIONS="-Djdk.tls.ephemeralDHKeySize=2048 ${JAVA_OPTIONS}"
fi

结合错误信息可以看到,错误的原因为使用[[ ]]用来做正则包含判断,而我执行脚本的时候用的是【./】,不支持这种语法,修改一下【Oracle_Home/user_projects/domains/base_domain/bin/startNodeManager.sh】文件,改成下面:

JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.RootDirectory=${DOMAIN_HOME} "
export JAVA_OPTIONS

#  Set JAVA_HOME for node manager

. ${DOMAIN_HOME}/bin/setNMJavaHome.sh

#  start node manager

bash ${WL_HOME}/server/bin/startNodeManager.sh

重新执行脚本【Oracle_Home/user_projects/domains/base_domain/bin/startNodeManager.sh】

bash startNodeManager.sh

从执行日志上已经看不到上面那个错误了。

这时候再起启动server,还是报这个错误:

对于服务器test-server, 与计算机java相关联的节点管理器无法访问。
消息图标 - 警告 所有所选服务器当前都处于与此操作不兼容的状态, 或未与运行的节点管理器关联, 
或没有授权您执行请求的操作。不会执行任何操作。

因为网上找到的博客,大多都是某个人博客被转来转去,对我的问题没有什么帮助,所以又去我启动的weblogic中看节点管理器的状态,因为启动没有报错,我认为此时节点管理器的状态应该是正确的状态,但是却是下面这个状态:

weblogic 节点管理器无法启动起来的问题,所选服务器当前都处于与此操作不兼容的状态
看到这里,就明白世界上节点管理器还是没有正确启动,此时启动的日志已经没有报错了,那只能是配置的问题了,
找到节点管理器的配置文件【Oracle_Home/user_projects/domains/base_domain/nodemanager/nodemanager.properties】,打开:

DomainsFile=/home/nyl/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/nodemanager/nodemanager.domains
LogLimit=0
PropertiesVersion=12.2.1.3.0
AuthenticationEnabled=true
NodeManagerHome=/home/nyl/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/nodemanager
JavaHome=/usr/share/java/jdk8
LogLevel=INFO
DomainsFileEnabled=true
ListenAddress=localhost
NativeVersionEnabled=true
ListenPort=5556
LogToStderr=true
weblogic.StartScriptName=startWebLogic.sh
SecureListener=true
LogCount=1
QuitEnabled=false
LogAppend=true
weblogic.StopScriptEnabled=false
StateCheckInterval=500
CrashRecoveryEnabled=false
weblogic.StartScriptEnabled=true
LogFile=/home/nyl/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/nodemanager/nodemanager.log
LogFormatter=weblogic.nodemanager.server.LogFormatter
ListenBacklog=50

去掉明显不会有问题的配置,比如端口、路径等,只剩下这些:

NativeVersionEnabled=true
SecureListener=true
QuitEnabled=false
weblogic.StopScriptEnabled=false
CrashRecoveryEnabled=false

逐一尝试相反的配置,最终找到【SecureListener=true】这个配置,把这个配置改成false,重新启动nodemanager,再次查看节点管理器状态:
weblogic 节点管理器无法启动起来的问题,所选服务器当前都处于与此操作不兼容的状态

启动server,成功。

记录一下,帮助自己、帮助别人。