type=page
status=published
title=delete-message-security-provider
next=delete-module-config.html
prev=delete-managed-thread-factory.html
~~~~~~
delete-message-security-provider
================================

[[delete-message-security-provider-1]][[GSRFM00097]][[delete-message-security-provider]]

delete-message-security-provider
--------------------------------

enables administrators to delete a message security provider

[[sthref874]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] delete-message-security-provider [--help] 
[--target target]
--layer message_layer
provider_name
----

[[sthref875]]

Description

The `delete-message-security-provider` subcommand enables administrators
to delete a message security provider.

In terms of what happens when this subcommand is run, the
`provider-config` sub-element for the given message layer
(`message-security-config` element of `domain.xml` is deleted. The
`domain.xml`file specifies parameters and properties to the
\{product---name}). The options specified in the list below apply to
attributes within the `message-security-config` and `provider-config`
sub-elements of the `domain.xml` file.

If the message-layer (`message-security-config` attribute) does not
exist, it is created, and then the `provider-config` is created under
it.

This command is supported in remote mode only.

[[sthref876]]

Options

If an option has a short option name, then the short option precedes the
long option name. Short options have one dash whereas long options have
two dashes.

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 message security
  provider. Valid values are +
  `server`;;
    Deletes the message security provider from the default server
    instance `server` and is the default value
  `domain`;;
    Deletes the message security provider from the domain.
  cluster_name;;
    Deletes the message security provider from every server instance in
    the cluster.
  instance_name;;
    Deletes the message security provider from a particular sever
    instance.
`--layer`::
  The message-layer from which the provider has to be deleted. The
  default value is `HttpServlet`.

[[sthref877]]

Operands

provider_name::
  The name of the provider used to reference the `provider-config`
  element.

[[sthref878]]

Examples

[[GSRFM566]][[sthref879]]

Example 1   Deleting a message security provider

The following example shows how to delete a message security provider
for a client.

[source,oac_no_warn]
----
asadmin> delete-message-security-provider 
--layer SOAP mySecurityProvider
----

[[sthref880]]

Exit Status

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

[[sthref881]]

See Also

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

link:create-message-security-provider.html#create-message-security-provider-1[`create-message-security-provider`(1)],
link:list-message-security-providers.html#list-message-security-providers-1[`list-message-security-providers`(1)]


