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
\{product---name} 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/toc.html#GSADG[GlassFish Server Open Source Edition Administration Guide]


