type=page
status=published
title=show-component-status
next=start-cluster.html
prev=set-web-env-entry.html
~~~~~~

= show-component-status

[[show-component-status-1]][[GSRFM00232]][[show-component-status]]

== show-component-status

Displays the status of the deployed component

[[sthref2101]]

=== Synopsis

[source]
----
asadmin [asadmin-options] show-component-status [--help]
[--target target] component-name
----

[[sthref2102]]

=== Description

The `show-component-status` subcommand gets the status (either enabled
or disabled) of the deployed component.

This subcommand is supported in remote mode only.

[[sthref2103]]

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

  `server`;;
    Shows the component status for the default server instance `server`
    and is the default value.
  `domain`;;
    Shows the component status for the domain.
  cluster_name;;
    Shows the component status for the cluster.
  instance_name;;
    Shows the component status for a clustered or stand-alone server
    instance.

[[sthref2104]]

=== Operands

component-name::
  The name of the component whose status is to be listed. +
  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 list 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.

[[sthref2105]]

=== Examples

[[GSRFM757]][[sthref2106]]

==== Example 1   Showing the Status of a Component

This example gets the status of the `MEjbApp` component.

[source]
----
asadmin> show-component-status MEjbApp
Status of MEjbApp is enabled
Command show-component-status executed successfully.
----

[[sthref2107]]

=== Exit Status

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

[[sthref2108]]

=== See Also

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

link:list-applications.html#list-applications-1[`list-applications`(1)],
link:list-sub-components.html#list-sub-components-1[`list-sub-components`(1)]

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


