type=page
status=published
title=Administering the Virtual Machine for the Java Platform
next=threadpools.html
prev=domains.html
~~~~~~
Administering the Virtual Machine for the Java Platform
=======================================================

[[GSADG00007]][[ablwj]]


[[administering-the-virtual-machine-for-the-java-platform]]
4 Administering the Virtual Machine for the Java Platform
---------------------------------------------------------

This chapter provides procedures for administering the Virtual Machine
for the Java platform (Java Virtual Machine) or JVM machine) in the
GlassFish Server Open Source Edition 5.0 environment by using the
`asadmin` command-line utility.

The following topics are addressed here:

* link:#gepzd[Administering JVM Options]
* link:#ggnde[Administering the Profiler]

Instructions for accomplishing these tasks by using the Administration
Console are contained in the Administration Console online help.

[[gepzd]][[GSADG00544]][[administering-jvm-options]]

Administering JVM Options
~~~~~~~~~~~~~~~~~~~~~~~~~

The Java Virtual Machine is an interpretive computing engine responsible
for running the byte codes in a compiled Java program. The virtual
machine translates the Java byte codes into the native instructions of
the host machine. GlassFish Server, being a Java process, requires a
virtual machine to run and support the Java applications running on it.
JVM settings are part of an GlassFish Server configuration.

The following topics are addressed here:

* link:#ggnes[To Create JVM Options]
* link:#ggnce[To List JVM Options]
* link:#ggnfi[To Delete JVM Options]
* link:#ggnbu[To Generate a JVM Report]

[[ggnes]][[GSADG00359]][[to-create-jvm-options]]

To Create JVM Options
^^^^^^^^^^^^^^^^^^^^^

Use the `create-jvm-options` subcommand in remote mode to create JVM
options in the Java configuration or the profiler elements of the
`domain.xml` file. If JVM options are created for a profiler, these
options are used to record the settings that initiate the profiler.

1.  Ensure that the server is running. +
Remote subcommands require a running server.
2.  Create JVM options by using the
link:../reference-manual/create-jvm-options.html#GSRFM00042[`create-jvm-options`] subcommand. +
To create more than one JVM option, use a colon (:) to separate the
options. If the JVM option itself contains a colon (:), use the
backslash (\) to offset the colon delimiter. +
Information about properties for the subcommand is included in this help
page.
3.  To apply your changes, restart GlassFish Server. See
link:domains.html#ginqj[To Restart a Domain].

[[GSADG00154]][[ghqwm]]


Example 4-1 Creating JVM Options

This example sets multiple Java system properties.

[source,oac_no_warn]
----
asadmin> create-jvm-options -Dunixlocation=/root/example:
-Dvariable=\$HOME:
-Dwindowslocation=d\\:\\\sun\\\appserver:
-Doption1=-value1
created 4 option(s)
Command create-jvm-options executed successfully.
----

[[GSADG847]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help create-jvm-options` at the command line.

[[ggnce]][[GSADG00360]][[to-list-jvm-options]]

To List JVM Options
^^^^^^^^^^^^^^^^^^^

Use the `list-jvm-options` subcommand in remote mode to list the
existing JVM options.

1.  Ensure that the server is running. +
Remote subcommands require a running server.
2.  List JVM options by using the link:../reference-manual/list-jvm-options.html#GSRFM00180[`list-jvm-options`]
subcommand.

[[GSADG00155]][[ggphx]]


Example 4-2 Listing JVM Options

This example lists all JVM options.

[source,oac_no_warn]
----
asadmin> list-jvm-options
-Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf
-XX: LogVMOutput
-XX: UnlockDiagnosticVMOptions
-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.
config.serverbeans.AppserverConfigEnvironmentFactory
-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks
-XX:NewRatio=2
-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy
-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver
-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks
-client
-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.ja
vaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext${path.se
parator}${com.sun.aas.derbyRoot}/lib
-Xmx512m
-XX:LogFile=${com.sun.aas.instanceRoot}/logs/jvm.log
Command list-jvm-options executed successfully.
----

[[GSADG848]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help list-jvm-options` at the command line.

[[ggnfi]][[GSADG00361]][[to-delete-jvm-options]]

To Delete JVM Options
^^^^^^^^^^^^^^^^^^^^^

Use the `delete-jvm-options` subcommand in remote mode to delete JVM
options from the Java configuration or profiler elements of the
`domain.xml` file.

1.  Ensure that the server is running. +
Remote subcommands require a running server.
2.  List JVM options by using the link:../reference-manual/list-jvm-options.html#GSRFM00180[`list-jvm-options`]
subcommand.
3.  If necessary, notify users that the JVM option is being deleted.
4.  Delete JVM options by using the
link:../reference-manual/delete-jvm-options.html#GSRFM00094[`delete-jvm-options`] subcommand. +
To remove more than one JVM option, use a colon (:) to separate the
options. If the JVM option itself contains a colon, use the backslash
(\) to offset the colon delimiter.
5.  To apply your changes, restart GlassFish Server. See
link:domains.html#ginqj[To Restart a Domain].

[[GSADG00156]][[ggpgz]]


Example 4-3 Deleting a JVM Option

This example removes a single JVM option.

[source,oac_no_warn]
----
asadmin> delete-jvm-options -Dopt1=A

deleted 1 option(s)
Command delete-jvm-options executed successfully.
----

[[GSADG00157]][[ggpkr]]


Example 4-4 Deleting Multiple JVM Options

This example removes multiple JVM options.

[source,oac_no_warn]
----
asadmin> delete-jvm-options -Doption1=-value1:-Dvariable=\$HOME
deleted 2 option(s)
Command delete-jvm-options executed successfully.
----

[[GSADG849]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help delete-jvm-options` at the command line.

[[ggnbu]][[GSADG00362]][[to-generate-a-jvm-report]]

To Generate a JVM Report
^^^^^^^^^^^^^^^^^^^^^^^^

Use the `generate-jvm-report` subcommand in remote mode to generate a
JVM report showing the threads (dump of a stack trace), classes, memory,
and loggers for a specified instance, including the domain
administration server (DAS). You can generate the following types of
reports: summary (default), class, thread, log.

1.  Ensure that the server is running. +
Remote subcommands require a running server.
2.  Generate the report by using the
link:../reference-manual/generate-jvm-report.html#GSRFM00138[`generate-jvm-report`] subcommand.

[[GSADG00158]][[ghhkr]]


Example 4-5 Generating a JVM Report

This example displays summary information about the threads, classes,
and memory.

[source,oac_no_warn]
----
asadmin> generate-jvm-report --type summary 
Operating System Information:
Name of the Operating System: Windows XP
Binary Architecture name of the Operating System: x86, Version: 5.1
Number of processors available on the Operating System: 2
System load on the available processors for the last minute: NOT_AVAILABLE. 
(Sum of running and queued runnable entities per minute).
.
,
.
user.home = C:\Documents and Settings\Jennifer
user.language = en
user.name = Jennifer
user.timezone = America/New_York
user.variant =
variable = \$HOME
web.home = C:\Preview\v3_Preview_release\distributions\web\target\
glassfish\modules\web
Command generate-jvm-report executed successfully.
----

[[GSADG850]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help generate-jvm-report` at the command line.

[[ggnde]][[GSADG00545]][[administering-the-profiler]]

Administering the Profiler
~~~~~~~~~~~~~~~~~~~~~~~~~~

A profiler generates information used to analyze server performance.

The following topics are addressed here:

* link:#ggneb[To Create a Profiler]
* link:#ggnem[To Delete a Profiler]

[[ggneb]][[GSADG00363]][[to-create-a-profiler]]

To Create a Profiler
^^^^^^^^^^^^^^^^^^^^

A server instance is tied to a particular profiler by the profiler
element in the Java configuration. If JVM options are created for a
profiler, the options are used to record the settings needed to activate
a particular profiler. Use the `create-profiler` subcommand in remote
mode to create the profiler element in the Java configuration.

Only one profiler can exist. If a profiler already exists, you receive
an error message that directs you to delete the existing profiler before
creating a new one.

1.  Ensure that the server is running. +
Remote subcommands require a running server.
2.  Create a profiler by using the link:../reference-manual/create-profiler.html#GSRFM00050[`create-profiler`]
subcommand. +
Information about properties for the subcommand is included in this help
page.
3.  To apply your changes, restart GlassFish Server. +
See link:domains.html#ginqj[To Restart a Domain].

[[GSADG00159]][[ggpla]]


Example 4-6 Creating a Profiler

This example creates a profiler named `sample_profiler`.

[source,oac_no_warn]
----
asadmin> create-profiler --classpath=/home/appserver/ --nativelibrarypath=/u/home/lib
--enabled=false --property=defaultuser=admin:password=adminadmin sample_profiler
Command create-profiler executed successfully.
----

[[GSADG851]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help create-profiler` at the command line.

[[ggnem]][[GSADG00365]][[to-delete-a-profiler]]

To Delete a Profiler
^^^^^^^^^^^^^^^^^^^^

Use the `delete-profiler` subcommand in remote mode to delete the
profiler element from the Java configuration. You can then create a new
profiler.

1.  Ensure that the server is running. +
Remote subcommands require a running server.
2.  Delete the profiler by using the link:../reference-manual/delete-profiler.html#GSRFM00102[`delete-profiler`]
subcommand.
3.  To apply your changes, restart GlassFish Server. +
See link:domains.html#ginqj[To Restart a Domain].

[[GSADG00161]][[ggpkc]]


Example 4-7 Deleting a Profiler

This example deletes the profiler named `sample_profiler`.

[source,oac_no_warn]
----
asadmin> delete-profiler sample_profiler
Command delete-profiler executed successfully.
----

[[GSADG852]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help delete-profiler` at the command line.


