2 Replies Latest reply on Oct 12, 2011 6:13 AM by rhusar

    4.2.3 GA - TCP only active / passive clustering

    mo_

      Scenario

      We are using JBoss 4.2.3 GA in the "all" configuration. The goal here is to setup an active / passive cluster where the application ear files are deployed in a singleton fashion. We would like to use a TCP based jgroups stack. We have reconfigured cluster-service to comment out the UDP configuration and statically configured the two nodes to point to each other using TCP. We are also setting the partition name in the run.sh script to create separation between clusters.

       

      cluster-service.xml extract

      .....

      <!-- The JGroups protocol configuration -->

            <attribute name="PartitionConfig">

               <!-- Alternate TCP stack: customize it for your environment, change bind_addr and initial_hosts -->

               <Config>

                  <TCP bind_addr="${qtf.node1.host}" start_port="${ports.prefix}27" end_port="${ports.prefix}27" loopback="true"

                       tcp_nodelay="true"

                       recv_buf_size="20000000"

                       send_buf_size="640000"

                       discard_incompatible_packets="true"

                       enable_bundling="false"

                       max_bundle_size="64000"

                       max_bundle_timeout="30"

                       use_incoming_packet_handler="true"

                       use_outgoing_packet_handler="false"

                       down_thread="false" up_thread="false"

                       use_send_queues="false"

                       sock_conn_timeout="300"

                       skip_suspected_members="true"/>

                  <TCPPING initial_hosts="${qtf.node2.host}[${alternate.ports.prefix}27],${qtf.node1.host}[${alternate.ports.prefix}27]" port_range="1"

                           timeout="3000"

                           down_thread="false" up_thread="false"

                           num_initial_members="2"/>

                  <MERGE2 max_interval="100000"

                          down_thread="false" up_thread="false" min_interval="20000"/>

                  <FD_SOCK down_thread="false" up_thread="false"/>

                  <FD timeout="10000" max_tries="5" down_thread="false" up_thread="false" shun="true"/>

                  <VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false"/>

                  <pbcast.NAKACK max_xmit_size="60000"

                                 use_mcast_xmit="false" gc_lag="0"

                                 retransmit_timeout="300,600,1200,2400,4800"

                                 down_thread="false" up_thread="false"

                                 discard_delivered_msgs="true"/>

                  <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"

                                 down_thread="false" up_thread="false"

                                 max_bytes="400000"/>

                  <pbcast.GMS print_local_addr="true" join_timeout="3000"

                              down_thread="false" up_thread="false"

                              join_retry_timeout="2000" shun="true"

                              view_bundling="true"/>

                  <pbcast.STATE_TRANSFER down_thread="false" up_thread="false" use_flush="false"/>

               </Config>

            </attribute>

      ----

       

      Despite using a statically configured TCP stack, we are seeing the following WARN messages being logged every 10 seconds or so:

       

      2011-10-12 10:35:15,706 WARN  [org.jgroups.protocols.UDP] discarded message from different group "Tomcat-Cluster" (our group is "Tomcat-dvqtfau-").

       

      We are also seeing messages in the log indicating that the jboss is binding to a multicast ip address. I believe this is the cause of the un-intentional intercommunication with other jboss clusters on the same server:

       

      56822 2011-10-12 10:02:45,773 INFO  [org.jgroups.protocols.UDP] socket information: local_addr=10.135.4.162:54186, mcast_addr=230.1.2.7:45577, bind_addr=emgsydapp99/10.135.4.162, ttl=2

       

      I would like the jboss cluster to not bind to any multicast ip addresses. I want to be able to statically configure exactly what ip addresses and ports the jboss nodes communicate with. However, what i'm seeing is some sort of auto-discovery of other nodes, this doesnt seem to have any material impact since the partition names are different but it looks messy and reduces my confidence in the separation of multiple environments on the same server.