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


