The prediction_engine probe will not start up.
The probe cannot obtain a port or a PID. Error in the prediction_engine log shows:
Aug 12 13:34:01:520  Controller: probe_tail_logfile: Unable to stat file probes/slm/prediction_engine/prediction_engine.log for probe prediction_engine Aug 12 13:41:03:034  Controller: Max. restarts reached for probe 'prediction_engine' (command = <startup java>)
Another probe tcp_proxy had been configured to use and already taken the same port (55005), required by the prediction_engine probe.
1. Deactivate prediction_engine
2. Run the probe manually using the arguments from the probe Edit window (accessed via rt-click on the probe itself)
C:\Program Files (x86)\Nimsoft\probes\slm\prediction_engine>"../../../jre\jre7/b
in/java.exe" -Xmx128m -Xms64m -agentlib:jdwp=transport=dt_socket,address=55005,s
erver=y,suspend=n -Djava.library.path=../../../lib -jar lib/prediction_engine.jar"
Output of the manual command to run the prediction_engine probe was:
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../.
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_E
3. Running the command, netstat -an | findstr "55005" finds something was LISTENING/using that port.
?TCP??? 0.0.0.0:55005????????? 0.0.0.0:0????????????? LISTENING
4. Doing a netstat -anb | more will show you the executable which in this case is java.exe for the prediction_engine but may be different if some other process is using port 55005.
In this case, the tcp_proxy (tcp_proxy.exe) probe had a profile that had been configured to use that port for RDP so it was preventing the prediction_engine from using that port (which is a required port).
5. Once I deactivated/deselected that profile in the tcp_proxy configuration window, the prediction_engine was able to successfully start up and get a port and a PID.
It may be required that the probe do not take the port defined because of conflict with other windows service:
To avoid that the probe takes 55005:
right click on the probe > edit:
in Arguments you will have:
-Dlog4j.configurationFile=log4j2.xml -agentlib:jdwp=transport=dt_socket,address=55005,server=y,suspend=n -Djava.library.path="../../../lib" -jar lib/prediction_engine.jar
Change that to a different address:
-Dlog4j.configurationFile=log4j2.xml -agentlib:jdwp=transport=dt_socket,address=55006,server=y,suspend=n -Djava.library.path="../../../lib" -jar lib/prediction_engine.jar