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

[[create-http-health-checker-1]][[GSRFM00026]][[create-http-health-checker]]

create-http-health-checker
--------------------------

creates a health-checker for a specified load balancer configuration

[[sthref235]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] create-http-health-checker [--help] 
[--url "/"]
[--interval 30] [--timeout 10]
[--config config_name] target
----

[[sthref236]]

Description

The `create-http-health-checker` subcommand creates a health checker for
a specified load balancer configuration. A health checker is unique for
the combination of target and load balancer configuration.


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

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

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


[[sthref237]]

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.
`--url`::
  The URL to ping to determine whether the instance is healthy.
`--interval`::
  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 30 seconds. A value of 0 disables the health checker.
`--timeout`::
  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.
`--config`::
  The load balancer configuration for which you create the
  health-checker. If you do not specify a configuration, the subcommand
  creates a health checker for every load balancer configuration
  associated with the target. If no configuration references the target,
  the subcommand fails.

[[sthref238]]

Operands

target::
  Specifies the target to which the health checker applies. +
  Valid values are: +
  * cluster_name- The name of a target cluster.
  * instance_name- The name of a target server instance.

[[sthref239]]

Examples

[[GSRFM477]][[sthref240]]

Example 1   Creating a Health Checker for a Load Balancer Configuration

This example creates a health checker for a load balancer configuration
named `mycluster-http-lb-config` on a cluster named `mycluster`.

[source,oac_no_warn]
----
asadmin> create-http-health-checker --config mycluster-http-lb-config mycluster

Command create-http-health-checker executed successfully.
----

[[sthref241]]

Exit Status

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

[[sthref242]]

See Also

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

link:delete-http-health-checker.html#delete-http-health-checker-1[`delete-http-health-checker`(1)]


