2 Replies Latest reply on Mar 26, 2009 5:04 AM by timfox

    What if singleton JBM starts on two servers?

    szhigunov

      We are about to go production on the following configuration:
      1) Two JBoss servers are in the cluster for failover purpose.
      2) JBM is deployed as a singleton, so expected to run on one JBoss at a time.
      3) Remote JMS clients connect through HAJNDI.

      The question was raised, what if connectivity between JBoss servers lost. Each server will think it is the only one in the cluster and start JBM.
      So we will end up with two JBM running against the same database at the same time.

      Understand it was not designed for. The question is what may happen? Data corruption? Messages lost? Duplicate messages? Order broken? All of the above? There were instances when the connectivity through specific port was lost.

      JBoss 4.2.2 + JBM 1.4.0.SP3

        • 1. Re: What if singleton JBM starts on two servers?
          gaohoward

          I think in that case you will lost the failover capability.

          • 2. Re: What if singleton JBM starts on two servers?
            timfox

            This is a classic description of a network partition (split brain) scenario.

            JBM 1.x does not have any specific code for preventing split brain from occurring. For JBM 1.x we recommend mitigating this by e.g. using IP bonding to reduce the probability of this occurring.

            If it does occur, duplicate delivery of messages is possible. If this is a major problem in the application, we recommend the user implements application level duplicate detection to weed out any duplicates.

            JBM 2.0 will have "split brain" detection. This has been discussed on JIRA and on the forums.