XA support for a Sysplex in non-Java clients

IBM® data server clients and non-Java data server drivers that have a Db2 Connect license can directly access a Db2® for z/OS® Sysplex and use native XA support without going through a middle-tier Db2 Connect server.

This type of client-side XA support is only available for transaction managers that use a single-transport processing model. In a single-transport model, a transaction, over a single transport (physical connection), is tied to a member from xa_start to xa_end. The transaction end is followed immediately by xa_prepare(readonly), xa_prepare plus xa_commit or xa_rollback, or xa_rollback. All of this must occur within a single application process. Examples of transaction managers that use this model include IBM TXSeries® CICS®, IBM WebSphere® Application Server, and Microsoft Distributed Transaction Coordinator.

Support for the single-transport processing model also includes indoubt transaction recovery where member information for each recoverable transaction is retrieved through xa_recover, which allows xa_commit or xa_rollback to be directed at the specified member.

You enable XA support by using the SINGLE_PROCESS parameter in the xa_open string, or by specifying settings for XA in the db2dsdriver configuration file.

XA support in non-Java clients has the following restrictions:

  • The following transaction manager processing models are not supported:
    • Dual-transport. In this model, a transaction, over transport A, is tied to a member from xa_start to xa_end, but xa_prepare(readonly), xa_prepare plus xa_commit or xa_rollback, or xa_rollback comes in over transport B, possibly from another application process. Examples of transaction managers that use this model are IBM WebSphere MQ and IBM Lotus Domino.
    • Multi-transport. This model involves the use of multiple transports from multiple application processes, for the same transaction.
  • For XA transaction managers that use a multi-transport processing model, a middle-tier Db2 Connect server is still required.
  • When XA support is enabled at the client, seamless failover is automatically disabled.
  • In loosely coupled XA transactions, if there are multiple branches open against the same resource manager an application can encounter lock-time or a deadlock within global transactions. The lock-time or deadlock occurs because data sharing members can share locks only if multiple branches within a global transaction land on the same member. An application might not be able to use workload balancing but it can use client affinity for high availability.

Important: Db2 for z/OS Known Issue PK69659 must be installed for direct XA support (needed for transaction managers such as Microsoft Distributed Transaction Coordinator). For more information, see Known Issue PK69659.