type=page
status=published
title=enable
next=enable-http-lb-application.html
prev=disable-secure-admin-principal.html
~~~~~~

enable
======

[[enable-1]][[GSRFM00124]][[enable]]

enable
------

Enables the component

[[sthref1095]]

=== Synopsis

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

[[sthref1096]]

=== Description

The `enable` subcommand enables the specified deployed component. If the
component is already enabled, then it is re-enabled. If it has not been
deployed, then an error message is returned.

This subcommand is supported in remote mode only.

[[sthref1097]]

=== 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 enabling the
  component. Valid values are:

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

[[sthref1098]]

=== Operands

component_name::
  name of the component to be enabled. +
  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. 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. +
  At most one version of a module or application can be enabled on a
  server instance. All other versions are disabled. Enabling one version
  automatically disables all others.

[[sthref1099]]

=== Examples

[[GSRFM599]][[sthref1100]]

==== Example 1   Enabling a Component

This example enables the disabled component, `sampleApp`.

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

[[sthref1101]]

=== Exit Status

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

[[sthref1102]]

=== See Also

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

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

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


