1 Reply Latest reply on Apr 20, 2006 12:34 PM by brian.stansberry

    How is the partition name applied?

    wesleyhall

      I am trying to understand how the partition name is applied to the cluster. My initital impression was that two JBoss instances with two different partition names would treat each other are completely irrelevant, but this doesn't seem to be the case.

      My configuration currently has 4 JGroups configurations in the MBeans for...

      * org.jboss.ha.framework.server.ClusterPartition
      * org.jboss.cache.TreeCache (TomcatClusteringCache)
      * org.jboss.ejb3.cache.tree.PassivationTreeCache (EJB3SFSBClusteredCache)
      * org.jboss.cache.TreeCache (EJB3EntityTreeCache)

      Of these, only the first has any mention of the partition name. The rest will quite happily chat with all other servers listening on the same mcast_port regardless of the configured partition name. Is this the expected behaviour?

      As I have found the other JGroups configurations (for HTTP sessions, SFSB and Entities), I am starting to wonder what the ClusterPartition is actually used for. Seems the other groups have most of the actual functionality covered.

      I guess my question is whether the partition name is supposed to be applied to all of the JGroups (so it can be a true partition) or whether this is by design.

      Thanks

        • 1. Re: How is the partition name applied?
          brian.stansberry

          Yeah, this is confusing.

          Each of the configurations you listed creates it's own JGroups channel, so in reality you have 4 'partitions'. Each needs its own channel, because multiple services sharing the same channel doesn't work well. The major goal of the upcoming JGroups 2.3 release is to make it possible for multiple services to share the same channel. With that available, the default behavior in JBoss AS 5.x will be for the services you listed to share a channel, thus allowing a single 'partition'.

          For the 3 tree caches, suggest you change their config file to include something like this:

          <attribute name="ClusterName">Tomcat-${jboss.partition.name:Cluster}</attribute>


          <attribute name="ClusterName">SFSB-${jboss.partition.name:Cache}</attribute>


          <attribute name="ClusterName">Entity-${jboss.partition.name:Cache}</attribute>


          You can then set the value of the system property jboss.partition.name and the name of your 'logical partition' will be picked up by each of the channels.

          To set the system property:

          run.sh -g MyPartition (4.0.3 and later)

          or

          run.sh -Djboss.partition.name=MyPartition