Overview of integrating XA-compliant data sources in transactions
The transaction manager, which is an integral part of the database server, not a separate module, can invoke support routines for each XA-compliant, external data source that participates in a distributed transaction at a particular transactional event, such as prepare, commit, or rollback. This interaction conforms to X/Open XA interface standards.
- Create XA-compliant, external data source types and instances of XA-compliant, external data sources.
- Create XA purpose functions, such as xa_prepare, xa_commit, and xa_rollback, for each XA data source type to keep external data in sync with HCL Informix® transactional semantics.
- Register XA-compliant, external data sources with anHCL Informix® transaction.
- Unregister XA-compliant, external data sources.
- Use multiple XA-compliant, external data sources within the same global transaction.
The transaction coordination with an XA-compliant, external data source is supported only in HCL Informix® logged databases and ANSI-compliant databases. These databases support transactions. Transaction coordination with an XA-compliant, external data source is not supported in non-logged databases.
- Creating user-defined XA-support routines
- Creating and dropping XA-compliant, external data source types.
- Creating and dropping XA-compliant, external data sources.
- Registering and unregistering XA-compliant, external data sources as needed.
The HCL Informix® MQ DataBlade® Module, which provides a set of user-defined routines (UDRs) to enable HCL Informix® applications to exchange messages between HCL Informix® and HCL Informix® MQ, uses the XA data-source functionality described in this section. For information about the MQ DataBlade® Module, see the Informix® Database Extensions User's Guide.
For general information about XA specifications, refer to the "Distributed Transaction Processing: The XA Specification." This is the X/Open standard specification that is available on the internet.
At the present time, the transaction manager does not support the asynchronous execution of purpose functions, thread migration, and transaction branch features.