type=page
status=published
title=configuration
next=domain.html
prev=application.html
~~~~~~

= configuration

[[configuration-5asc]][[GSRFM00266]][[configuration]]

== configuration

The data set that determines how {productName} operates

[[sthref2394]]

=== Description

The configuration of {productName} is the data set that determines
how it operates. Parts of this configuration determine the operation of
specific parts of {productName}, such as the following:

* Services, such as the transaction service
* Resources, such as databases
* Deployed applications or modules, such as web applications
* Clusters and server instances

The term configuration is also used to describe a part of the overall
configuration, such as the transaction service configuration or the
configuration of a database. In clustered environments, clusters or
server instances can share configurations.

Examples of configuration data are port numbers, flags that enable or
disable processes, application names, and so on. Most of these data
points are name/value pairs, either hard-coded attributes or more
flexibly defined properties.

The hierarchical structure of the configuration is explained in the
dotted names page. You can view and change most of the {productName}
configuration using either the Administration Console or the `asadmin`
utility and its subcommands. To list the structure of all or part of the
configuration, use the `list` subcommand. To view the value of one or
more attributes or properties, use the `get` subcommand. To change the
value of an attribute or property, use the `set` subcommand.

[[sthref2395]]

=== See Also

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

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

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

"link:administration-guide/overview.html#GSADG00527[Configuration Tasks]" in {productName} Administration Guide


