Distributed (XA) Transactions functionality in webMethods

Hello all,

We wanted to achieve distributed XA transactions functionality(two-phase commit) within IS. But when I gone through the document, found that webMethods XA’s functionality works only when two DB’s are involved. Is that correct?

Scenario:

In a single transaction, our service will subscribe to the broker and do the transformation and place the document/file in the File System and update a row in the DB and send the acknowledgement to the broker, so that guaranteed document will be deleted and commits it.

In this scenario, if something goes wrong either at File System or DB or Broker, all the activities needs to be rolled back.

Will XA functionality will take care of rolling back the file placed in File system if anything goes wrong with that transaction? Or we need to write a logic separately to delete the uploaded file?

Your valuables inputs will help us a lot.

Thanks,
Bala.

Bala,

In your case, we can’t use XA transactions. You have to control your flow explicitly.

Thanks,

Hi MR,

Thanks for the reply,
Does XA transactions functionality in webMethods is only b/w 2 DB’s ? or I can update DB & send an acknowledgement to broker in one XA transaction, commit it if both completes successfully or rollback both even if one activity fails to complete.

Please clarify.

Bala,

Yes,its b/w only 2 db’s. For more details kindly go through doc.

Thanks,

1 Like

XA transactions require the ressources used to be XA capable. Most databases are. Theoretically this works with all adapters connecting to XA capable ressources. Filesystems usually do not support transactionality at all.

I agree with Martin: