Skip to content

support for limited DUOW (two phase commit) with only Db2-databases? #957

@imavo

Description

@imavo

Is your feature request related to a problem? Please describe.

It would be useful for some businesses to use python ibm_db to access two-phase-commit functionality when connected to two separate Db2-databases, using Db2 as the Transaction Manager. This is currently not supported by python ibm_db at release 3.2.3. The idea being that a single transaction (insert, update, delete) could span two separate Db2-databases and to commit only when the activities on both databases successfully commit, and rollback both legs if either or both fails to commit.

Describe the solution you'd like
A method for the application to indicate that the application wishes to connect to two separate Db2-databases, and for the transactions to be coordinated via two-phase-commit. Plus a method to return any indoubt-transactions , and a method to handle those indoubt-transactions (e.g forget, commit, rollback).

Describe alternatives you've considered
A full implementation of XA support would be the eventual goal, but a first limited step to support distributed units of work over 2 Db2-databases might be a small start.

Additional context
Eventually it would be ideal if python ibm_db could support XA, to allow distributed transactions between Db2-databases and MQ, between Db2-databases and MSDTC etc, using external third party transaction managers, but that is not what this current suggestion is about - instead this current suggestion is only about supporting coordinated transactions over 2 Db2-databases .

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions