type=page
status=published
title=generate-jvm-report
next=get.html
prev=freeze-transaction-service.html
~~~~~~

generate-jvm-report
===================

The script content on this page is for navigation purposes only and does
not alter the content in any way.

[[generate-jvm-report-1]][[GSRFM00138]][[generate-jvm-report]]

generate-jvm-report
-------------------

Shows the JVM machine statistics for a given target instance

[[sthref1200]]

=== Synopsis

[source]
----
generate-jvm-report [--help] [--type=jvm-statistic-type] [--target target]
----

[[sthref1201]]

=== Description

The `generate-jvm-report` subcommand creates a report that shows the
threads (dump of stack trace), classes, memory, or loggers for a given
target instance, including the domain administration server (DAS). If a
type is not specified, a summary report is generated. This subcommand
only provides statistics for the \{product---name} instance processes.
This subcommand provides an alternative to sending Ctrl+Break or
`kill -3` signals to \{product---name} processes to obtain a stack trace
for processes that are hanging.

The information in the report is obtained from managed beans (MBeans)
and MXBeans that are provided in the Java Platform, Standard Edition
(Java SE ) or JDK software with which \{product---name} is being used.

If \{product---name} is running in the Java Runtime Environment (JRE)
software from JDK release 6 or Java SE 6, additional information is
provided. For example:

* System load on the available processors
* Object monitors that are currently held or requested by a thread
* Lock objects that a thread is holding, for example, `ReentrantLock`
objects and `ReentrantReadWriteLock` objects

If the JRE software cannot provide this information, the report contains
the text `NOT_AVAILABLE`.

This subcommand is supported in remote mode only.

[[sthref1202]]

=== 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.
`--target`::
  Specifies the target for which you are showing JVM machine statistics.
  Valid values are as follows:

  `server`;;
    Specifies the DAS (default).
  instance-name;;
    Specifies a \{product---name} instance.
  cluster-name;;
    Specifies a cluster.
  configuration-name;;
    Specifies a named configuration.
`--type`::
  The type of report that is to be generated. Default is `summary`.

  `summary`;;
    Displays summary information about the threads, classes, and memory
    (default).
  `memory`;;
    Provides information about heap and non-heap memory consumption,
    memory pools, and garbage collection statistics for a given target
    instance.
  `class`;;
    Provides information about the class loader for a given target
    instance.
  `thread`;;
    Provides information about threads running and the thread dump
    (stack trace) for a given target instance.
  `log`;;
    Provides information about the loggers that are registered in the
    Virtual Machine for the Java platform (Java Virtual Machine or JVM
    machine).link:#sthref1203[^Foot 1 ^]

[[sthref1204]]

=== Examples

[[GSRFM617]][[sthref1205]]

==== Example 1   Obtaining Summary Information for the JVM Machine

This example shows a partial listing of a report that is generated if no
type is specified. This same report is generated if the `summary` type
is specified.

[source]
----
asadmin> generate-jvm-report
Operating System Information:
Name of the Operating System: SunOS
Binary Architecture name of the Operating System: sparc, Version: 5.10
Number of processors available on the Operating System: 32
System load on the available processors for the last minute: 7.921875.
(Sum of running and queued runnable entities per minute)
General Java Runtime Environment Information for the VM: 64097@sr1-usca-22
...
sun.desktop = gnome
sun.io.unicode.encoding = UnicodeBig
sun.java.launcher = SUN_STANDARD
sun.jnu.encoding = ISO646-US
sun.management.compiler = HotSpot Client Compiler
sun.os.patch.level = unknown
user.dir = /home/thisuser/GlassFish/glassfishv3/glassfish/domains/mydomain4/config
user.home = /home/thisuser
user.language = en
user.name = thisuser
user.timezone = US/Pacific
Command generate-jvm-report executed successfully
----

[[GSRFM618]][[sthref1206]]

==== Example 2   Obtaining Information for a Particular JVM Machine Type

This example generates a report that shows information on the class
loader.

[source]
----
asadmin> generate-jvm-report --type=class
Class loading and unloading in the Java Virtual Machine:
Number of classes currently loaded in the Java Virtual Machine: 3,781
Number of classes loaded in the Java Virtual Machine since the startup: 3,868
Number of classes unloaded from the Java Virtual Machine: 87
Just-in-time (JIT) compilation information in the Java Virtual Machine:
Java Virtual Machine compilation monitoring allowed: true
Name of the Just-in-time (JIT) compiler: HotSpot Client Compiler
Total time spent in compilation: 0 Hours 0 Minutes 4 Seconds
Command generate-jvm-report executed successfully.
----

[[sthref1207]]

=== Exit Status

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

[[sthref1208]]

=== See Also

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

link:create-jvm-options.html#create-jvm-options-1[`create-jvm-options`(1)],
link:delete-jvm-options.html#delete-jvm-options-1[`delete-jvm-options`(1)],
link:list-jvm-options.html#list-jvm-options-1[`list-jvm-options`(1)]

'''''


Footnote Legend

Footnote 1: The terms "Java Virtual Machine" and "JVM" mean a Virtual
Machine for the Java platform.
+


