Transaction types and programming interfaces supported by the IMS Universal Database resource adapter
The IMS Universal Database resource adapter provides four types of support for optimized transaction management and performance.
The types of transaction support provided by the IMS Universal Database resource adapter are:
- IMS Universal Database resource adapter with local transaction support (imsudbLocal.rar)
- This resource adapter provides a CCI programming interface and LocalTransaction support when deployed on any supported Java™ EE application server.
- IMS Universal Database resource adapter with XA transaction support (imsudbXA.rar)
- This resource adapter provides a CCI programming interface and both XATransaction and LocalTransaction support when deployed on any supported Java EE application server.
- IMS Universal JCA/JDBC driver with local transaction support (imsudbJLocal.rar)
- This resource adapter provides a JDBC programming interface and LocalTransaction support when deployed on any supported Java EE application server.
- IMS Universal JCA/JDBC driver with XA transaction support (imsudbJXA.rar)
- This resource adapter provides a JDBC programming interface and both XATransaction and LocalTransaction support when deployed on any supported Java EE application server.
For global or two-phase commit transaction processing, use the IMS Universal Database resource adapters with XA transaction support. For single-phase commit functionality, use either the IMS Universal Database resource adapters with XA transaction support or with local transaction support.
In order to provide for different transactional qualities of service for Java EE applications, it is possible to deploy two or more separate types of IMS Universal Database resource adapters into the same Java EE application server.
When carrying out multiple interactions with IMS databases using the IMS Universal Database resource adapter, you might want to group all actions together to ensure that they either all succeed or all fail. This can be done using container-managed or bean-managed transaction demarcation.
In container-managed transactions, all work performed in an EJB method invocation is part of one unit of work, and no explicit demarcation by the application is required. Transactional integrity is managed by the Java EE application server.
In bean-managed transactions, you must use the javax.resource.cci.LocalTransaction or javax.transaction.UserTransaction interface to programmatically demarcate units of work explicitly. Bean-managed transactions that use the LocalTransaction interface can group work performed only through the resource adapter; the UserTransaction interface allows all transactional resources within the application to be grouped. Use a bean-managed EJB if you need to have multiple units of works within the same EJB method invocation.
When using the type-2 IMS Universal Database resource adapter, if you specify a driverType connection property of 2, you can use javax.resource.cci.LocalTransaction for bean-managed transactions or the JDBC Connection interface. If you specify a driverType connection property of 2_CTX, you can use the javax.transaction.UserTransaction for application programs that issue explicit commit and rollback calls.