[jboss-jira] [JBoss JIRA] Created: (JBMESSAGING-1180) Provide failover for Subscriptions

Jay Howell (JIRA) jira-events at lists.jboss.org
Wed Dec 5 10:15:51 EST 2007


Provide failover for Subscriptions
----------------------------------

                 Key: JBMESSAGING-1180
                 URL: http://jira.jboss.com/jira/browse/JBMESSAGING-1180
             Project: JBoss Messaging
          Issue Type: Feature Request
          Components: Messaging Core
    Affects Versions: 1.4.0.SP2
            Reporter: Jay Howell
         Assigned To: Tim Fox


We should be able to set a switch in the TopicConnectionFactory that will allow us to configure multiple subscribers with the same clientid.  

Currently I see no easy way to failover if you have a subscription.   Normally in a clustered situation, I would have several servers that would act as failover/loadbalanancing.  For the fail over part, I would have MDBs scattered accross my cluster which would give me redundancy.  If I have a durable subscriber MDB(with a specified clientid), I can only deploy that mdb on one of the nodes due to the limitations imposed by the spec.   

The only way to currently do this in jboss would be to deploy the mdb in the hasingleton.  Then as the master went down, the mdb would fire up on the secondary.  Basically the connection would abruptly end and then another server would try to establish the connection using the same client id.  The problem is that we would have to wait for the connection on the serverside to timeout, before the new master could connect. If the failover happens to quickly, we could get an exception that the clientid is already registered.  This work around works great for jboss serverside failover, but doesn't do much for external clients.  For example, If I have a BEA cluster that wants durable subscription failover using JBM, they would have to come up with a way to host a singleton in their cluster.  It would be easier to provide this with JBM.

I would propose that we add a switch to the TopicConnectionFactory that relaxes this limitation set by the spec.  It would allow multiple subscribers to share the same subscription with the limitation that only one of them will ever get messages.  If that one connection goes down, then JBM will start publishing the messages to one of the other subscribers that share that same subscription.

I encountered this in another messaging system and it seems like a way to provide better failover outside of the jboss app server.  This would also simplify the clustering of durable subscriptions.  A user could come up with their mdbs(with client ids defined) and could just copy the deployment to each server in the cluster, without having to take their durable subscriber mdbs and put them in HASingleton.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list