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
{productName} 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. {productName}, being a Java process, requires a
virtual machine to run and support the Java applications running on it.
JVM settings are part of an {productName} 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 {productName}. 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 {productName}. 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 {productName}.
+
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 {productName}.
+
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.


