I have java agent 9.5.5 installed on AIX 7.1 with WAS 18.104.22.168. and Java VM version "IBM J9 VM 1.6.0".
Java Agent is discovering customer application in the frontend but not the related servlet. Looking at autoprobe log file, there are no errors but the servlet class is not instrumented (I found the app related servlet name in the web.xml file).
So that the front-end is not measuring the response time during transactions, and appmap is not builded.
Add this line somewhere in your pbd files:
IdentifyDeepInheritedAs: javax.servlet.http.HttpServlet HTTPServletTracing
Your suggestion works, I done a new pbd with the line suggested and put it in the hotdeploy folder.
I also restarted the app server.
Thanks and Regards
Here is some additional information:
Hi Antonello:Was Florian's suggestion helpful? Are there any followup questions?
Yes, very helpful.
One question is about current APM agent installation I have, currently I have these parameters in the app server startup:
and the following directive files:
If I use Agent.jar and IntroscopeAgent.profile do I need the same to add the suggested line?
Consider that the agent is 9.5.5.
You should always use the AgentNoRedefNoRetrans and its profile in all instances of IBM J9 VM.
I checked the documentation and you are right, but the APM agents 9.5.5 are installed for some year in this way (AgentNoRedef.jar) so I can't change right now.
The reason for which this problem has been discovered now is that customer is testing a new version of its application and for this he found the instrumentation problem that on the old version did not occur.
1) You’re using an IBM JVM right? Which version?
2) If you’re using 1.7 or greater, you can use the standard Agent.jar, but you’ll need to add this line as well. We have incorporated this line in the default settings in 10.3.
<curious>in your last comment (2) do you mean adding this line:
to all agents from v9.5.5 to v10.2 and all platforms in addition to:
apm-common.pbd -> IdentifyDeepInheritedAs: javax.servlet.http.HttpServletRequest ServletRequestClass
Yes, in addition, the ServletRequestClass is responsible for a different tracer injection.
I have IBM JVM version: "IBM J9 VM 1.6.0".
Another question is about Deep Inheritance settings specified inside IntroscopeAgent.NoRedef.profile, currently I have
Do you have information about the difference between this parameter and the line added ?
IBM JRE 1.6 => You should use the NoRedefNoRetrans version.
This property introscope.autoprobe.deepinheritance.enabled
Should be set to true, otherwise “IdentifyDeepInheritedAs” will work as “IdentifyInheritedAs”, you would lose the “Deep” characteristic.
Thanks for the info provided, instead enabling the deep instrumentation from the Agent profile I prefer the following setting that is more specific and solved the problem: