type=page
status=published
title=delete-jmsdest
next=delete-jms-host.html
prev=delete-jdbc-resource.html
~~~~~~
delete-jmsdest
==============

[[delete-jmsdest-1]][[GSRFM00090]][[delete-jmsdest]]

delete-jmsdest
--------------

removes a JMS physical destination

[[sthref793]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] delete-jmsdest [--help]
--desttype type
[--target target]
dest_name
----

[[sthref794]]

Description

The `delete-jmsdest` subcommand removes the specified Java Message
Service (JMS) physical destination.

This subcommand is supported in remote mode only. Remote `asadmin`
subcommands require a running domain administration server (DAS).

[[sthref795]]

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.
`--desttype`::
  The type of the JMS destination. Valid values are `topic` and `queue`.
`--target`::
  Deletes the physical destination only from the specified target.
  Although the `delete-jmsdest` subcommand is related to resources, a
  physical destination is deleted using the JMS Service (JMS Broker),
  which is part of the configuration. A JMS Broker is configured in the
  config section of `domain.xml`. Valid values are as follows: +
  `server`;;
    Deletes the physical destination from the default server instance.
    This is the default value.
  configuration-name;;
    Deletes the physical destination from the specified configuration.
  cluster-name;;
    Deletes the physical destination from every server instance in the
    specified cluster.
  instance-name;;
    Creates the physical destination from the specified server instance.

[[sthref796]]

Operands

dest_name::
  The unique identifier of the JMS destination to be deleted.

[[sthref797]]

Examples

[[GSRFM558]][[sthref798]]

Example 1   Deleting a physical destination

The following subcommand deletes the queue named `PhysicalQueue`.

[source,oac_no_warn]
----
asadmin> delete-jmsdest --desttype queue PhysicalQueue
Command delete-jmsdest executed successfully.
----

[[sthref799]]

Exit Status

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

[[sthref800]]

See Also

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

link:create-jmsdest.html#create-jmsdest-1[`create-jmsdest`(1)],
link:flush-jmsdest.html#flush-jmsdest-1[`flush-jmsdest`(1)],
link:list-jmsdest.html#list-jmsdest-1[`list-jmsdest`(1)]


