When running an IBM JVM, the APM documentation recommends using AgentNoRedefNoRetrans.jar instead of Agent.jar for WebSphere Application Server. Is that also true for any other type of Application Server running an IBM JVM e.g. WebLogic.

Document ID : KB000015759
Last Modified Date : 14/02/2018
Show Technical Document Details
Question:

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?

Environment:
APM 9.x, 10.x agents installed on Application Servers using an IBM JVM
Answer:

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: 

introscope.autoprobe.directivesFile=websphere-typical-NoRedef.pbl,hotdeploy 

introscope.agent.customProcessName=WebSphere 

introscope.agent.agentName=WebSphere Agent 

To: 

introscope.autoprobe.directivesFile=weblogic-typical-NoRedef.pbl,hotdeploy 

introscope.agent.customProcessName=WebLogic 

introscope.agent.agentName=WebLogic Agent 

Additional Information:

Home > Implementing Agents > Java Agent > Install the Java Agent > Configure Application Server to Use the Java Agent > Configure WebSphere Application Server to Use the Java Agent

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"