DOMINO AND DB2


Domino and DB2 XA transaction services
IBM® Lotus® Domino™ uses DB2's XA transaction services, but changes a default participation assumption. Domino add-in developers need to be aware of this change.

When a process starts using XA with IBM® DB2 Universal Database™ Enterprise Server Edition, all subsequent new connections are usually created using the assumption that the new connections will be participating in XA operations unless the SQL_ATTR_HANDLE_XA_ASSOCIATED connection attribute is explicitly set to FALSE to opt-out of XA. Setting the attribute SQL_ATTR_HANDLE_XA_ASSOCIATED to FALSE breaks any legacy DB2 calls that the process makes that did not know about XA, such as DECS and other Domino add-ins that access DB2.

To avoid requiring these applications to be rewritten to opt-out of XA participation, at startup, all Domino processes change this DB2 XA participation default from opt-out to opt-in. If you are writing a Domino add-in that creates DB2 connections and you want to use XA, you must now opt-in each connection using the following call:

SQLSetConnectAttr(hdbc, SQL_ATTR_HANDLE_XA_ASSOCIATED, (SQLPOINTER*)SQL_CONNECT_WITH_XA_ON, SQL_IS_INTEGER);

See also