Hi @"Todd Little-Oracle",
I am testing behavior of Tuxedo applications in case of COMMIT time failures.
For this case I have created the following scenario:
I have set up two RMs with Tuxedo and have written an application that performs a transaction involving both the RMs.
The application starts a transaction using tpbegin, performs some DML's on both the RM's and then calls tpcommit.
This is where 2PC starts.
The prepare phase works fine on both RMs.
The COMMIT works fine on one RM, but fails on the other RM.
I can see the following line in the ULOG file
CMDTUX_CAT:447: ERROR: xa_commit returned XAER_INVAL for group BANKB3
however the call tpcommit does not report any error and passes as if every thing has worked fine.
I have tried setting
CMTRET COMPLETE
in the RESOURCES section of UBBCONFIG file but the behavior is same.
I have also tried calling tpscmt(TP_CMT_COMPLETE) but that did not make any difference either.
My questions are:
1. How does Tuxedo handle a commit time failure? My expectation is that tpcommit should have failed reporting that the transaction was only partially committed.
2. How does Tuxedo application handle in doubt transactions? Is there any example that shows life cycle of such transactions?
Thanks in advance.
Best Regards
Abbas