Byte Code Adapter (Introscope JAVA Agent)
Today I would like to talk about the Byte Code Adapter also known as Introscope JAVA Agent or just ISAgent. I already mentioned about the ISAgent on my first post in this blog, but now I would like to provide more details.
Firstly, what is the Byte Code Adapter or ISAgent?
The ISAgent is a third party tool created by CA Technologies. The ISAgent is part of the CA Introscope. The CA Introscope is an enterprise application performance management solution that enables you to monitor complex web applications in production environments 24×7. The main purpose of the ISAgent is to collect data from the applications and systems running on Java Virtual Machines (JVMs), then the data is transferred to the Enterprise Manager to be stored and analyzed.
To have Root Cause Analysis and complete Early Watch Alerts for SAP Netweavers JAVA and Dual systems, it is required to install the Introscope JAVA Agent in the target systems. The following picutre shows the archtecture of the Instrscope JAVA Agents in SAP Netweaver systems.
The Introscope JAVA Agent instrument the SAP JVM inserting probes (measurement points) on the JAVA byte codes during their executions. The measurement points are configured by the Directive Files (*.pbd) which are added in the IntroscopeAgent.profile. SAP provides standard Directive Files that should be configured to the ISAgent depending on the managed system type. For SAP Solution Manager 7.10 SP11, the following Auto Probe Directive Files are available:
|sap_typical.jar||Main instrumentation set for SAP Netweaver. Includes support for generic Netweaver functionality, like database, JCO, Web Services.|
|sap_ep.jar||Portal specific instrumentation.|
|sap_ep_iviews.jar||Portal instrumentation: One node per iView – should be preferred for installations with many roles or when collaboration rooms are used. Requires sap_ep.jar|
|sap_ep_iviews_rolename.jar||Portal instrumentation: One node per iView/rolename combination – may lead to a high number of metrics for portals with a lot of content. Requires sap_ep.jar|
|sap_sapvm.jar||SAP JVM and Netweaver 7.1 specific instrumentation. Only activate this if SAP JVM is actually used.|
|sap_xi_typical.jar||Default and mandatory instrumentation file for XI.|
|sap_xi_full.jar||Extended instrumentation for XI. Some of these metrics might have a performance impact.|
|sap_bo_enterprise.jar||SAP Business Objects Enterprise instrumentation 3.x.|
|sap_boe_webapp.jar||SAP Business Objects Enterprise Web Application instrumentation 4.0.|
|sap_duet.jar||SAP Duet specific instrumentation|
|sap_partner.jar||Additional instrumentation for SAP partner products (Vertex, Vendavo, …)|
|sap_ws_nw70.jar||Netweaver 6.40 and 7.0x only: additional Web Service instrumentation to support dependency tracking. Do not use for Netweaver 7.1x, SMDAgent etc.!|
|sap_smd.jar||Solution Manager Diagnostics instrumentation for self-monitoring.|
|sap_mdm.jar||Additional SAP MasterDataManagement Java API instrumentation to measure performance of outgoing calls to MDM Server. Enable if the SAP J2EE Engine performs calls to MDM Server.|
|sap_compliance.jar||SAP Compliance (SAP GRC, SAP EC, SAP REACH, …)|
|sap_epm.jar||SAP EPM (SAP SSM, …)|
|sap_retail.jar||SAP Retail (SAP POS, SAP Triversity…)|
|sap_srm_crm.jar||SAP SRM & SAP CRM (SAP Convergent Charging, SAP Frictionless e-Commerce, …)|
|sap_manufacturing.jar||SAP Manufacturing (SAP Manufacturing Execution, SAP xMII, …)|
Depending on the systems type distinct directive files must be added to the ISAgent configuration. When using SAP Solution Manager, the configuration of the Introscope JAVA Agent is performed in the activity Byte Code Adapter Installation in setp Configure Automatically of the Managed System Configuration in transaction SOLMAN_SETUP. The Managed System Configuration uses the Products defined for the systems (PPMS IDs) and choose automatically the right instrumentation files.
The Directive Files are selected according to the system definition in LMDB, but it is possible to check/modify them performing the ISAgent setup using the JAVA URL which provides more options for the setup. To the following pictures show how to access the ISAgent Setup.
The activity Byte Code Adapter Installation perform the following tasks in the managed system hosts:
- Deploy the Introscope JAVA Agent files in the managed system: The ISAgent files are copied to all servers of the managed system. The files are usually placed in the SMDAgent folder.
- Add the Introscope JAVA Agent parameters for each server node in the managed system configuration: To instrument the SAP JVM, it is required to add new JAVA parameters to the JVM to start the ISAgent. More information is available in the Wily Setup Guide.
- Configure the IntroscopeAgent.profile: The Enterprise Manager settings and the selected Directive Files are configured added in the IntroscopeAgent.profile.
REMARK: If you enabled the SMDAgent on-the-fly in the managed system hosts, it is required to select the option “Ensure HA virtualization compatibility” within “Enter System Parameters” under Managed System Configuration. Fore more information, check the Diagnostics Agent and HA Support WIKI page.
The main properties in the IntroscopeAgent.profile are the EM and Directive files settings:
- introscope.agent.enterprisemanager.transport.tcp.host.DEFAULT=<EM_host>: Host of the Enterprise Manager that the ISAgent will connect.
- introscope.agent.enterprisemanager.transport.tcp.port.DEFAULT=<EM_port>: Port of the Enterprise Manager that will be used by the ISAgent.
- introscope.autoprobe.directivesFile=<Directive_Files>: Define the Auto Probe Directive files that will be used to instrument the JVM.
It is also possible to install the Introscope JAVA Agent manually, the Wily Setup Guide shows how to perform this task.
After the installation of the Byte Code Adapter, it is required to restart the managed system to start the ISAgent. This is the only way to start the ISAgent instrumentation. To check if the ISAgent is running, it is possible to check to ISAgent logs or directly the Introscope Webview, Workstation or
1. Introscope Agent log files:
When the automatic setup is used, the ISAgent log files will be available in the temp folder whitin the SMDAgent path:
If the manual installation has been performed, the ISAgent logs are available in the following location:
The file IntroscopeAgent.<Agent_Name> will provide details about the ISAgent runtime. In this file you can check if the Introscope JAVA Agent could connect successfully to the Enterprise Manager. If the connection has been established successfully, then you should the following entry in the log:
In the IntroscopeAgent.log it is possible to see what is the Enterprise Manager host and port which the ISAgent is trying to connect. Moreover, it is possible to see that Host, Process name and Agent Name used by the ISAgent. This information is useful to find the ISAgent in the Webview or Workstation Investigator.
2. Webview or Workstation:
To check if the ISAgent is connected to the Enterprise Manager using the Webview or Workstation, it is required to access the Investigator:
- Start Introscope Webview –> Investigator Tab
- Start Introscope Workstation –> New Investigator
After access the Investigator, check if it is possible to see the Host entry and below it the Process Name and Agent Name as shown in the IntroscopeAgent.log. The following picture shows the ISAgent of the example IntroscopeAgent.log above.
SAP J2EE Netweaver systems:
After the Byde Code Adapter Installation and the Managed System restart, the ISAgent sometimes is not started.
To troubleshoot this issue, initially it is possible to check the files dev_server* and std_server* of the Managed System work folder:
- dev_server*: In this file it is possible to see if the JAVA Server node has been started using the ISAgent JAVA parameters. If the parameters are not shown in the file, repeat the Byte Code Adapter Installation for the affected system.
- std_server*: This file provides details about the start of the ISAgent. If the ISAgent could not be started for some reason, usually the std_server* shows the root case.
When the managed system operation system is UNIX based, the ISAgent usually cannot start due to missing permission at OS level. Check note 1163751 carefully and ensure that all OS permission are correctly configured. After fix the OS permissions, it is required to restart the managed system again to start the ISAgent.
Ihope you enjoy this post.
You can leave questions below, I will try to answer them as soon as possible.
Thanks / Obrigado