type=page
status=published
title=disable
next=disable-http-lb-application.html
prev=deploydir.html
~~~~~~

= disable

[[disable-1]][[GSRFM00116]][[disable]]

== disable

Disables the component

[[sthref1039]]

=== Synopsis

[source]
----
asadmin [asadmin-options] disable [--help]
[--target target_name] component_name
----

[[sthref1040]]

=== Description

The `disable` subcommand immediately disables the specified deployed
component. If the component has not been deployed, an error message is
returned.

This subcommand is supported in remote mode only.

[[sthref1041]]

=== 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.
`--target`::
  This option specifies the target on which you are disabling the
  component. Valid values are:

  `server`;;
    Disables the component on the default server instance `server` and
    is the default value.
  domain_name;;
    Disables the component on the named domain.
  cluster_name;;
    Disables the component on every server instance in the cluster.
  instance_name;;
    Disables the component on a particular clustered or stand-alone
    server instance.

[[sthref1042]]

=== Operands

component_name::
  name of the component to be disabled. +
  The name can include an optional version identifier, which follows the
  name and is separated from the name by a colon (`:`). The version
  identifier must begin with a letter or number. It can contain
  alphanumeric characters plus underscore (`_`), dash (`-`), and period
  (`.`) characters. To disable multiple versions, you can use an
  asterisk (`*`) as a wildcard character. For more information about
  module and application versions, see "link:../application-deployment-guide/overview.html#GSDPG00324[Module and
  Application Versions]" in GlassFish Server Open Source Edition
  Application Deployment Guide.

[[sthref1043]]

=== Examples

[[GSRFM590]][[sthref1044]]

==== Example 1   Disabling a Component

This example disables the deployed component `sampleApp`.

[source]
----
asadmin> disable sampleApp
Command disable executed successfully
----

[[sthref1045]]

=== Exit Status

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

[[sthref1046]]

=== See Also

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

link:deploy.html#deploy-1[`deploy`(1)],
link:enable.html#enable-1[`enable`(1)],
link:undeploy.html#undeploy-1[`undeploy`(1)]

link:../application-deployment-guide/toc.html#GSDPG[GlassFish Server Open Source Edition Application Deployment
Guide]


