6 Replies Latest reply on Mar 30, 2009 5:59 PM by brian.stansberry

    Windows NLB does not work with Jboss-4.2.3.GA

      Hi All,

      I have been using JBoss 4.0.3. There are two JBoss running on two different machines, and a Windows NLB configured for Load Balancing. It was working fine.

      Recently I have migrated from JBoss 4.0.3 to JBoss-4.2.3.GA. There are two JBoss running on two different machines and the Windows NLB configurations are the same. But, this does not work.

      Let us say my two machines are on the IP 1.1.1.1 and 2.2.2.2
      NLB VIP is 3.3.3.3

      I'm able to view the JBoss console when I access it through
      http://1.1.1.1:8080
      and
      http://2.2.2.2:8080.
      But I'm not able to get any response on
      http://3.3.3.3:8080

      This was happening with the old version of JBoss.

      Could anyone help me out with if I am missing any configuration.

      Thanks in advance,
      Ashly.

        • 1. Re: Windows NLB does not work with Jboss-4.2.3.GA

          Hi,

          "This was happening with the old version of JBoss" - Means Windows NLB used to work with JBoss 4.0.3.

          -Ashly.

          • 2. Re: Windows NLB does not work with Jboss-4.2.3.GA
            brian.stansberry

            I don't know any reason why if this worked before it shouldn't still work with 4.2.3. By default 4.2.3 binds sockets to localhost if you don't pass a -b value to run.bat. But you say you can access the node via http://1.1.1.1:8080 so that doesn't sound like the problem.

            • 3. Re: Windows NLB does not work with Jboss-4.2.3.GA

              Hi Brian,

              Yes, I started JBoss with -b option. ie,
              run -b 1.1.1.1
              and
              run -b 2.2.2.2

              Is there any specific changes to be made in any of the XML files to specify the NLB IP address?

              Other diffrence I noticed between JBoss 4.0.3 and 4.2.3 is, when I start 4.0.3 with the command 'run', it binds to localhost as well as the machine IP/Hostname. But this does not happen with 4.2.3. Any specific reason for this change?

              Thanks,
              -ashly.

              • 4. Re: Windows NLB does not work with Jboss-4.2.3.GA
                brian.stansberry

                4.0.3 would bind to all interfaces, localhost included, if you didn't use -b. Binding to all interfaces by default wasn't secure.

                Try this:

                run -b 0.0.0.0

                which will bind to all interfaces. If you are using the "all" config that could lead to issues though, which we can get into if the above helps.

                I don't use Windows NLB so I can't comment on config details, beyond saying there's nothing in the AS configuration specifically oriented toward integrating with it.

                • 5. Re: Windows NLB does not work with Jboss-4.2.3.GA

                  Thanks Brian. It worked !!!!

                  But, as you mentioned, I'm running my servers on "all" configuration. I will test this out and let you know the results.
                  Is there any configuration changes that you suggest to run in all configuration?

                  Thanks,
                  -Ashly.

                  • 6. Re: Windows NLB does not work with Jboss-4.2.3.GA
                    brian.stansberry

                    Good; glad you are making progress.

                    If you are running with the all config, use this:

                    run -c all -b 0.0.0.0 -Djgroups.bind_addr=1.1.1.1 (or 2.2.2.2)

                    JGroups will ignore 0.0.0.0 and pick an interface; using -Djgroups.bind_addr=1.1.1.1 lets you specify which.

                    Also, clustering's HAPartition service uses the -b value plus the JNDI port (1099 by default) to make up a unique id for each node. If you use -b 0.0.0.0 (or -b 127.0.0.1) each node will come up w/ the same name -- not unique, which may lead to problems. To work around this you can manually specify the name by editing the cluster-service.xml file, replacing:

                    <attribute name="NodeAddress">${jboss.bind.address}</attribute>


                    with

                    <attribute name="NodeAddress">${jgroups.bind_addr}</attribute>