[
https://issues.apache.org/jira/browse/AMQ-5136?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13982938#comment-13982938
]
Sergiy Barlabanov commented on AMQ-5136:
----------------------------------------
Can anybody comment this issue? Any ideas when it will be fixed? The fix would
be quite easy: just add a correct rollback listener.
> MemoryUsage is not decremented on a JMS topic when rolling back a transacted
> session
> ------------------------------------------------------------------------------------
>
> Key: AMQ-5136
> URL: https://issues.apache.org/jira/browse/AMQ-5136
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.8.0, 5.9.0
> Reporter: Sergiy Barlabanov
> Attachments: activemqbug.zip
>
>
> When sending a message to a topic using a transacted session, memory usage is
> not decremented correctly when session.rollback is called. It is decremented
> on commit but not on rollback. This has quite bad consequences since after
> some time depending on the system memory usage settings and amount of rolled
> back messages, the broker starts to reject messages saying that Usage Manager
> memory limit is reached. The only solution is to restart the broker.
> I created a small Maven project (see the attachment) with a unit test
> starting an embedded broker and two test methods: one sending messages with
> session.commit and another with session.rollback(). The last one fails to
> assert the memory usage. In the output one can see quite a lot of error logs
> written by ActiveMQ. The problem is reproducible with 5.8.0 and 5.9.0.
> The problem seems to be in
> org.apache.activemq.broker.region.Topic#doMessageSend method where a
> transaction synchronization is registered. In the transaction synchronization
> only afterCommit is supplied, but no afterRollback. So there seems to be
> nobody calling message.decrementReferenceCount().
--
This message was sent by Atlassian JIRA
(v6.2#6252)