Using two local transactions - Possible?

I have written a code, which is subscribing message from UM queue using local transaction(UM_LOCALTRANSACTION) and fetching some lookup in the database using local transaction(DB_LOCALTRANSACTION). Then publishing to the UM Topic using local transaction (UM_LOCALTRANSACTION).

Here i am getting the below error

[7162]2019-01-29 11:30:41 GMT [ISS.0134.0088E] Rejecting incoming message for trigger: <ServiceName***>, documentID: ID:10.13.178.13:39460(20). Delivery Count has exceeded 100 attempts.
[7161]2019-01-29 11:30:41 GMT [ISS.0134.0021E] Error delisting resource from transaction: java.lang.IllegalStateException: commit failed. more than one local transaction enlisted.
[7160]2019-01-29 11:30:41 GMT [SCC.0121.0026E] delisted transaction commit failed: java.lang.IllegalStateException: commit failed. more than one local transaction enlisted. xid = <ServerName**>/1548655492942
[7159]2019-01-29 11:30:41 GMT [SCC.0121.0990E] XA Transaction Logging: commitResources-IllegalStateException for xid: /1548655492942 → java.lang.IllegalStateException: commit failed. more than one local transaction enlisted.
[7158]2019-01-29 11:30:41 GMT [SCC.0121.0034E] commit failed: more than 1 local trans enlisted. xid = [FormatId=45744, GlobalId=<ServerName*****>/1548655492942, BranchQual=2] rxid = {2}

Can anyone suggest me the solution?

Hi Venkat,

do you use implicit or explicit transaction handling?

Make sure to assign the correct transasction id to the proper adapter services.
This will only work with explicit transaction handling.

Can you provide an outline of your service pointing out where the transactions are started, committed, rollbacked and where you invoke which adapter service?

Regards,
Holger

Hello Holger von Thomsen,

Thanks for your reply. I am using the implicit transactions. For UM Connection name - UM_LOCALTRANSACTION, DB Connection name - DB_LOCALTRANSACTION. Both are created with LOCAL_TRANSACTION.

Wow, I didn’t know that UM supports transactions! Does it? I’ve always thought it works based on acks. Any expert here?

Thanks all for the reply. I have used explicit transactions for the database. It worked out. It is mentioned in the documentation as well. It is under this topic “ValidDoubleLocal” in JDBC_Adapter_Install_and_Users_Guide