This sounds like a valid bug. Could you please submit a bug report for it
in JIRA?

Thanks,
Tim

On Tue, Nov 26, 2019 at 2:53 AM Viliam Durina <vil...@hazelcast.com> wrote:

> I'm doing these steps:
>
>     Xid xid1, xid2;
>     XASession session = ...;
>     MessageConsumer consumer = ...;
>     XAResource xaRes = session.getXAResource();
>
>     xaRes.start(xid1, TMNOFLAGS);
>     consumer.receive();
>     xaRes.end(xid1, TMSUCCESS);
>     // prepare the xid1, continue with xid2
>     xaRes.prepare(xid1);
>     xaRes.start(xid2);
>     // receive one more item
>     consumer.receive();
>     // commit the first transaction
>     xaRes.commit(xid1, false);
>
> The issue is that the last `commit` should commit only the first received
> message. But it commits also the message received using the xid2
> transaction.
>
> As far as I can tell the above behavior is legal. That's why the `commit`
> method has the `Xid` argument: to tell which transaction are we committing.
> The `receive` method uses the transaction associated currently with the
> session. It also works with ActiveMQ Artemis.
>
> Viliam
>

Reply via email to