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]
----
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]
----
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]
----
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]
----
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]
----
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]
----
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]
----
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.


