type=page
status=published
title=stop-cluster
next=stop-database.html
prev=start-local-instance.html
~~~~~~

= stop-cluster

[[stop-cluster-1]][[GSRFM00238]][[stop-cluster]]

== stop-cluster

Stops a {productName} cluster

[[sthref2150]]

=== Synopsis

[source]
----
asadmin [asadmin-options] stop-cluster [--help]
[--verbose={false|true}]
[--kill={false|true}]
[--autohadboverride={true|false}]
cluster-name
----

[[sthref2151]]

=== Description

The `stop-cluster` subcommand stops a {productName} cluster by
stopping all running {productName} instances in the cluster.

This subcommand is supported in remote mode only.

[[sthref2152]]

=== 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.
`--verbose`::
  Specifies whether additional progress messages about the status of
  instances in the cluster are displayed while the cluster is being stopped. +
  Possible values are as follows:

  `true`;;
    Additional progress messages about the status of instances in the
    cluster are displayed.
  `false`;;
    No messages about the status of instances in the cluster are
    displayed.

`--kill`::
  Specifies whether each instance in the cluster is killed by using
  functionality of the operating system to terminate the instance
  process. +
  Possible values are as follows:

  `false`;;
    No instances are killed. The subcommand uses functionality of the
    Java platform to terminate each instance process (default).
  `true`;;
    Each instance is killed. The subcommand uses functionality of the
    operating system to terminate each instance process.

`--autohadboverride`::
  Do not specify this option. This option is retained for compatibility
  with earlier releases. If you specify this option, a syntax error does
  not occur. Instead, the subcommand runs successfully and displays a
  warning message that the option is ignored.

[[sthref2153]]

=== Operands

cluster-name::
  The name of the cluster to stop.

[[sthref2154]]

=== Examples

[[GSRFM764]][[sthref2155]]

==== Example 1   Stopping a Cluster

This example stops the cluster `pmdcluster`. Additional progress
messages about the status of instances in the cluster are displayed
while the cluster is being stopped.

[source]
----
asadmin> stop-cluster --verbose pmdcluster
stop-instance pmd-i-sj01
stop-instance pmd-i-sj02

The command stop-instance executed successfully for: pmd-i-sj01 pmd-i-sj02

Command stop-cluster executed successfully.
----

[[sthref2156]]

=== Exit Status

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

[[sthref2157]]

=== See Also

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

link:create-cluster.html#create-cluster-1[`create-cluster`(1)],
link:delete-cluster.html#delete-cluster-1[`delete-cluster`(1)],
link:list-clusters.html#list-clusters-1[`list-clusters`(1)],
link:start-cluster.html#start-cluster-1[`start-cluster`(1)]


