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,oac_no_warn]
----
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: +

[width="100%",cols="100%",]
|=======================================================================
a|
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,oac_no_warn]
----
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,oac_no_warn]
----
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)]


