type=page
status=published
title=get
next=get-active-module-config.html
prev=generate-jvm-report.html
~~~~~~

get
===

[[get-1]][[GSRFM00139]][[get]]

get
---

gets the values of configurable or monitorable attributes

[[sthref1209]]

=== Synopsis

[source]
----
asadmin [asadmin-options] get [--help]
[--monitor={true|false}]
[--aggregatedataonly={true|false}]
(dotted-attribute--name)+
----

[[sthref1210]]

=== Description

The `get` subcommand uses dotted names to get the names and values of
configurable or monitorable attributes for {productName} elements.

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`. Attributes from the monitoring
hierarchy are read-only, but configuration attributes can be modified
using the link:set.html#set-1[`set`(1)] subcommand. 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.
====


The following list shows common usage of the `get` subcommand with the `*`
(asterisk):

`get \*` or `get *.*`::
  Gets all values on all dotted name prefixes.
`get domain\*` or `get domain*.*`::
  Gets all values on the dotted names that begin with `domain`.
`get \*config*.\*.*`::
  Gets all values on the dotted names that match `\*config*.\*.*`.
`get domain.j2ee-applications.\*.ejb-module.*.*`::
  Gets all values on all EJB modules of all applications.
`get \*web-modules.*.*`::
  Gets all values on all web modules whether in an application or
  standalone.
`get \*.*.\*.*`::
  Gets all values on all dotted names that have four parts.

[[sthref1211]]

=== 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.
`--monitor`::
`-m`::
  Defaults to `false`. If set to false, the configurable attribute
  values are returned. If set to `true`, the monitorable attribute
  values are returned.
`--aggregatedataonly`::
`-c`::
  Aggregates monitoring data for all {productName} instances in a
  cluster. The default value is `false`.

[[sthref1212]]

=== Operands

dotted-attribute-name::
  Identifies the attribute name in the dotted notation. At least one
  dotted name attribute is required. The dotted notation is the syntax
  used to access attributes of configurable entities.

[[sthref1213]]

=== Examples

[[GSRFM619]][[sthref1214]]

==== Example 1   Getting the Attributes of a Configurable Element

This example gets the attributes of `listener.http-listener-1`.

[source]
----
asadmin> get server.http-service.http-listener.http-listener-1.*
server.http-service.http-listener.http-listener-1.acceptor-threads = 1
server.http-service.http-listener.http-listener-1.address = 0.0.0.0
server.http-service.http-listener.http-listener-1.blocking-enabled = false
server.http-service.http-listener.http-listener-1.default-virtual-server = server
server.http-service.http-listener.http-listener-1.enabled = true
server.http-service.http-listener.http-listener-1.external-port =
server.http-service.http-listener.http-listener-1.family = inet
server.http-service.http-listener.http-listener-1.id = http-listener-1
server.http-service.http-listener.http-listener-1.port = 8080
server.http-service.http-listener.http-listener-1.redirect-port =
server.http-service.http-listener.http-listener-1.security-enabled = false
server.http-service.http-listener.http-listener-1.server-name =
server.http-service.http-listener.http-listener-1.xpowered-by = true
Command get executed successfully.
----

[[GSRFM620]][[sthref1215]]

==== Example 2   Getting Monitorable Objects

This example gets the configuration attributes for setting the
monitoring level and shows whether they are enabled (LOW or HIGH) or
disabled (OFF). The `jvm` component is enabled for monitoring.

[source]
----
asadmin> get server.monitoring-service.module-monitoring-levels.*
server.monitoring-service.module-monitoring-levels.connector-connection-pool=OFF
server.monitoring-service.module-monitoring-levels.connector-service=OFF
server.monitoring-service.module-monitoring-levels.d-trace=OFF
server.monitoring-service.module-monitoring-levels.ejb-container=OFF
server.monitoring-service.module-monitoring-levels.http-service=OFF
server.monitoring-service.module-monitoring-levels.jdbc-connection-pool=OFF
server.monitoring-service.module-monitoring-levels.jms-service=OFF
server.monitoring-service.module-monitoring-levels.jvm=HIGH
server.monitoring-service.module-monitoring-levels.orb=OFF
server.monitoring-service.module-monitoring-levels.thread-pool=OFF
server.monitoring-service.module-monitoring-levels.transaction-service=OFF
server.monitoring-service.module-monitoring-levels.web-container=OFF
Command get executed successfully.
----

[[GSRFM621]][[sthref1216]]

==== Example 3   Getting Attributes and Values for a Monitorable Object

This example gets all attributes and values of the `jvm` monitorable
object.

[source]
----
asadmin> get --monitor server.jvm.*
server.jvm.HeapSize_Current = 45490176
server.jvm.HeapSize_Description = Describes JvmHeapSize
server.jvm.HeapSize_HighWaterMark = 45490176
server.jvm.HeapSize_LastSampleTime = 1063217002433
server.jvm.HeapSize_LowWaterMark = 0
server.jvm.HeapSize_LowerBound = 0
server.jvm.HeapSize_Name = JvmHeapSize
server.jvm.HeapSize_StartTime = 1063238840055
server.jvm.HeapSize_Unit = bytes
server.jvm.HeapSize_UpperBound = 531628032
server.jvm.UpTime_Count = 1063238840100
server.jvm.UpTime_Description = Describes JvmUpTime
server.jvm.UpTime_LastSampleTime = 1-63238840070
server.jvm.UpTime_Name = JvmUpTime
server.jvm.UpTime_StartTime = 1063217002430
server.jvm.UpTime_Unit = milliseconds
Command get executed successfully.
----

[[sthref1217]]

=== Exit Status

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

[[sthref1218]]

=== See Also

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

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

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

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


