Berkeley DB X/Open Compliant XA Resource Manager
The Berkeley DB X/open compliant XA resource manager has been restored. (It was removed from the product after the 4.7 release.) The new implementation includes support for multi-threaded servers. Consult the documentation of your chosen transaction manager to learn how to implement a multi-threaded server.
Constraints
Applictions that use a BDB XA resource manager must now take into account the following constraints.
- No in-memory logging.
- No application-level child transactions.
- All database-level operations (open, close, create and the like) must be performed outside of a global transactions (i.e., they can be performed in local BDB transactions, but not while a distributed XA transaction is active).
- Environment configuration must be done using a DB_CONFIG file.
- Cursors must be closed before a service invocation returns.
New Flag
DB_XA_CREATE- This flag is passed to db_create() to create aDBhandle that supports XA transactions.
Modified Function
- DB->stat() now returns the field
DB_TXN_STAT->DB_TXN_ACTIVE->xa_status, which contains information on the XA transactions.