Ken Hall created AMQ-6240:
-----------------------------

             Summary: Producer cannot be terminated when slow consumer is 
detected
                 Key: AMQ-6240
                 URL: https://issues.apache.org/jira/browse/AMQ-6240
             Project: ActiveMQ
          Issue Type: Bug
          Components: Connector
    Affects Versions: 5.13.2
         Environment: The test was run using an out of the box install of 
ActiveMQ 5.13.2 on Windows 7 Professional (64 bit). 

The java version used was jdk1.8.0_60
            Reporter: Ken Hall


There is a discussion relating to the bug here - 
http://activemq.2283324.n4.nabble.com/Force-Producer-to-fail-when-blocked-by-slow-consumer-td4710264.html.
 Test code to reproduce the problem  has also been uploaded to this discussion.

We have  a situation where we have a producer which is feeding a slow consumer.
The consumer belongs to a third party so we do not have control over the broker 
configuration.
We would like to terminate our producer but we find that we cannot do so. We 
can set the timeout on the connection and we then trap the timeout exception. 
The problem is that when we try to close the session it attempts to rollback 
but cannot do so as the rollback blocks.

We have created a small test that is included in the zip (mentioned above) of 
an Eclipse project.The zip includes three classes. Call the main method of 
RunTest to run the test. The activemq.xml used is in the root directory of the 
project. 

The program will timeout after 51 messages and attempt to close the session. 

It eventually locks in this line: 

            this.connection.syncSendPacket(info); 

in the rollback method of the TransactionContext class.

We believe that the most sensible solution to this is that the rollback should 
respond to the same timeout as the connection.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to