type=page
status=published
title=delete-custom-resource
next=delete-domain.html
prev=delete-context-service.html
~~~~~~

= delete-custom-resource

[[delete-custom-resource-1]][[GSRFM00074]][[delete-custom-resource]]

== delete-custom-resource

Removes a custom resource

[[sthref666]]

=== Synopsis

[source]
----
asadmin [asadmin-options] delete-custom-resource [--help]
[--target target] jndi-name
----

[[sthref667]]

=== Description

The `delete-custom-resource` subcommand removes a custom resource.

This subcommand is supported in remote mode only.

[[sthref668]]

=== 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 helps specify the location of the custom resources that
  you are deleting. Valid targets are server, domain, cluster, and
  instance. The default is server.
+
[NOTE]
====
Resources are always created for a domain as a whole but are only
active for targets for which a `<resource-ref>` has been created using
the `--target` option when the resource was created. This means that
deleting a resource only deletes the `<resource-ref>` element for the
specified `--target`, and does not delete the resource from the domain
as a whole unless `domain` is specified as the `--target` for the
deletion.
====

  `server`;;
    Deletes the resource for the default server instance. This is the
    default value.
  `domain`;;
    Deletes the resource for the domain.
  cluster_name;;
    Deletes the resource for every server instance in the cluster.
  instance_name;;
    Deletes the resource for a particular server instance.

[[sthref669]]

=== Operands

jndi-name::
  The JNDI name of this resource.

[[sthref670]]

=== Examples

[[GSRFM542]][[sthref671]]

==== Example 1   Deleting a Custom Resource

This example deletes a custom resource named `mycustomresource`.

[source]
----
asadmin> delete-custom-resource mycustomresource
Command delete-custom-resource executed successfully.
----

[[sthref672]]

=== Exit Status

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

[[sthref673]]

=== See Also

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

link:create-custom-resource.html#create-custom-resource-1[`create-custom-resource`(1)],
link:list-custom-resources.html#list-custom-resources-1[`list-custom-resources`(1)]


