You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "jiraposter@reviews.apache.org (Commented) (JIRA)" <ji...@apache.org> on 2011/10/20 18:25:12 UTC

[jira] [Commented] (QPID-3532) Fix the blocking of JMS operations when failover happens

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

jiraposter@reviews.apache.org commented on QPID-3532:
-----------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2469/
-----------------------------------------------------------

Review request for qpid and rajith attapattu.


Summary
-------

https://issues.apache.org/jira/browse/QPID-3532 describes some issues with non-blocking behaviour of 0-10 client failover.

This patch makes the 0-10 client hold the failover mutex during the failover. It also alters the Address resolution code to allow resolving addresses after failover and adds some more failover tests (inc ADDR based ones). Additionally, it makes the failover process notify any waiters in the session to abort and let failover proceed as they would otherwise prevent the failover from occurring until they timed out after 60 seconds.

This work does not go as far as we would like but still represents a functional improvement to failover. Additional improvements to the client locking model (such as an introduction a single connection lock) will require further iteration.

The patch was worked on by myself and Robbie.


This addresses bug QPID-3532.
    https://issues.apache.org/jira/browse/QPID-3532


Diffs
-----

  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java 1186863 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java 1186863 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java 1186863 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java 1186863 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java 1186863 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java 1186863 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java 1186863 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/failover/FailoverBehaviourTest.java 1186863 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/test-profiles/JavaPre010Excludes 1186863 

Diff: https://reviews.apache.org/r/2469/diff


Testing
-------


Thanks,

Oleksandr


                
> Fix the blocking of JMS operations when failover happens
> --------------------------------------------------------
>
>                 Key: QPID-3532
>                 URL: https://issues.apache.org/jira/browse/QPID-3532
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.13
>
>         Attachments: QPID-3532-make-the-0-10-client-hold-the-failover-mutex-during-failover.patch
>
>
> When connection is lost and failover is started the Qpid Client should block on invocation of JMS operations which require sending or receiving data over the network.
> With current implementation the performing of certain operations during failover can lead to unexpected behaviour.
> For example, closing QueueBrowsers during failover has been observed to cause  issues because it is possible to send the old subscription destination in a cancel command to the new broker as the close and failover are allowed to progress concurrently. As result of it the broker might close the session with a NOT_FOUND execution exception because failover has not finished queue re-creation on a new broker

--
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

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org