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

= create-protocol

[[create-protocol-1]][[GSRFM00051]][[create-protocol]]

== create-protocol

Adds a new protocol

[[sthref489]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-protocol [--help]
[--securityenabled={false|true}]
[--target target]
protocol-name
----

[[sthref490]]

=== Description

The `create-protocol` subcommand creates a protocol. This subcommand is
supported in remote mode only.

[[sthref491]]

=== 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.
`--securityenabled`::
  If set to `true`, the protocol runs SSL. You can turn SSL2 or SSL3 ON
  or OFF and set ciphers using an `ssl` element. The security setting
  globally enables or disables SSL by making certificates available to
  the server instance. The default value is `false`.
`--target`::
  Creates the protocol only on the specified target. Valid values are as
  follows:

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

[[sthref492]]

=== Operands

protocol-name::
  The name of the protocol.

[[sthref493]]

=== Examples

[[GSRFM517]][[sthref494]]

==== Example 1   Creating a Protocol

The following command creates a protocol named `http-1` with security
enabled:

[source]
----
asadmin> create-protocol --securityenabled=true http-1
Command create-protocol executed successfully.
----

[[sthref495]]

=== Exit Status

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

[[sthref496]]

=== See Also

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

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


