1 Reply Latest reply on Jun 9, 2004 2:48 PM by pjaromin

    Multiple Clusters In Multiple Grid Environments

    jiwils

      We are going to be dynamically deploying JBoss clusters in multiple grid environments. Obviously, we do not want every grid node in the same partition, so we need a way to dynamically deploy nodes that will exist in different partitions.

      This is problematic because various SARs depend on the name "DefaultPartition", so when changing the partition name, we have to update all of the relevant SAR deployment descriptors as well.

      This is further complicated when deploying clustered EJBs. When the EJB is built we may not know the name of the cluster that it will be deployed in, and by default, a clustered EJB looks for "DefaultParition" unless the partition is explicity named in the EJB's jboss.xml deployment descriptor.

      Previous posts have indicated that the easiest way to get around cluster partition naming is to change the UDP port, but this means that I have to have a central repository of UDP port numbers that are already in use in deployed JBoss clusters.

      Are there any ideas how I might go about solving this? Could I utilize system property substition in the deployment descriptors in combination with customized property defintions (-D) on the command line?

      It seems to me that I should be able to name the default parition so that I can keep different clusters seperate, but that deployed components should lookup the default partition without looking for the name "DefaultPartition" explicitly. Is this kind of thing possible?

        • 1. Re: Multiple Clusters In Multiple Grid Environments
          pjaromin

          FWIW, I am in the process of migrating to 3.2.4. I currently use maven to generate our new server instances and have been using token replacement for this particular property up to now.

          I've employed a system property strategy (-Dtomcat.id with corresponding edits to the tomcat server.xml file) for the jvmRoute and thought I would test your idea to do the same with the cluster partition name. I made the following edits in my test environment:

          in deploy/cluster-service.xml:

          changed :
          <attribute name="PartitionName">DefaultPartition</attribute>
          
          to:
          <attribute name="PartitionName">${partition.name}</attribute>
          


          and in deploy/jbossha-httpsession.sar/ClusteredHttpSessionEB.jar/META-INF/jboss.web

          changed:
          <cluster-config>
           <partition-name>DefaultPartition</partition-name>
          </cluster-config>
          
          to:
          <cluster-config>
           <partition-name>${partition.name}</partition-name>
          </cluster-config>
          



          Then I passed in -Dpartition.name to the startup. This had the expected results -- the cluster was setup with the passed in name.

          These are the only clustered services installed in my test server, but I assume the same would work for others.