WillJR wrote:
I just wanted to add to this. SentinelOne will target NodeManager and will prevent it from starting properly. You may circumvent this by either creating an exemption for the NodeManager executable or applying a different profile to it (in the context of IFS running on Windows Server, its usually located here: \ifs\mw_home\mws\wlserver\server\bin\wlsvcX64.exe )
The error message we were getting in the NodeManager logs not long after installing SentinelOne was as follows:
<SEVERE> <Fatal error in NodeManager 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:632)
at weblogic.nodemanager.server.NMServerConfig.<init>(NMServerConfig.java:397)
at weblogic.nodemanager.server.NMServer.<init>(NMServer.java:156)
at weblogic.nodemanager.server.NMServer.getInstance(NMServer.java:134)
at weblogic.nodemanager.server.NMServer.main(NMServer.java:589)
at weblogic.NodeManager.main(NodeManager.java:31)
Caused by: java.lang.UnsatisfiedLinkError: no nodemanager in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1863)
at java.lang.Runtime.loadLibrary0(Runtime.java:843)
at java.lang.System.loadLibrary(System.java:1134)
at weblogic.nodemanager.util.WindowsProcessControl.<init>(WindowsProcessControl.java:18)
at weblogic.nodemanager.util.ProcessControlFactory.getProcessControl(ProcessControlFactory.java:25)
at weblogic.nodemanager.server.NMServerConfig.initProcessControl(NMServerConfig.java:630)
... 5 more
Throughout a lot of comments on various sites including this one, the suggestion to fix this issue is to simply set NativeModeEnabled to False in the NodeManager configuration files, without much of an explanation on what what knock on effect it may have.
In my experience, setting NativeModeEnabled to False means NodeManager will have a reduced capacity in knowing the status of the services it manages. This manifests as strange errors showing up when attempting to stop and start the middleware services, and dangling java.exe processes (usually relating to the AdminServer)
It is by no means a ‘fix’ to the problem to set this to False and forget about it!
If you are experiencing this issue, first look at your organisations malware/cyber security platforms and if possible, temporarily disable those services to confirm that they are the culprit and proceed from there.
If you are certain such software is not interfering, I can explain what my findings were during the troubleshooting process that may assist - but please note this is all quite excessive!
During install and reconfigure, IFS will remove and add the NodeManager Windows Service in uninstall_service_mws.cmd and install_service_mws.cmd located in \ifs\instance\sinstance_name]\bin
In this script, a load of PATH environment variables are cobbled together from various other build scripts that were generated at installation time.
These PATH environment variables are inserted in to the registry at the time the Windows Service is installed under HKLM\SYSTEM\ControlSet001\Services\IFS MWS Nodemanager\Parameters\Path
At the time the NodeManager Windows Service starts, it (very likely) fetches the contents of said registry key and sets them as the PATH environment variable for the session.
If for some reason the above is not happening, is being blocked by some other software, or the files that it expects aren’t in the location specified in the PATH, you’ll get the no nodemanager in java.library.path error.
I was able to confirm that in our case SentinelOne was preventing the Path registry key from being read by copying the Path value and appending it to the PATH environment variable in the Windows System Environment variables…
In my case, those extra PATH environment variables looked like this: D:\ifs\mw_home\mws\wlserver\server\native\win\x64;D:\ifs\mw_home\mws\wlserver\server\bin;D:\ifs\mw_home\java\jre\bin;D:\ifs\mw_home\java\bin;D:\ifs\mw_home\mws\wlserver\server\native\win\x64\oci920_8
Hopefully this will be of use to someone else in future.
William