4 Replies Latest reply on Sep 9, 2013 10:38 AM by pandes3

    Jboss 7.1 standalone cluster Queries

    pandes3

      Hi,

      In my environment I have three Jboss AS servers (7.1) in a standalone cluster and 3 Apache httpd server for web access.

       

      The httpd servers are loadbalaced via a physical loadbalancer and we have Mod_Cluster enabled for application load balancing from httpd.

       

      From each Jboss instances I am advertising to all the three httpd servers.

       

      I had few query regarding application load balancing

       

      1) how does the httpd decide which Jboss server to go for next request, because all the three Jboss are advertising themselves to all the three httpd servers ?

       

      2) If one of my jboss server is having problems (OOM etc) and not gracefully down, will the httpd identify this and future request will not be sent to the impacted jboss server ?

       

      I am going through the mod_cluster documentation, but information from experts would be appreciated.

       

      Regards

        • 1. Re: Jboss 7.1 standalone cluster Queries
          rhusar

          1) how does the httpd decide which Jboss server to go for next request, because all the three Jboss are advertising themselves to all the three httpd servers ?

          By load factor. The server with the most available capacity is chosen. If you have advertizing configured, all JBoss nodes will register with all available HTTPd nodes.

           

          2) If one of my jboss server is having problems (OOM etc) and not gracefully down, will the httpd identify this and future request will not be sent to the impacted jboss server ?

          Sure. If the connection becomes broken, the server is marked in error state and no requests are sent to it until it recovers.

          • 2. Re: Jboss 7.1 standalone cluster Queries
            pandes3

            Hi Rado,

             

            Thank you for the reply

             

            Below is my configuration for apache, I assume jboss is advertising to all the three httpd servers

             

            <mod-cluster-config advertise-socket="modcluster" proxy-list="IP_ADD1, IP_ADD2,IP_ADD3">

             

            <dynamic-load-provider>

                                <load-metric type="busyness"/>

            </dynamic-load-provider>

            </mod-cluster-config>

             

            When you say the loadbalancing factor will select server with the most available capacity is chosen, to test this if I stop one of my jboss for a day and restart then will all the new load will be on this Jboss server till load is equally balanced on all the three servers ?

             

            Also how can I confirm whether the Jboss clustering is working, the same apps\War are deployed on all the three servers.

             

            Thanks and Regards

             

             

             


            • 3. Re: Jboss 7.1 standalone cluster Queries
              rhusar

              If you configure proxy-list manually, the automatic discovery will not be used. Automatic discovery uses UDP multicast for discovery.

               

              You typically want to use sticky-sessions if your sessions store some state (e.g. logged in user). Therefore, the load is used for selecting node for the first request, rest are sticky and only stay on one server. In case of that server failure, the session is redirected to different node.

               

              For setup try this document:

               

              AS7 Cluster Howto - JBoss AS 7.1 - Project Documentation Editor

              • 4. Re: Jboss 7.1 standalone cluster Queries
                pandes3

                Hi Rado,

                 

                Thanks for the information.

                 

                I have configured sticky sessions and the configuration is working fine, but now I see another issue. I am monitoring Jboss via visual VM and I can see the threads keep on increasing and lot of these threads are AJP threads on port 8009 (Below is a example)

                 

                ajp--IP_ADDRESS-8009-828" - Thread t@1698

                   java.lang.Thread.State: WAITING

                  at java.lang.Object.wait(Native Method)

                  - waiting on <5fccfab8> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)

                  at java.lang.Object.wait(Object.java:503)

                  at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:885)

                  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:911)

                  at java.lang.Thread.run(Thread.java:722)

                 

                Is this a bug, or whether I can fix this with some additional configuration ?

                 

                Regards