This section explains how to enable business transaction correlation for Java applications which communicate with SAP systems using SAP JCo library.
On this page: |
SAP JCo enables the Java application to call RFC-enabled function modules in the SAP ABAP system.
In the current version, the instrumentation of JCo RFC calls is done by a Java agent extension (SDK plug-in).
The following diagram describes the high-level architecture of the JCo instrumentation.

Use the generic procedure for Java Agent installation and continue with the following steps to see the RFC calls from Java to the SAP systems:
APPD-SAP-<version>.zip.APPD-SAP-<version>/AppServerAgent-JCo-plugin-<version>/ directory to [JavaAgentPath]/ver[JavaAgentVersion]/sdk-plugins/ directory.allow.unsigned.sdk.extension.jars=true parameter.If you are using SAP Application servers, the following tools can also help you add the Java Agent into the run time:
Configuring Java Agent using SAP NetWeaver Administrator:
-Dallow.unsigned.sdk.extension.jars=true.javaagent:<agent_home>/javaagent.jar.Configuring Java Agent using AS Java Config Tool:
-Dallow.unsigned.sdk.extension.jars=true.javaagent:<agent_home>/javaagent.jar.
| Start debug mode and attach logs to support tickets. |
The following SAP users should be assigned to authorization role /DVD/APPD_JAVA:
See Cisco AppDynamics Authorizations for more details.
To start a Business Transaction during JCo Server call, configure the following Java Agent POJO rule.
| JCo2 | JCo3 |
|---|---|
Match Classes | Match Classes that implements an Interface which Equals com.sap.conn.jco.server.JCoServerFunctionHandler Method name Equals handleRequest |

To be able to continue from an upstream Business Transaction on JCo Server, its necessary to modify your ABAP code on the system that calls the JCo Server. See Instrument custom ABAP code.
For this to work correctly, the Java system must be restarted after the first installation of JCo plugin version 4.5.2002 or later. |
The following table lists supported SAP PI / PO 7.4. Java Channels:
| PI/PO Adapter Types | Direction | Note |
|---|---|---|
| RFC | Bidirectional | For inbound correlation, see Instrument custom ABAP code |
| HTTP (HTTP_AAE) | Bidirectional | |
| SOAP | Bidirectional | Because of the changes in SAP NetWeaver Java core logic, some features are no longer available as of release 753, patch level 925. This limitation is resolved in version 22.8.0. |
| Web Service (WS_AAE) | Bidirectional | Because of the changes in SAP NetWeaver Java core logic, some features are no longer available as of release 753, patch level 925. This limitation is resolved in version 22.8.0. |
| File | Inbound (File to PI, No Correlation, only BT entrypoint) | Start BT via custom POJO rule: Match Classes |
| JMS | Bidirectional |
To view the outgoing SAP PI exitcalls, the BT must start or continue on SAP PI inbound channel using either Java Agent auto-detection or POJO rule.
You can exclude or include RFC exitcalls from Java agent to ABAP agent using RFC blacklist and RFC whitelist functionality. To use blacklist or/and whitelist, add the jco-rules.xml file in the same directory as SAP_JCO_iSDK.jar.
Specify function modules (FM) for which additional RFC calls are not performed. This means that a business transaction from Java Agent will not continue in a downstream ABAP agent (no Top 5 ABAP or SQL statements, ...).
To add a FM into blacklist add: <exclude type="fm">FUNCTION_MODULE</exclude> into jco-rules.xml file (Replace FUNCTION_MODULE with concrete function module name or pattern).
When blacklist is empty, no FM is excluded.
Additionally, you can globally disable correlation for stateless calls by adding (changing):
<exclude type="stateless">true</exclude>
As of release 25.2.0 correlation for stateless calls is disabled by default, and the rule "<exclude type="stateless">true</exclude>" is already present in delivered jco-rules.xml file. |
Specify function modules (FM) for which additional RFC calls will be performed. This means that a business transaction from Java Agent will continue in a downstream ABAP agent (as usual).
To add a FM into whitelist add: <include type="fm">FUNCTION_MODULE</include> into jco-rules.xml file (Replace FUNCTION_MODULE with concrete function module name or pattern).
When a whitelist is empty - all FMs are included. When whitelist contains a list of FMs, only the listed FMs are included.
If the function module name is in both whitelist and blacklist, then the blacklist rule has a higher priority and therefore FM will be blacklisted. Ensure that there is not more than one exclude element with type="stateless". |