type=page
status=published
title=delete-connector-resource
next=delete-connector-security-map.html
prev=delete-connector-connection-pool.html
~~~~~~

delete-connector-resource
=========================

[[delete-connector-resource-1]][[GSRFM00071]][[delete-connector-resource]]

delete-connector-resource
-------------------------

Removes the connector resource with the specified JNDI name

[[sthref633]]

=== Synopsis

[source]
----
asadmin [asadmin-options] delete-connector-resource [--help]
[--target target] jndi_name
----

[[sthref634]]

=== Description

The `delete-connector-resource` subcommand removes the connector
resource with the specified JNDI name.

This subcommand is supported in remote mode only.

[[sthref635]]

=== 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 from which you want to remove the
  connector resource. Valid targets are:
+
[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 connector resource from the default server instance.
    This is the default value.
  `domain`;;
    Deletes the connector resource from the domain.
  cluster_name;;
    Deletes the connector resource from every server instance in the
    cluster.
  instance_name;;
    Deletes the connector resource from a specified server instance.

[[sthref636]]

=== Operands

jndi_name::
  The JNDI name of this connector resource.

[[sthref637]]

=== Examples

[[GSRFM538]][[sthref638]]

==== Example 1   Deleting a Connector Resource

This example deletes a connector resource named `jms/qConnFactory`.

[source]
----
asadmin> delete-connector-resource jms/qConnFactory
Command delete-connector-resource executed successfully
----

[[GSRFM539]][[sthref639]]

==== Example 2   Using the delete-connector-resource subcommand

This example shows the usage of this subcommand.

[source]
----
asadmin> delete-connector-resource jms/qConnFactory
Command delete-connector-resource executed successfully
----

Where `jms/qConnFactory` is the connector resource that is removed.

[[sthref640]]

=== Exit Status

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

[[sthref641]]

=== See Also

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

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


