activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <>
Subject [jira] Resolved: (AMQ-1593) redeliveryCounter not updated correctly when using XA transactions and Spring
Date Fri, 30 Jan 2009 15:35:00 GMT


Gary Tully resolved AMQ-1593.

    Resolution: Fixed

fixed in r739307

> redeliveryCounter not updated correctly when using XA transactions and Spring
> -----------------------------------------------------------------------------
>                 Key: AMQ-1593
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.0.0
>         Environment: Mac OS X 10.4, Java 1.6 DP1
>            Reporter: Sven Panko
>            Assignee: Gary Tully
>             Fix For: 5.3.0
>         Attachments:
> When using ActiveMQ 5 in combination with XA, I noticed that redelivery of messages is
not correctly performed. I am using XA in combination with Spring's DefaultMessageListenerContainer
(DMLC) and have a simple test case in which the MessageListener throws an IllegalStateException
which triggers a transaction rollback. After that, the message is redelivered, but unfortunately
not as many times as my redelivery policy specifies. I am using the following settings:
> - maximumRedeliveries=3
> - initialRedeliveryDelay=10
> If I am not mistaken this means I should receive the message 4 times (once initially
and then three times redelivered), but I only get it three times. When I log the messages
I receive prior to throwing an ISE, I see the following "inconsistency" with the redeliveryCounter:
the initial message has a counter value of 0, the first redelivery message has a counter value
of 2 and the second redelivery message has a counter value of 4. After that, I do not receive
an additional message.
> I created a simple test case attached to this issue (a Maven 2 project) which is configured
with the above settings and shows the described behavior. In order to run the test case, however,
you need the Bitronix Transaction Manager (v 1.2) in your local repository (since it is currently
not listed in one of the public repositories, you have to download it and put it manually
into the local repo). The download url is
and installation is done by unzipping the archive and using
> mvn -Dfile=btm-1.2.jar -DgroupId=btm -DartifactId=btm -Dversion=1.2 -DgeneratePom=true
-Dpackaging=jar install:install-file 
> to copy it to the repo.
> Spring's DMLC is set to a cacheLevel of 0 (CACHE_NONE) if an external transaction manager
is used. If I change the cacheLevel to 2 (CACHE_SESSION) then the correct number of messages
is delivered and the counter is correctly updated, so I am not sure whether this is an issue
with ActiveMQ or Spring. Anyways, I think I should not loose any messages if I use XA, regardless
of the cacheLevel setting...

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message