type=page
status=published
title=export-http-lb-config
next=export-sync-bundle.html
prev=export.html
~~~~~~
export-http-lb-config
=====================

[[export-http-lb-config-1]][[GSRFM00133]][[export-http-lb-config]]

export-http-lb-config
---------------------

exports the load balancer configuration or load balancer to a file

[[sthref1161]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] export-http-lb-config [--help] 
--config config_name | --lbname load_balancer_name 
[--target target] [--retrievefile=false] [file_name]
----

[[sthref1162]]

Description

The `export-http-lb-config` subcommand exports a load balancer
configuration or load balancer into a file that the load balancer
plug-in can use. The default file name is `loadbalancer.xml`, but you
can specify a different name. Once exported, you manually copy the
exported file to the load balancer plug-in location before configuration
changes are applied. The `--target` option makes it possible to generate
a `loadbalancer.xml` for clusters or standalone instances without having
to manually create `lb-config` or `load-balancer` elements in the
target's `domain.xml`.

To apply changes to the load balancer without manually copying the
configuration file, configure the load balancer to automatically apply
changes with `create-http-lb`. If you use the `create-http-lb`
subcommand, you do not need to use `export-http-lb-config`.


[NOTE]
=======================================================================

This subcommand is only applicable to Oracle GlassFish Server. This
subcommand is not applicable to GlassFish Server Open Source Edition.

=======================================================================


[[sthref1163]]

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.
`--config`::
  Specifies which load balancer configuration to export. +
  Specify either a load balancer configuration or a load balancer.
  Specifying both results in an error.
`--lbname`::
  Specifies the load balancer to export. +
  Specify either a load balancer configuration or a load balancer.
  Specifying both results in an error.
`--retrievefile`::
  If set to `true`, retrieves the `loadbalancer.xml` file from the
  remote machine. The default is `false`.
`--target`::
  Specifies the target to which the load balancer configuration will be
  exported. If a target is not specified, the load balancer
  configuration is exported to the location specified with file_name.

[[sthref1164]]

Operands

file_name::
  Specifies the file name and location of the exported configuration. +
  * If you specify a directory (relative or absolute) but not a file
  name, the file named `loadbalancer.xml.`load_balancer_config_name is
  created in the specified directory. On Microsoft Windows systems the
  path must be in quotes.
  * If you specify a file name in a relative or absolute path, the file
  is created with the name you specify in the directory you specify.
  * If you specify a file name but do not specify a directory, the file
  is created with that name in the current working directory.
  * If you do not specify this operand, the default value is a file
  named `loadbalancer.xml.`load_balancer_config_name created in the
  domain-dir`/generated` directory.
target::
  Specifies the target to which the configuration will be exported. +
  Valid values are: +
  * cluster_name- Specifies a cluster and its server instances.
  * stand-alone_instance_name- Specifies a specific server instance.

[[sthref1165]]

Examples

[[GSRFM612]][[sthref1166]]

Example 1   Exporting a Load Balancer Configuration on UNIX

The following example exports a load balancing configuration named
`mycluster-http-lb-config` to a file named `loadbalancer.xml` in the
`/Sun/AppServer` directory .

[source,oac_no_warn]
----
asadmin> export-http-lb-config --config mycluster-http-lb-config /Sun/AppServer/loadbalancer.xml
Command export-http-lb-config executed successfully.
----

[[GSRFM613]][[sthref1167]]

Example 2   Exporting a Load Balancer Configuration on Windows

The following example exports a load balancing configuration named
`mycluster-http-lb-config` to a file named `loadbalancer.xml` in the
`C:\Sun\AppServer` directory on a Microsoft Windows system.

[source,oac_no_warn]
----
asadmin> export-http-lb-config --config mycluster-http-lb-config "C:\Sun\AppServer\loadbalancer.xml"
Command export-http-lb-config executed successfully.
----

[[sthref1168]]

Exit Status

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

[[sthref1169]]

See Also

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

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


