type=page
status=published
title=delete-application-ref
next=delete-audit-module.html
prev=delete-admin-object.html
~~~~~~
delete-application-ref
======================

[[delete-application-ref-1]][[GSRFM00064]][[delete-application-ref]]

delete-application-ref
----------------------

removes a reference to an application

[[sthref585]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] delete-application-ref [--help] 
[--target target]
[--cascade=false] reference_name
----

[[sthref586]]

Description

The `delete-application-ref` subcommand removes a reference from a
cluster or an unclustered server instance to an application. This
effectively results in the application element being undeployed and no
longer available on the targeted instance or cluster.

The target instance or instances making up the cluster need not be
running or available for this subcommand to succeed. If one or more
instances are not available, they will no longer load the application
the next time they start.

Removal of the reference does not result in removal of the application
from the domain. The bits are removed only by the `undeploy` subcommand.

This subcommand is supported in remote mode only.

[[sthref587]]

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`::
  Specifies the target from which you are removing the application
  reference. Valid values are +
  * `server`- Specifies the default server instance as the target.
  `server` is the name of the default server instance and is the default
  value.
  * cluster_name- Specifies a certain cluster as the target.
  * instance_name- Specifies a certain stand-alone server instance as
  the target.
`--cascade`::
  For a connector module, indicates whether the resources dependent on
  the module should also be recursively deleted. The default is `false`.
  The connector module can be either a stand-alone RAR file or a module
  within an EAR file.

[[sthref588]]

Operands

reference_name::
  The name of the application or module, which can be a Java EE
  application module, Web module, EJB module, connector module,
  application client module, or lifecycle module. +
  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 delete references to 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.

[[sthref589]]

Examples

[[GSRFM531]][[sthref590]]

Example 1   Deleting an Application Reference

The following example removes a reference to the Web module `MyWebApp`
from the unclustered server instance `NewServer`.

[source,oac_no_warn]
----
asadmin> delete-application-ref --target NewServer MyWebApp
Command delete-application-ref executed successfully.
----

[[sthref591]]

Exit Status

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

[[sthref592]]

See Also

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

link:create-application-ref.html#create-application-ref-1[`create-application-ref`(1)],
link:list-application-refs.html#list-application-refs-1[`list-application-refs`(1)],
link:undeploy.html#undeploy-1[`undeploy`(1)]

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


