With the z/OS Java module, you can get observability for your Java applications including IBM MQ and database calls.
Analyze the performance of your transactions end-to-end using the service flow.

Use the PurePath distributed traces to drill down to the code level and to optimize your programs.

Quickly detect anomalies with the Service response time hotspots.

Analyze failures and exceptions with detailed stack traces.

Gain insights into your JVM with the Dynatrace managed memory metrics:

Understand the health and performance of your application servers with technology-specific metrics:

JVM specific metrics:
WebSphere Liberty and z/OS Connect specific metrics:
Websphere Application Server specific metrics:
Yes, you can use the z/OS Java module to monitor custom JMX metrics. For more information, see Monitor JMX metrics on z/OS.
Activate the OneAgent feature Forward Tag 4 trace context extension.
Download z/OS product datasets and extract the JAR file (dynatrace-oneagent-zos-java.jar).
Transfer the JAR file to your z/OS Unix System Services (USS) environment in binary mode.
Create a new file with the name dtconfig.json in the z/OS USS folder where the module is located.
A minimal dtconfig.json file contains your Dynatrace environment ID (Tenant), cluster ID (ClusterID), and the zDC subsystem name (ZdcName). For example:
{"Tenant": "myTenant","ClusterID": myCluster,"ZdcName": "DEFAULT"}
Replace myTenant and myCluster> with your Dynatrace environment values. To find these values, in Dynatrace Hub, select OneAgent > Download OneAgent or Set up (latest Dynatrace) > z/OS.
If the zDC name is defined as DEFAULT, the module will connect to the default zDC subsystem ID. To use a different zDC, replace DEFAULT with an alternative subsystem ID.
You can find the zDC subsystem name in the SYSIN parameters of your JCL SYSIN member ZDCSYSIN. The default zDC subsystem name is MEPC.
//SYSIN DD DISP=SHR,DSN=<hlq>.SZDTSAMP(ZDCSYSIN)SUBSYSTEM_ID(MEPC)DEFAULT(YES)
If DEFAULT is set to YES in the SYSIN parameters, you can also use DEFAULT in the dtconfig.json file.
dtconfig.json file.dtconfig.json when it's placed in the same folder as dynatrace-oneagent-zos-java.jar.dtconfig.json in a different folder, you need to specify the path to it via the environment variable DT_CONFIG_FILE. The path must include the filename. You can use an absolute path or a path relative to the working folder of the process.If you have Dynatrace installed and are upgrading to a new release, you can jump to section [Update][#update]
You need to add the z/OS Java module to the JVM arguments of each application server that you want to monitor.
Open the WebSphere Application Server Admin Console and navigate to Application servers.
Select <YOUR_SERVER> > Process definition > Servant, and choose Java Virtual Machine.
Copy the JVM argument from your Dynatrace environment and paste it into the Generic JVM arguments:
-javaagent:/PATH_TO/dynatrace-oneagent-zos-java.jar
Replace PATH_TO with the path to your JAR file.
Save the changes and restart your WebSphere Application Server.
You need to add the z/OS Java module to each product that you want to monitor.
Add the module to the JVM_OPTIONS STDENV variable:
JVM_OPTIONS=-javaagent:/PATH_TO/dynatrace-oneagent-zos-java.jar
Replace PATH_TO with the path to your JAR file.
Optional Add the monitor-1.0 feature to your featureManager in the server.xml file to collect additional metrics like connection pools or thread pools:
<server><featureManager><feature>monitor-1.0</feature></featureManager></server>
Save the changes and restart your z/OS Connect Enterprise Edition.
For the CICS service provider, activate the OneAgent feature z/OS CICS z/OS Connect.
For the IMS service provider:
For the MQ service provider, no additional configuration is needed.
By default, logging is disabled for the z/OS Java module. To enable logging, add one of the following options to the JVM argument:
If needed, you can log to multiple locations. For example:
-javaagent:/PATH_TO/dynatrace-oneagent-zos-java.jar=log-stdout=true,log-file=true
If needed, you can customize the file logging with the following options:
By changing the default folder, ensure that the application server has appropriate write permissions for the folder in which the module should write the log files.
Dynatrace recommends to write the logs to the shared log folder of the zDC so that they are included into the OneAgent diagnostics workflow. For example, if the dtzagent binary is located at /u/dt/agent/lib64/dtzagent in the z/OS USS environment, the log folder is /u/dt/log. Typically, a shared zDC log folder already exists and contains some zDC logs.
To enable file logging to an absolute path such as the shared zDC log folder /u/dt/log, specify the JVM argument as follows:
-javaagent:/PATH_TO/dynatrace-oneagent-zos-java.jar=log-file=true,log-file-dir=/u/dt/log
If your zDC is installed in a different location, you must adopt the absolute path of the shared zDC log folder.
To update your z/OS Java module to a newer version
dynatrace-oneagent-zos-java.jar) to your z/OS USS environment in binary mode.If, after starting the application server in z/OS, you may see Not Marked Program Controlled messages or errors with the return code 139:
BPXP015I HFS PROGRAM /tmp/libdynatrace-oneagent-odin-java5848811742465559217.soIS NOT MARKED PROGRAM CONTROLLED.
You need to enable program control for the z/OS Java module. To do so
Expand dynatrace-oneagent-zos-java.jar that you downloaded into a program controlled folder.
Mark the appropriate .so file (31 or 64 bit) in the lib/zos-s390/ directory as program-controlled.
.so files.extattr +p libdynatrace-oneagent-odin-java_64.so
Add zos-native-library-override to your JVM argument.
-javaagent:/PATH_TO/dynatrace-oneagent-zos-java.jar=zos-native-library-override=<PATH_TO_SO>/libdynatrace-oneagent-odin-java_64.so
Where:
<PATH_TO> is the path to your JAR file.<PATH_TO_SO> is the absolute path to the .so file that you want to control.Restart your application server.
By default, all sensors of the z/OS Java module are enabled. In case of problems, you can disable specific sensors by setting their value to false in the dtconfig.json file.
{"Sensors": {"Enable": {"CTG": {"Server": "false","Client": "false"},"HttpClient": {"Apache": "false"},"JDBC": "false","JMS": "false","IbmMQ": "false","Servlet": "false","ZosConnect": "false"}}}