type=page
status=published
title=delete-protocol
next=delete-protocol-filter.html
prev=delete-profiler.html
~~~~~~

= delete-protocol

[[delete-protocol-1]][[GSRFM00103]][[delete-protocol]]

== delete-protocol

Removes a protocol

[[sthref937]]

=== Synopsis

[source]
----
asadmin [asadmin-options] delete-protocol [--help]
[--target target]
protocol-name
----

[[sthref938]]

=== Description

The `delete-protocol` subcommand removes the specified protocol. This
subcommand is supported in remote mode only.

[[sthref939]]

=== 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`::
  Deletes the protocol only from the specified target. Valid values are
  as follows:

  `server`;;
    Deletes the protocol from the default server instance. This is the
    default value.
  configuration-name;;
    Deletes the protocol from the specified configuration.
  cluster-name;;
    Deletes the protocol from all server instances in the specified
    cluster.
  standalone-instance-name;;
    Deletes the protocol from the specified standalone server instance.

[[sthref940]]

=== Operands

protocol-name::
  The name of the protocol to be deleted.

[[sthref941]]

=== Examples

[[GSRFM574]][[sthref942]]

==== Example 1   Deleting a Protocol

The following command deletes the protocol named `http-1`:

[source]
----
asadmin> delete-protocol http-1
Command delete-protocol executed successfully.
----

[[sthref943]]

=== Exit Status

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

[[sthref944]]

=== See Also

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

link:create-protocol.html#create-protocol-1[`create-protocol`(1)],
link:list-protocols.html#list-protocols-1[`list-protocols`(1)]


