I already setup java agent for WebMethod, I put the argument in custom_wrapper.conf like this capture
But when the jvm has been restarted, the jvm can't start properly. I took on the agent log, that agent can't connect to collector. But, as per my experience, when the agent can't connect to collector, JVM should be started properly and no issue, only effected the agent that can't connect to collector and then can't appear in DT Server.
Can someone explain me, why the JVM can't start ?
I attached the agent log and from webmethod log
Solved! Go to Solution.
You are correct, the AppMon agent will not cause a JVM shutdown if it can't connect to the collector. In your case, it appears that the JVM termination is coming from a wrapper layer, not from the Appmon agent. The JVM shutdown appears to be the result of the wrapper not getting a signal from the JVM, which might be due to the JVM taking too long to start, which is caused by the AppMon agent consuming lots of time waiting for Collector responses which never come and hitting the 10 sec timeout.
Look in the wrapper-dynatrace.log for this message: " Startup failed: Timed out waiting for a signal from the JVM.". This appears to be the cause of the JVM shutdown and this message is not coming from AppMon.
Is there a way to slightly increase the timeout value for how long the wrapper waits for the JVM signal? Of course you could also solve this by figuring out why the Collector is not responding, but that wouldn't address your underlying issue of not being able to start without a collector.
For now, the agent can't connect to the controller is because firewall blocking, this is confirmed that from the server which installed agent can't telnet to the collector port 9998.
But as you said "which is caused by the AppMon agent consuming lots of time waiting for Collector responses which never come and hitting the 10 sec timeout "
Then this issue is caused by appmon agent ?
I just want to confirm, why due the connection problem between agent and controller lead the JVM shutdown. Because, I try this scenario on my local Tomcat, when agent can't connect to the controller, JVM still can start properly.
Your JVM startup issue is happening because of two conditions:
1) AppMon Agent is taking longer than expected due to the firewall issue.
2) Your Tanuki startup wrapper is terminating the JVM during startup because your JVM startup exceeds the Tanuku startup timeout value of 30 seconds.
If your JVM encountered only one of these conditions your JVM would startup just fine. So changing either of these conditions would resolve your problem.
You've proven yourself that the AppMon agent by itself will not prevent the JVM from starting. The decision to not start the JVM is explicitly being taken by Tanuki. AppMon is just creating the condition which causes Tanuki to decide to shutdown the JVM before startup completes.
I did some digging and I suggest you increase your Tanuku wrapper timeout value. See below. The default is 30 secs. Try setting it to 40 seconds, which would add an accommodation for the additional 10 seconds taken up by the AppMon connection timeout.
Here's a link to the Tanuki doc for this parameter: https://wrapper.tanukisoftware.com/doc/english/prop-startup-timeout.html
Let us know if this works.