dev@glassfish.java.net

Review of http-lb commands and some other questions....

From: vince kraemer <Vince.Kraemer_at_Sun.COM>
Date: Thu, 24 Aug 2006 15:20:34 -0700

satish viswanatham wrote:
> vince kraemer wrote:
>
> [snip]
>>
>> Do you have a set of use-cases for the features of the lb plugin?
>>
>> Is there a dtd/schema for the loadbalancer.xml file?
>
> Yes. it is at $AS-INSTALLlib/lbplugin/lib/dtds

I can see why you want to automate the generation of the loadbalancer.xml...

Possible bad attribute name or a doc error:
disable-timeout-in-minutes... The doc says seconds.... (see lines 39 and
40 of
http://fisheye5.cenqua.com/browse/glassfish/admin-ee/lb-admin/dtds/sun-loadbalancer_1_2.dtd?r=1.1.1.1)

>
>> Is there any kind of map between the elements of the lbxml and the
>> asadmin commands that manipulate the object created by the
>> create-http-lb-config command?
>>
> I can write a short blog about that, but we have descriptions and all
> the use cases and commands are described at
> http://docs.sun.com/app/docs/doc/819-2555/6n4r9qo8h?a=view
>

http://docs.sun.com/app/docs/doc/819-2555/6n4r9qo8h?a=view#abdht

What command would be used to change the
response-timeout/HTTPS-routing/reload-interval/monitor/routecookie of an
established http-lb-config object?

It seems like routecookie is not documented correctly....

What happens if I use delete-http-lb-config, but do not delete the
loadbalancer.xml file from the machine that has the lb installed?

Why does the user need to remove-http-lb-ref the instances and clusters
BEFORE they can execute the delete-http-lb-config command?

http://docs.sun.com/app/docs/doc/819-2555/6n4r9qo8h?a=view#abdhu

I have a real problem mapping create-http-lb-ref to content in the
loadbalancer.xml....

Consider a domain that has a stand-alone instance (sai1) and a cluster
(c1) that consists of two clustered instances (ci1, ci2)....

If I create an http-lb-config, without a target, I assume that I get
something like:

<loadbalancer/>

[I would end up with some property elements IF I had given them as
arguments to the create-http-lb-config command.... right?]

So, when I create a ref to sai1 I think I end up with something like
this....

<loadbalancer>
    <cluster name="sai1"><instance name="sai1" enabled="false"
listeners="http://sai1:8080"/></cluster>
</loadbalancer>

Which command allows me to set or change the policy attribute of the
cluster element?

Which command allows me to set/change the listeners/weight attribute of
the instance element? If I add a new http-listener to an instance, does
that get added automatically to the config?

Which command allows me to set/change the disable-timeout-in-minutes
attribute of the instance element?

Is there a command/DD element that would change the
"session idle timeout" that is referred to on line 45 of
http://fisheye5.cenqua.com/browse/glassfish/admin-ee/lb-admin/dtds/sun-loadbalancer_1_2.dtd?r=1.1.1.1

Is the default disable-timeout-in-minutes really 31 or is it
"session idle timeout"+1?

Is the user required to execute disable-http-lb-server before they can
execute delete-http-lb-ref? The document strongly implies that the user
must do one then the other? Why is that? Why can't we give the user a
SINGLE command to delete the ref? [That command may perform a disable
"under the covers"]

http://docs.sun.com/app/docs/doc/819-2555/6n4r9qo8h?a=view#abdhv

Is there a way to enable all the servers in a config with just one
command? Something like:

asadmin enable-http-lb-servers <config object name>

or

asadmin enable-http-lb-server -config <config object name>

It seems like the only way to do this today is to enter an
enable-http-lb-server command for each server or cluster that may be in
the config... That seems like it would be error prone... (people
forgetting to enable an instance or cluster)...

The same comment would apply to disable.

http://docs.sun.com/app/docs/doc/819-2555/6n4r9qo8h?a=view#abdhw

I have a similar question/suggestion for applications as the one I just
made for servers...

It looks like enable-http-lb-application implies a
create-http-lb-application operation (adds a web-module entry into the
http-lb-config...). How do I delete a web-module entry from an
http-lb-config? Is there a remove-http-lb-application command that I
missed?

What command is used to set/change the attributes of a web-module element?

What happens if the user undeploys an app that is enabled for load
balancing?

http://docs.sun.com/app/docs/doc/819-2555/6n4r9qo8h?a=view#abdhx

How do I change the value of the properties that were used/defaulted
when I created a health-checker?

It looks like the health-checker has additional properties, like
active-healthcheck-enabled that are set via the property sub-element of
loadbalancer... Why doesn't the health-checker element have a property
sub-element for them?

I hope these questions and comments contribute to the development of a
better user experience for folks that need to create production sites on
Glassfish v2.

vbk