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

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?