type=page
status=published
title=list-protocols
next=list-resource-adapter-configs.html
prev=list-protocol-finders.html
~~~~~~
list-protocols
==============

[[list-protocols-1]][[GSRFM00195]][[list-protocols]]

list-protocols
--------------

lists the existing protocols

[[sthref1764]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] list-protocols [--help]
[target]
----

[[sthref1765]]

Description

The `list-protocols` subcommand lists the existing protocols. This
subcommand is supported in remote mode only.

[[sthref1766]]

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.

[[sthref1767]]

Operands

target::
  Restricts the listing to protocols for a specified target. Valid
  values are as follows: +
  `server`;;
    Lists the protocols for the default server instance. This is the
    default value.
  configuration-name;;
    Lists the protocols for the specified configuration.
  cluster-name;;
    Lists the protocols for all server instances in the specified
    cluster.
  instance-name;;
    Lists the protocols for the specified server instance.

[[sthref1768]]

Examples

[[GSRFM705]][[sthref1769]]

Example 1   Listing Protocols

The following command lists all the protocols for the server instance:

[source,oac_no_warn]
----
asadmin> list-protocols
admin-listener
http-1
http-listener-1
http-listener-2
Command list-protocols executed successfully.
----

[[sthref1770]]

Exit Status

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

[[sthref1771]]

See Also

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

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


