type=page
status=published
title=create-http-lb
next=create-http-lb-config.html
prev=create-http-health-checker.html
~~~~~~

create-http-lb
==============

[[create-http-lb-1]][[GSRFM00027]][[create-http-lb]]

create-http-lb
--------------

Creates a load balancer

[[sthref243]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-http-lb [--help]
--devicehost device_host_or_IP_address --deviceport device_port
[--sslproxyhost proxy_host]
[--sslproxyport proxy_port] [--target target] [--lbpolicy lbpolicy] [--lbpolicymodule lb_policy_module] [--healthcheckerurl url]
[--healthcheckerinterval 10] [--healthcheckertimeout 10]
[--lbenableallinstances=true] [--lbenableallapplications=true] [--lbweight instance=weight[:instance=weight]*] [--responsetimeout 60] [--httpsrouting=false] [--reloadinterval60][--monitor=false][--routecookie=true]
[--property (name=value)[:name=value]*
] load_balancer_name
----

[[sthref244]]

=== Description

Use the `create-http-lb` subcommand to create a load balancer, including
the load balancer configuration, target reference, and health checker. A
load balancer is a representation of the actual load balancer device,
defined by its device host and port information. Once you've created the
load balancer, you can automatically apply changes made to the load
balancer configuration without running `export-http-lb-config` and
manually copying the generated load balancer configuration file to the
web server instance.


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


[[sthref245]]

=== 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.
`--devicehost`::
  The device host or the IP address of the load balancing device. This
  host or IP is where the physical load balancer will reside.
`--deviceport`::
  The port used to communicate with the load balancing device. It must
  be SSL enabled.
`--sslproxyhost`::
  The proxy host used for outbound HTTP.
`--sslproxyport`::
  The proxy port used for outbound HTTP.
`--target`::
  Specifies the target to which the load balancer applies. +
  Valid values are:

  * cluster_name - Specifies that requests for this cluster will be
  handled by the load balancer.
  * stand-alone_instance_name - Specifies that requests for this
  stand-alone instance will be handled by the load balancer.

`--lbpolicy`::
  The policy the load balancer follows to distribute load to the server
  instances in a cluster. Valid values are `round-robin`,
  `weighted-round-robin`, and `user-defined`. If you choose
  `user-defined`, specify a load balancer policy module with the
  `lbpolicymodule` option. If you choose `weighted-round-robin`, assign
  weights to the server instances using the `configure-lb-weight`
  subcommand. The default is `round-robin`.
`--lbpolicymodule`::
  If your target is a cluster and the load balancer policy is
  `user-defined`, use this option to specify the full path and name of
  the shared library of your load balancing policy module. The shared
  library needs to be in a location accessible by the web server.
`--healthcheckerurl`::
  The URL to ping to determine whether the instance is healthy.
`--healthcheckerinterval`::
  The interval in seconds the health checker waits between checks of an
  unhealthy instance to see whether it has become healthy. The default
  value is 10 seconds. A value of 0 disables the health checker.
`--healthcheckertimeout`::
  The interval in seconds the health checker waits to receive a response
  from an instance. If the health checker has not received a response in
  this interval, the instance is considered unhealthy. The default value
  is 10 seconds.
`--lbenableallinstances`::
  Enables all instances in the target cluster for load balancing. If the
  target is a server instance, enables that instance for load balancing.
`--lbenableallapplications`::
  Enables all applications deployed to the target cluster or instance
  for load balancing.
`--lbweight`::
  The name of the instance and the weight you are assigning it. The
  weight must be an integer. The pairs of instances and weights are
  separated by colons. For example `instance1=1:instance2=4` means that
  for every five requests, one goes to instance1 and four go to
  instance2. A weight of 1 is the default.
`--responsetimeout`::
  The time in seconds within which a server instance must return a
  response. If no response is received within the time period, the
  server is considered unhealthy. If set to a positive number, and the
  request is idempotent, the request is retried. If the request is not
  idempotent, an error page is returned. If set to 0 no timeout is used.
  The default is 60.
`--httpsrouting`::
  If set to `true`, HTTPS requests to the load balancer result in HTTPS
  requests to the server instance. If set to `false`, HTTPS requests to
  the load balancer result in HTTP requests to the server instance. The
  default is `false`.
`--reloadinterval`::
  The time, in seconds, that the load balancer takes to check for an
  updated configuration. When detected, the configuration file is
  reloaded. The default value is 60 seconds. A value of 0 disables
  reloading.
`--monitor`::
  If set to `true`, monitoring of the load balancer is switched on. The
  default value is `false`.
`--routecookie`::
  This option is deprecated. The value is always true.
`--property`::
  Optional attribute name/value pairs for configuring the load balancer.

[[sthref246]]

=== Operands

lb_name::
  The name of the new load balancer. This name must not conflict with
  any other load balancers in the domain.

[[sthref247]]

=== Examples

[[GSRFM478]][[sthref248]]

==== Example 1   Creating a Load Balancer

This example creates a load balancer named `mylb`.

[source]
----
asadmin> create-http-lb
--devicehost host1 --deviceport 5555 mylb

Command create-http-lb executed successfully.
----

[[sthref249]]

=== Exit Status

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

[[sthref250]]

=== See Also

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

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


