When running an IBM JVM, the APM documentation recommends using AgentNoRedefNoRetrans.jar instead of Agent.jar for WebSphere Application Server running. Is that also true for any other type of Application Server running an IBM JVM e.g. WebLogic?
1. The IBM JVM has several optimizations built in that can break when a vendor attaches an agent that advertises itself as 'can dynamically change bytecode' and this behaviour applies to ALL vendors implementing the java agent, not just CA APM. Therefore to prevent possible JVM related errors, instead of using the standard Agent.jar, it is recommended to use the AgentNoRedefNoRetrans.jar which deactivates class redefinition and retransformation. The AgentNoRedefNoRetrans.jar essentially tells the JVM that this agent will not attempt any dynamic bytecode changes and the JVM is then able to work with the agent without errors.
2. If when instrumenting any Application Server running an IBM JVM problems are encountered, the recommendation is to switch from using the Agent.jar to the AgentNoRedefNoRetrans.jar & associated IntroscopeAgent.NoRedef.profile. To gain access to the files the WebSphere NoInstaller files agent package should be installed & the IntroscopeAgent.NoRedef.profile will need appropriate changes for the Application Server being used e.g. for WebLogic:
a. Copy websphere-typical-NoRedef.pbl to weblogic-typical-NoRedef.pbl.
b. In weblogic-typical-NoRedef.pbl:
Remove 2 lines: ws60x.pbd and ws70x.pbd
Add 2 lines: wl90x.pbd and wl100x.pbd
c. Backup IntroscopeAgent.NoRedef.profile and edit as follows:
Change 3 lines:
Also expand the Comments section at the bottom of above page to see Sergio Morales' statement: "It's recommended to use AgentNoRedefNoRetrans.jar for any IBM JVM not only 1.6"