type=page
status=published
title=delete-context-service
next=delete-custom-resource.html
prev=delete-connector-work-security-map.html
~~~~~~

delete-context-service
======================

[[delete-context-service-1]][[GSRFM846]][[delete-context-service]]

delete-context-service
----------------------

Removes a context service resource with the specified JNDI name

[[sthref658]]

=== Synopsis

[source]
----
asadmin [asadmin-options] delete-context-service [--help]
[--target target]
context-service-name
----

[[sthref659]]

=== Description

The `delete-context-service` subcommand removes a context service
resource with the specified JNDI name.

This subcommand is supported in remote mode only.

[[sthref660]]

=== 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 deleting the resource.
  Valid targets are:

  `server`;;
    Deletes the resource from the default server instance. This is the
    default value.
  `domain`;;
    Deletes the resource from the domain.
  cluster-name;;
    Deletes the resource from every server instance in the specified
    cluster.
  instance-name;;
    Deletes the resource from the specified server instance.

[[sthref661]]

=== Operands

context-service-name::
  The JNDI name of the resource to be deleted.

[[sthref662]]

=== Examples

[[GSRFM847]][[sthref663]]

==== Example 1   Deleting a Context Service Resource

This example deletes the context service resource named
`concurrent/myContextService`.

[source]
----
asadmin> delete-context-service concurrent/myContextService
Context service concurrent/myContextService deleted successfully.
Command delete-context-service executed successfully.
----

[[sthref664]]

=== Exit Status

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

[[sthref665]]

=== See Also

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

link:create-context-service.html#create-context-service-1[`create-context-service`(1)],
link:list-context-services.html#list-context-services-1[`list-context-services`(1)]


