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.