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,oac_no_warn]
----
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.

\{product---name} provides hooks where tokens (system properties) can be
specified. Because \{product---name} 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,oac_no_warn]
----
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)]


