[ 
https://issues.apache.org/activemq/browse/AMQNET-176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=54880#action_54880
 ] 

Timothy Bish commented on AMQNET-176:
-------------------------------------

I'm in the process of rewriting a large majority of the code that deals with 
message dispatch and acknowledgement. Once that effort is complete we will 
certainly needs folks to test it and report back.  Stay tuned.

> Messages received by a transactional session are not redelivered when the 
> session dies before being commited.
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQNET-176
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-176
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: ActiveMQ
>    Affects Versions: 1.1.0
>         Environment: .NET 2.0 on Windows XP
>            Reporter: Daniel Ellis
>            Assignee: Timothy Bish
>             Fix For: 1.2.0
>
>         Attachments: ActiveMQ-Test.zip, Message to JMS transactional 
> session.pcap, Message to NMS transactional session.pcap
>
>
> In our testing we have discovered that messages are not redelivered as 
> expected when we are using a transactional session.  The test goes as 
> follows:-
> 1.  Create a connection and a transactional session.
> 2.  Create a queue consumer, add a listener and start the connection.
> 3.  Add a message to the queue, the message will arrive on the consumer.
> 4.  Kill the session (either dispose of the session and connection, or just 
> kill the process)
> 5.  Perform steps 1 & 2 again.
> Note that the message is not redelivered.
> We expect the message to be redelivered because the transaction was never 
> committed.  Looking at the Queues page on the web admin, you can see the 
> queue count is still 1.  So the message is still on the broker.
> To diagnose whether this is an NMS issue or an ActiveMQ issue, I created a 
> Java application to test this issue using JMS.
> The resulting behaviour is as expected when using JMS.  After the message is 
> received, I can either cleanly dispose the session, or kill the application, 
> and the message will be redelivered next time you start the app.
> I was a little confused as to why the message did not get redelivered, in the 
> example where I simply kill the process.  I would expect the broker to handle 
> NMS and JMS clients the same, as the TCP connection would simply be 
> terminated.
> I then noticed a difference between NMS and JMS, when looking in the web 
> admin.   When a message arrives on a JMS client the queue count shows 1, and 
> clicking on the queue shows the message still on the queue.  When a message 
> arrives on an NMS client, the queue count goes to 1, but clicking on the 
> queue shows no messages.
> Clearly, there is a difference between how JMS and NMS handle an incoming 
> message on a transactional session.  Could it be that NMS is sending an ack 
> for each message when it shouldn't?

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

Reply via email to