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,oac_no_warn]
----
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,oac_no_warn]
----
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]


