dev@glassfish.java.net

Re: asadmin get command for lb host and http port

From: Vince Kraemer <vince.kraemer_at_oracle.com>
Date: Tue, 19 Jul 2011 09:54:32 -0700

Kshitiz Saxena wrote:
> Hi Vince,
>
> Tom has captured details of load-balancer config correctly in his
> mail. However it is not that straight forward.
> 1. The configured device-port is SSL port of web server. However there
> is no strict requirement for a load-balancer element to be present. A
> lbconfig is sufficient to generate load-balancer xml. The
> load-balancer element is required if administrator wants to push
> load-balancer xml over the wire to web server. This feature is
> available for Oracle iPlanet Web Server and Apache, but not available
> for IIS.

OK. So, I think you are saying... The data in the domain.xml for the LB
device-port is the port that lets an admin send the lb configuration
updates to the lb... It is not the port used for sending http requests
through the lb to a cluster or instance (from a user to an application).

> 2. Also after deploy, changes are not automatically propagated to
> load-balancer plugin deployed on web server. You will have to run
> apply-http-lb-changes command to propagate those changes to
> load-balancer plugin and then probably need to wait(governed by
> property
> lb-configs.lb-config.<config-name>.reload-poll-interval-in-seconds)
> till these changes are picked up.
> 3. A cluster or standalone instances may be fronted by many
> load-balancers.
>
> Though I like your idea about end to end testing, there are still some
> gaps which does not allow coverage for all cases.

OK. Thanks for the background info.

vbk

>
> Thanks,
> Kshitiz
> Sun, an Oracle Company.
>
>
> On 18/07/11 7:19 PM, Tom Mueller wrote:
>>
>>
>> On 7/17/2011 7:31 PM, vince kraemer wrote:
>>> Hi all,
>>>
>>> I know how to 'get' the hostname and port for the instances that
>>> make up a cluster... but I assume that at some point an admin will
>>> hide all these details behind a load balancer.
>>>
>>> Once that happens, it doesn't make sense to have something like an
>>> IDE dig out the name/port combinations. The IDE should run traffic
>>> that it generates through the load balancer... so the app/config
>>> gets tested end-to-end.
>>>
>>> What combination of get commands would I need to execute to determine:
>>>
>>> 1. that an LB is configured to 'handle' a particular cluster and/or
>>> stand-alone instance?
>> An lb-config element has a cluster-ref-or-server-ref list. So look in:
>>
>> lb-configs.lb-config.<lbcname>.cluster-ref-or-server-ref-list
>>
>> for the name of the cluster or standalone instance. Then use that
>> <lbcname> to find a load-balancer that references it:
>>
>> load-balancers.load-balancer.<lbname>.lb-config-name=<lbcname>
>>
>> Then use the <lbname> to look up the host/port:
>>
>> load-balancers.load-balancer.<lbname>.device-host
>> load-balancers.load-balancer.<lbname>.device-port
>>
>> Kshitiz can confirm of this is correct.
>>
>> Tom
>>
>>
>>
>>>
>>> 2. the hostname and port (and any other necessary info) so the IDE
>>> can open the browser correctly when a user selects the Run item on a
>>> project that is deployed onto a GF 3.1 cluster and/or instance?
>>>
>>> Thanks,
>>> vbk
>>>