type=page
status=published
title=create-system-properties
next=create-threadpool.html
prev=create-ssl.html
~~~~~~

= create-system-properties

[[create-system-properties-1]][[GSRFM00059]][[create-system-properties]]

== create-system-properties

Adds one or more system property elements that can be referenced
elsewhere in the configuration.

[[sthref545]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-system-properties [--help]
[--target target]
[name=value)[:name=value]*]
----

[[sthref546]]

=== Description

The `create-system-properties` subcommand adds or updates system
properties that can be referenced elsewhere on the server.

{productName} provides hooks where tokens (system properties) can be
specified. Because {productName} does not have multiple server
elements, you can specify a particular token at any level. When a domain
supports multiple servers, the override potential can be exploited. When
a domain is started or restarted, all `<system-property>` elements are
resolved and available to the Java Virtual Machine by using the
`System.setProperty()` call on each of them (with its name and value
derived from the corresponding attributes of the element). This is
analogous to sending the elements as `-D` parameters on the Java command
line.

This subcommand is supported in remote mode only.

[[sthref547]]

=== 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`::
  The target on which you are creating the system properties.

[[sthref548]]

=== Operands

target::
  The valid targets for this subcommand are instance, cluster,
  configuration, domain, and server. Server is the default option. Valid
  values are:

  `server`;;
    Creates the properties on the default server instance. This is the
    default value.
  `domain`;;
    Creates the properties for all server instances in the default
    domain.
  configuration_name;;
    Creates the properties in the specified configuration.
  cluster_name;;
    Creates the properties on all server instances in the specified
    cluster.
  instance_name;;
    Creates the properties on a specified server instance.

name=value::
  The name value pairs of the system properties to add to the specified
  target. Multiple system properties must be separated by a `:` (colon).
  If a `:` (colon) appears in the name or value of a system property, it
  must be escaped with a `\` (blackslash). If any system properties were
  previously defined, they are updated with the new values.

[[sthref549]]

=== Examples

[[GSRFM526]][[sthref550]]

==== Example 1   Creating System Properties

This example creates a system property associated with an HTTP listener
on a server instance named `myserver`.

[source]
----
asadmin> create-system-properties --target myserver http-listener-port=1088
Command create-system-properties executed successfully.
----

[[sthref551]]

=== Exit Status

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

[[sthref552]]

=== See Also

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

link:delete-system-property.html#delete-system-property-1[`delete-system-property`(1)],
link:list-system-properties.html#list-system-properties-1[`list-system-properties`(1)]


