You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Andreas Calvo (JIRA)" <ji...@apache.org> on 2012/05/29 15:25:23 UTC

[jira] [Comment Edited] (AMQ-3353) Durable subscribers on durable topics don't receive messages after network disconnect

    [ https://issues.apache.org/jira/browse/AMQ-3353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13284802#comment-13284802 ] 

Andreas Calvo edited comment on AMQ-3353 at 5/29/12 1:25 PM:
-------------------------------------------------------------

@Gary,
We're still having the same issue.
It has become critical since it affects the brokers in a newtork of brokers when one of them is "pulled out" of the network and reconnected back after the inactivity timeout.
We'll try to update our test case with the latest stable release of 5.6 and report back.

A small snippet of the output after the client is being reconnected (removed broker pluged into the network):
jvm 1    |  INFO | brokerA Shutting down
jvm 1    |  WARN | Could not start network bridge between: vm://brokerA?async=false&network=true and: ssl://10.4.0.164:61616 due to: java.net.SocketTimeoutException: connect timed out
jvm 1    |  INFO | Establishing network connection from vm://brokerA?async=false&network=true to ssl://10.4.0.164:61616
jvm 1    |  INFO | Network connection between vm://brokerA#42 and ssl://10.4.0.164/10.4.0.164:61616(brokerB) has been established.

Notice how it is identified as connected it is not show as a durable subscriber in the topic.
                
      was (Author: acalvo):
    @Gary,
We're still having the same issue.
It has become critical since it affects the brokers in a newtork of brokers when one of them is "pulled out" of the network and reconnected back after the inactivity timeout.
We'll try to update our test case with the latest stable release of 5.6 and report back.
                  
> Durable subscribers on durable topics don't receive messages after network disconnect
> -------------------------------------------------------------------------------------
>
>                 Key: AMQ-3353
>                 URL: https://issues.apache.org/jira/browse/AMQ-3353
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.3.1, 5.5.0
>         Environment: Windows & Linux
> JDK 1.6
>            Reporter: Syed Faraz Ali
>            Assignee: Gary Tully
>             Fix For: 5.6.0
>
>         Attachments: DurableSubscriberWithNetworkDisconnectTest.java, TEST-org.apache.activemq.usecases.DurableSubscriberWithNetworkDisconnectTest.xml, test-results.ods
>
>
> I've set up a durable topic with the default (persistent) delivery mode on one machine that is publishing a simple text message every 5 seconds. I created a durable subscriber that consumes messages published to the above topic on another machine. I am using broker to broker communication between the two machines.
> I start up the two programs on either machine and see the messages coming through to the subscriber. If I then pull the network cable to disconnect the network between the two machines, wait for a minute and then plug it back in, my subscriber doesn't receive the messages any more. I can see from the output that the publisher is still publishing them (Temporary topics, non-durable queues all continue to sync up in our production environment, it is only the durable topics that don't work after network reconnect)
> If I were to tweak a setting on the publisher's broker (that was introduced only in 5.5.0), suppressDuplicateTopicSubscriptions=false, then the topics work correctly after network reconnect. But this may have other unintended consequences and I was hoping to get a better idea of:
> - is this a known issue ? if so, then are there any specific challenges that have caused it not to be fixed?
> - are other people out there using durable topics and subscribers without a failover option that have run into this problem? What have they done to work around?
> Here is how my subscriber and publisher are set up:
> Topic Publisher (Machine 1)
>         publisherConnection = connFactory.createConnection();
>         publisherConnection.setClientID( "ProducerCliID" );
>         publisherConnection.start();
>         session = publisherConnection.createSession( true, -1 );
>         Destination producerTopic = session.createTopic( TEST_TOPIC_NAME );
>         producer = session.createProducer( (Topic)producerTopic );
> ....
> ....
> ....
>     // On a timer, keep sending this out every 5 seconds
>                  String text = "HELLO " + count++;
>                 TextMessage msg = session.createTextMessage( text );
>                 System.out.println( "Sending TextMessage = " + msg.getText() );
>                 producer.send( msg );
>                 session.commit();
> Subscriber ( Machine 2):
>         Connection clientConnection = connFactory.createConnection();
>         clientConnection.setClientID("cliID");
>         clientConnection.start();
>         Session session = clientConnection.createSession( false, Session.AUTO_ACKNOWLEDGE );
>         Destination topic = session.createTopic( topicName );
>         MessageConsumer subscriber = session.createDurableSubscriber( (Topic)topic, "subName" );
>         TestMessageListener msgListener = new TestMessageListener( 1000 );
>         subscriber.setMessageListener( msgListener );
> .....
> .....
>          // TestMessageListener's onMessage method simply outputs the message:
>         public void onMessage(Message message)
>         {
>             if ( message instanceof TextMessage )
>             {
>                 System.out.println( "Message received = " + ((TextMessage)message) );
>             }
>         }
> I can provide the jars for you to run the program if need be.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira