type=page
status=published
title=set
next=set-batch-runtime-configuration.html
prev=rotate-log.html
~~~~~~

set
===

[[set-1]][[GSRFM00226]][[set]]

set
---

Sets the values of configurable attributes

[[sthref2024]]

=== Synopsis

[source]
----
asadmin [asadmin-options] set [--help]
attribute-name=value
----

[[sthref2025]]

=== Description

The `set` subcommand uses dotted names to modify the values of one or
more configurable attributes.

Attributes from the monitoring hierarchy are read-only, but
configuration attributes can be modified. You can use the
link:list.html#list-1[`list`(1)] subcommand to display the dotted names
that represent individual server components and subsystems. For example,
a dotted name might be `server.applications.web-module`. After you
discover the particular component or subsystem, you can then use the
`get` subcommand to access the attributes. For more detailed information
on dotted names, see the
link:dotted-names.html#dotted-names-5asc[`dotted-names`(5ASC)] help page.

[NOTE]
====
Characters that have special meaning to the shell or command
interpreter, such as * (asterisk), should be quoted or escaped as
appropriate to the shell, for example, by enclosing the argument in
quotes. In multimode, quotes are needed only for arguments that include
spaces, quotes, or backslash.
====

By modifying attributes, you can enable and disable services, and
customize how an existing element functions. An `asadmin` subcommand is
provided to update some elements. For example, `update-password-alias`.
However, to update other elements, you must use the `set` command. For
example, you create a JDBC connection pool by using the
`create-jdbc-connection-pool` subcommand. To change attribute settings
later, you use the `set` command.

Any change made by using the `asadmin` utility subcommands or the
Administration Console are automatically applied to the associated
{productName} configuration file.

[[sthref2026]]

=== 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.

[[sthref2027]]

=== Operands

attribute-name=value::
  Identifies the full dotted name of the attribute name and its value.

[[sthref2028]]

=== Examples

[[GSRFM745]][[sthref2029]]

==== Example 1   Setting a JDBC Connection Pool Attribute

This example changes the steady pool size of the `DerbyPool` connection
pool to 9.

[source]
----
asadmin> set resources.jdbc-connection-pool.DerbyPool.steady-pool-size=9
Command set executed successfully.
----

[[GSRFM746]][[sthref2030]]

==== Example 2   Enabling the Monitoring Service for a Monitorable Object

This example enables monitoring for the JVM.

[source]
----
asadmin> set server.monitoring-service.module-monitoring-levels.jvm=HIGH
Command set executed successfully.
----

[[GSRFM747]][[sthref2031]]

==== Example 3   Turning on Automatic Recovery for the Transaction Service

This example turns on automatic recovery for the transaction service.

[source]
----
asadmin> set server.transaction-service.automatic-recovery=true
Command set executed successfully.
----

[[sthref2032]]

=== Exit Status

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

[[sthref2033]]

=== See Also

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

link:get.html#get-1[`get`(1)], link:list.html#list-1[`list`(1)]

link:dotted-names.html#dotted-names-5asc[`dotted-names`(5ASC)]

link:administration-guide.html#GSADG[{productName} Administration Guide]


