Created:  | Updated: 


z/IRIS enables the JDBC observability for JDBC calls processed by IBM Db2 for z/OS systems in partner APM solutions like Instana APM. With z/IRIS, DevOps teams have access to performance metrics and information related to the JDBC call processing from Db2 for z/OS systems. z/IRIS also creates Instana Events when deadlocks have been detected by Db2 z/OS systems. The deadlock events inform DevOps of the affected Java applications and scope of the Db2 z/OS resources impacted.

Instana APM traces, created by z/IRIS, are enriched with custom tags to make searching and filtering traces easy for DevOps and analysis teams.

This article describes how Instana APM users with z/IRIS can monitor the performance and cost impact of JDBC calls to Db2 for z/OS.

Distributed Db2 for z/OS traces

z/IRIS allows users to monitor JDBC calls, instrumented by partner APM platforms, to Db2 for z/OS subsystems. Distributed Db2 for z/OS traces are created from IBM z/OS SMF record types 101 and 102. The following Instana APM calls are created by z/IRIS: 

Db2 Accounting calls (IFCID 3)

z/IRIS processes IFCID 3 Db2 traces with Instana trace.ids and formats these traces into Instana calls. z/IRIS Db2 Accounting calls are appended to the JDBC application traces instrumented by Instana agents for z/IRIS integration. For more information about z/IRIS related instrumentation for Instana,  see 'z/IRIS - How to Enable system-wide Instana instrumentation'. Db2 Accounting call tags provide resource consumption information and performance data related to the JDBC connection transactions (commits/rollbacks). CPU and zIIP processor time, elapsed time (duration), service units and more are extracted and presented within the context of the JDBC application creating the mainframe workload.

Click on the image to enlarge

Instana Db2 Accounting screenshot


The following metadata is added to z/IRIS Db2 Accounting calls:


IFCID 3 In-Db2 elapsed time.


Db2 subsystem name where the IFCID 3 trace was created.



Db2 Deadlock calls

z/IRIS signals the occurrence of a deadlock through an erroneous Db2 Deadlock call that provides the Db2 for z/OS deadlock timestamp, the number of database resources impacted by the deadlock as well as the Db2 and z/OS system names, where the deadlock occurred. A child span is created for each Db2 RNA (resource name) locked and enriched with call tags that describe the JDBC DBATs (database access threads) holding-up or waiting for the Db2 RNA. If the JDBC applications, which are involved in the deadlock, are instrumented by Instana Java agents, then their trace.ids will be provided in either the or the tag.

Click on the image to enlarge

Instana Db2 Deadlock screenshot


The following metadata enriches z/IRIS Db2 Deadlock calls:


Not set and therefore < 1ms is observed.


Db2 subsystem name where the IFCID 172 was created.



Db2 deadlock resource name (RNA) child spans

One child span is created for each Db2 RNA listed in the IFCID 172 Db2 deadlock trace.

Call name

The call name provides the RNA locked in the deadlock event. Possible values include:

  • = collectionId

  • packageName

  • planName

  • dbid=dbid 

  • obid=obid

  • smallResource
    where smallResource could point to one of the following:

    • partition.number=partitionNumber

    • bucket.number=bucketNumber



    • lob.version.number=lob.version.number


    • subpage.number=subpage.number


Click on the image to enlarge

Instana Db2 Deadlock RNA screenshot

Db2 Deadlock RNA tags provides details regarding the JDBC connections that are holding up (i.e. blocking) or waiting for the Db2 resource, including Db2 LUWIDs, network address and Instana APM trace ids. 

Db2 Deadlock participants

z/IRIS will determine whether the application JDBC sessions involved in a deadlock are also instrumented by Instana Java agents. If so, z/IRIS will locate the that contains the SQL calls impacted by the deadlock and mark the trace as erroneous. Additionally, the and, which can be used to locate the Db2 Deadlock trace, is provided in the call tags and  

It is possible to have JDBC SQL calls that have participated in multiple deadlock events.

Click on the image to enlarge

Instana Db2 Deadlock participant screenshot

Db2 Performance calls

z/IRIS creates the following Instana APM traces using the following Db2 for z/OS performance class IFCIDs:


Instana APM


Db2 Performance: End Sql QW0058SN


Db2 Performance: Fetch start QW0059SN


Db2 Performance: QW0060ST start QW0060SN


Db2 Performance: QW0061ST start QW0061SN


Db2 Performance: QW0062ST start QW0062SN


Db2 Performance: SQL statement


Db2 Performance: QW0064ST start QW0064SN


Db2 Performance: Open Cursor start QW0065SN


Db2 Performance: Close Cursor start QW0066SN

The performance class IFCIDs are expensive to activate and are therefore only used for specific analysis purposes. Please consult the relevant IBM Db2 for z/OS documentation regarding the performance impact of activating these IFCIDs.

click to enlarge image


Each Db2 Performance call is enriched with the following data:


Not set and therefore < 1ms is observed.


Db2 subsystem name where the respective IFCID was created.



z/IRIS distributed Db2 for z/OS deadlock events

z/IRIS will also create an Instana event for each Db2 z/OS deadlock trace (IFCID 172).

Click on the image to enlarge

Event title

Deadlock event detected on db2-subsystem-name involving Db2 resources at db2.zos.deadlock.timestamp, where:


The Db2 Subsystem ID on z/OS, where the deadlock occurred.


The number of Db2 resources impacted by the deadlock.


The timestamp at which the deadlock was detected.

Event details

Complete deadlock details can be found at in the following call: = trace-id.

Use the Instana Analyze dashboard to search for traces with the provided in the deadlock event details.