type=page
status=published
title=list-http-lbs
next=list-http-listeners.html
prev=list-http-lb-configs.html
~~~~~~

list-http-lbs
=============

[[list-http-lbs-1]][[GSRFM00167]][[list-http-lbs]]

list-http-lbs
-------------

Lists load balancers

[[sthref1493]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-http-lbs [--help]
[--long={false|true}]
[--output output]
[--header={false|true}]
[name]
----

[[sthref1494]]

=== Description

Use the `list-http-lbs` subcommand to list physical load balancers.

[NOTE]
====
This subcommand is only applicable to Oracle GlassFish Server. This
subcommand is not applicable to GlassFish Server Open Source Edition.
====

[[sthref1495]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--long`::
`-l`::
  Displays detailed information about each load balancer. The default
  value is `false.`
`--output`::
`-o`::
  Displays specific details about each load balancer. Use a
  comma-separated list to specify the details you want to display and
  their order. For example,
  `list-http-lbs --output name,device-host,device-port`. The values are
  case-insensitive. +
  Possible values are as follows:

  `device-host`;;
    Displays the device host or the IP address of the load balancing
    device. This host or IP is where the physical load balancer resides.
  `name`;;
    Displays the name of the load balancer.
  `auto-apply-enabled`;;
    Displays whether the Auto Apply feature is enabled.
  `lb-config-name`;;
    Displays the name of the load balancer configuration.
  `device-port`;;
    Displays the port used to communicate with the load balancing device.

`--header`::
`-h`::
  Specifies whether column headings are displayed when the `--long`
  option is used. The default value is `true`. To suppress the headings,
  set the `--header` option to `false`.

[[sthref1496]]

=== Operands

name::
  The name of the load balancer for which you want to display details.

[[sthref1497]]

=== Examples

[[GSRFM661]][[sthref1498]]

==== Example 1   Listing Physical Load Balancers for a Domain

This example lists all physical load balancers defined for a domain.

[source]
----
asadmin> list-http-lbs

lb1
lb2
Command list-http-lbs executed successfully.
----

[[sthref1499]]

=== Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref1500]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-http-lb.html#create-http-lb-1[`create-http-lb`(1)],
link:delete-http-lb.html#delete-http-lb-1[`delete-http-lb`(1)]


