type=page
status=published
title=delete-http-lb-ref
next=delete-http-listener.html
prev=delete-http-lb-config.html
~~~~~~
delete-http-lb-ref
==================

[[delete-http-lb-ref-1]][[GSRFM00081]][[delete-http-lb-ref]]

delete-http-lb-ref
------------------

deletes the cluster or server instance from a load balancer

[[sthref723]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] delete-http-lb-ref [--help] 
--config config_name | --lbname load_balancer_name
[--force=false] target
----

[[sthref724]]

Description

Use the `delete-http-lb-ref` subcommand to remove a reference to a
cluster or standalone server instance from a load balancer configuration
or load balancer. So that you do not interrupt user requests, make sure
the standalone server instance or all server instances in the cluster
are disabled before you remove them from the load balancer
configuration. If the `force` option is set to true, the references are
deleted even if server instances or clusters are enabled.


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

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

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


[[sthref725]]

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 delete cluster and
  server instance references from. +
  Specify either a load balancer configuration or a load balancer.
  Specifying both results in an error.
`--lbname`::
  Specifies the load balancer to delete cluster and server instance
  references from. +
  Specify either a load balancer configuration or a load balancer.
  Specifying both results in an error.
`--force`::
  If `force` is set to true, then the references are deleted even if
  there are currently enabled applications or instances. The default is
  false.

[[sthref726]]

Operands

target::
  Specifies which cluster or instance to remove from the load balancer.
  Valid values are: +
  * cluster_name- The name of a target cluster.
  * instance_name- The name of a target server instance.

[[sthref727]]

Examples

[[GSRFM550]][[sthref728]]

Example 1   Deleting a Cluster Reference from a Load Balancer
Configuration

This example deletes the reference to cluster named `cluster2` from a
load balancer configuration named `mycluster-http-lb-config`.

[source,oac_no_warn]
----
asadmin> delete-http-lb-ref --config mycluster-http-lb-config cluster2 

Command delete-http-lb-ref executed successfully.
----

[[sthref729]]

Exit Status

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

[[sthref730]]

See Also

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

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


