Share

Tuesday, May 10, 2016

Weblogic NodeManager not Starting

Issue:
  
Node manager will not start with following exception "Native version is enabled but nodemanager native library could not be loaded"


It means that you have 64 bit version of java installed and 32 bit  node manager library got loaded into classpath.


Test your Java Version First

[weblogic@localhost x86_64]$ java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)




Error Statement
 
[weblogic@localhost bin]$ ./startNodeManager.sh
+ CLASSPATH=/usr/java/jdk1.7.0_79//lib/tools.jar:/opt/wls/wlserver/server/lib/weblogic_sp.jar:/opt/wls/wlserver/server/lib/weblogic.jar:/opt/wls/modules/features/weblogic.server.modules_10.3.6.0.jar:/opt/wls/wlserver/server/lib/webservices.jar:/opt/wls/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/opt/wls/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar::/opt/wls
+ '[' '!' -z '' ']'
+ '[' '!' -z '' ']'
+ export CLASSPATH
+ export PATH
+ cd /opt/wls/wlserver/common/nodemanager
+ set -x
+ '[' '' '!=' '' ']'
+ '[' '' '!=' '' ']'
+ /usr/java/jdk1.7.0_79//bin/java -Xms32m -Xmx200m -Dcoherence.home=@COHERENCE_HOME -Dbea.home=/opt/wls -Djava.security.policy=/opt/wls/wlserver/server/lib/weblogic.policy -Dweblogic.nodemanager.javaHome=/usr/java/jdk1.7.0_79/ weblogic.NodeManager -v
<May 10, 2016 12:49:58 AM> <INFO> <Loading domains file: /opt/wls/wlserver/common/nodemanager/nodemanager.domains>
May 10, 2016 12:49:58 AM weblogic.nodemanager.server.NMServerConfig initDomainsMap
INFO: Loading domains file: /opt/wls/wlserver/common/nodemanager/nodemanager.domains
Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /opt/wls/wlserver/server/native/linux/i686/libnodemanager.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
<May 10, 2016 12:49:58 AM> <SEVERE> <Fatal error in node manager server>
weblogic.nodemanager.common.ConfigException: Native version is enabled but nodemanager native library could not be loaded
    at weblogic.nodemanager.server.NMServerConfig.initProcessControl(NMServerConfig.java:269)
    at weblogic.nodemanager.server.NMServerConfig.<init>(NMServerConfig.java:210)
    at weblogic.nodemanager.server.NMServer.init(NMServer.java:182)
    at weblogic.nodemanager.server.NMServer.<init>(NMServer.java:148)
    at weblogic.nodemanager.server.NMServer.main(NMServer.java:380)
    at weblogic.NodeManager.main(NodeManager.java:31)
Caused by: java.lang.UnsatisfiedLinkError: /opt/wls/wlserver/server/native/linux/i686/libnodemanager.so: /opt/wls/wlserver/server/native/linux/i686/libnodemanager.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
    at java.lang.Runtime.loadLibrary0(Runtime.java:849)
    at java.lang.System.loadLibrary(System.java:1088)
    at weblogic.nodemanager.util.UnixProcessControl.<init>(UnixProcessControl.java:24)
    at weblogic.nodemanager.util.ProcessControlFactory.getProcessControl(ProcessControlFactory.java:22)
    at weblogic.nodemanager.server.NMServerConfig.initProcessControl(NMServerConfig.java:267)
    ... 5 more

May 10, 2016 12:49:58 AM weblogic.nodemanager.server.NMServer main
SEVERE: Fatal error in node manager server
weblogic.nodemanager.common.ConfigException: Native version is enabled but nodemanager native library could not be loaded
    at weblogic.nodemanager.server.NMServerConfig.initProcessControl(NMServerConfig.java:269)
    at weblogic.nodemanager.server.NMServerConfig.<init>(NMServerConfig.java:210)
    at weblogic.nodemanager.server.NMServer.init(NMServer.java:182)
    at weblogic.nodemanager.server.NMServer.<init>(NMServer.java:148)
    at weblogic.nodemanager.server.NMServer.main(NMServer.java:380)
    at weblogic.NodeManager.main(NodeManager.java:31)
Caused by: java.lang.UnsatisfiedLinkError: /opt/wls/wlserver/server/native/linux/i686/libnodemanager.so: /opt/wls/wlserver/server/native/linux/i686/libnodemanager.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
    at java.lang.Runtime.loadLibrary0(Runtime.java:849)
    at java.lang.System.loadLibrary(System.java:1088)
    at weblogic.nodemanager.util.UnixProcessControl.<init>(UnixProcessControl.java:24)
    at weblogic.nodemanager.util.ProcessControlFactory.getProcessControl(ProcessControlFactory.java:22)
    at weblogic.nodemanager.server.NMServerConfig.initProcessControl(NMServerConfig.java:267)
    ... 5 more

+ set +x




Resolution

Goto "<MWHOME>/wlserver/server/bin"

and open  startNodeManager.sh . find weblogic.NodeManager  and replace it with "-Djava.library.path="/opt/wls/wlserver/server/native/linux/x86_64/"  weblogic.NodeManager"


Lines from the  startNodeManager.sh file


 cd "${NODEMGR_HOME}"
set -x
if [ "$LISTEN_PORT" != "" ]
 then
   if [ "$LISTEN_ADDRESS" != "" ]
    then
     "${JAVA_HOME}/bin/java" ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" -Dweblogic.nodemanager.javaHome="${JAVA_HOME}" -DListenAddress="${LISTEN_ADDRESS}" -DListenPort="${LISTEN_PORT}" -Djava.library.path="/opt/wls/wlserver/server/native/linux/x86_64/" weblogic.NodeManager -v
    else
     "${JAVA_HOME}/bin/java" ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" -Dweblogic.nodemanager.javaHome="${JAVA_HOME}" -DListenPort="${LISTEN_PORT}" -Djava.library.path="/opt/wls/wlserver/server/native/linux/x86_64/"  weblogic.NodeManager -v
   fi
 else
   if [ "$LISTEN_ADDRESS" != "" ]
    then
     "${JAVA_HOME}/bin/java" ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" -Dweblogic.nodemanager.javaHome="${JAVA_HOME}" -DListenAddress="${LISTEN_ADDRESS}" -Djava.library.path="/opt/wls/wlserver/server/native/linux/x86_64/" weblogic.NodeManager -v
    else
     "${JAVA_HOME}/bin/java" ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" -Dweblogic.nodemanager.javaHome="${JAVA_HOME}" -Djava.library.path="/opt/wls/wlserver/server/native/linux/x86_64/" weblogic.NodeManager -v
   fi
fi
set +x
fi


Rerun the script and you should be able to get it started now.

Hope it helps.
AKSarav

No comments :

Post a Comment