If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Disclaimer: Advice is provided to the best of my knowledge but no implicit or explicit warranties are provided. Since the advisor explicitly encourages testing any and all suggestions on a test non-production environment advisor should not held liable or responsible for any actions taken based on the given advice.

re

Hi,
thank you for you reply, my software architecture plays a role
hereafter the code commented

Iterate on involved DBs (they are n)
// look up for record prKey
String sqlB1 = "SELECT * FROM item WHERE recordKey = "+ prKey;
//create a transaction branch instance TB from sqlB1
//enqueue TB in the transaction branches queue of the distributed transaction T
//assume here that I get pAttrOld1 and pAttrOld2 in the resultset of sqlB1, that I don't understand how i will obtain

Finally enqueue T in the working queue of a Transaction Manager
the latter will enqueue the transactions branches in the working queues of threads connecting to the different DBs and wait a time out until all replies arrive
the connecting threads will enqueue the prepare result, XAResource, Connection XAConnection related to each transaction branch in the reply queue of the transaction manager
the transaction manager decides to commit or rollback T depending on the prepare results obtained (it will also close connections ...)
as you see here I need sqlB1 resultset to execute sqlB2, how can I manage that with this architecture?
any advise concerning the architecture is welcome