What is the issue we face When we use XA sessions and transacted sessions (local and XA transactions) withrouted queues?

book

Article ID: KB0091946

calendar_today

Updated On:

Products Versions
TIBCO Enterprise Message Service -
Not Applicable -

Description

Resolution:
A simple test with XA/transacted session and routed queue may work.  However  such a configuration
has problem(s) in some situations. EMS cannot guarantee  to behave correctly in all situations with
XA/transacted session and routed queue, so we  officially documented against using XA sessions and
transacted sessions (local and XA transactions) for routed queues.

One such known condition is that when a queue receiver at routed queue leaves a XA
prepared txn and restarted and prepared txn of queue receiver is recovered and committed,
committed msg is not removed from the queue.

To explain the above further, assume

- JMSD1 and JMSD2 are routed daemon
- JMSD1 has queue queue.sample global
- JMSD2 has queue queue.sample global@JMSD1

Now:

- send 1 msg on queue.sample
- Start a queue receiver at JMSD2 to consume that msg in a XA txn and leave a prepare txn and exit.
- Start queue receiver on JMSD2 again and recover its XA txn and commit it.

Now you will see:
  Commited msg still stays in the queue queue.sample

Issue/Introduction

What is the issue we face When we use XA sessions and transacted sessions (local and XA transactions) withrouted queues?