activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sven Panko (JIRA)" <j...@apache.org>
Subject [jira] Created: (AMQ-1593) redeliveryCounter not updated correctly when using XA transactions and Spring
Date Fri, 22 Feb 2008 09:51:14 GMT
redeliveryCounter not updated correctly when using XA transactions and Spring
-----------------------------------------------------------------------------

                 Key: AMQ-1593
                 URL: https://issues.apache.org/activemq/browse/AMQ-1593
             Project: ActiveMQ
          Issue Type: Bug
    Affects Versions: 5.0.0
         Environment: Mac OS X 10.4, Java 1.6 DP1
            Reporter: Sven Panko
         Attachments: activemq-redeliverytest.zip

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 http://dist.codehaus.org/btm/1.2/btm-dist-1.2.zip
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.


Mime
View raw message