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


