The Web server plug-ins, an application client,
an application server, or individual profiles within an application
server might be enabled to use the classic Java virtual machine (JVM) that is provided
with IBM® i Version 6.1 and lower.
When upgrading to IBM i Version
7.1 or higher, use the enablejvm command to enable your Web server
plug-ins, application clients and application servers to use the
32-bit (std32) or 64-bit (std64) version of the IBM Technology for Java Virtual
Machine. IBM i Version 6.1
is the last version of IBM i
that supports the classic JVM.
Before you begin
- Read the enablejvm command topic. You must issue various enablejvm
commands to complete this task.
- Check the settings of the was.use.j9 and was.j9.version properties
in either the plugins_root/properties/product.properties
file, the app_client_root/properties/product.properties
file, or the app_server_root/properties/product.properties
file to determine the JVM that your Web server plug-ins, application
client, or application server is enabled to use:
- If the was.use.j9 property is set to false, then your Web server
plug-ins, application client, or application server is enabled to
use the classic JVM.
- If the was.use.j9 property is set to true, and the was.j9.version
property is set to 32-bit, then your Web server plug-ins, application
client, or application server is enabled to use the 32-bit (std32)
version of the IBM Technology
for Java Virtual Machine.
- If the was.use.j9 property is set to true, and the was.j9.version
property is set to 64bit, then your Web server plug-ins, application
client, or application server is enabled to use the 64-bit (std64)
version of the IBM Technology
for Java Virtual Machine.
If your application server is configured to use the classic
JVM, check the settings for the was.use.j9 and was.j9.version properties
in the profile_root/properties/.instance.properties
file for each of the profiles within your application server to determine
if any of these profiles are enabled to use the 64-bit version of
the IBM Technology for Java Virtual Machine. If the was.use.j9
property is set to true, and the was.j9.version property is set to
64bit, then the profile is enabled to use the 64-bit version of the IBM Technology for Java Virtual Machine. Note the names of any
profiles that are enabled to use the 64-bit version of the IBM Technology for Java Virtual Machine so that you can re-enable
these profiles to use the 64-bit version after you enable the application
server to use the 32-bit version of this JVM.
If your application
server is already configured to use either version of the IBM Technology for Java Virtual Machine, check the settings for
the was.use.j9 and was.j9.version properties in the profile_root/properties/.instance.properties
file for each of the profiles running on your application server to
determine if any of these profiles are enabled to use the classic
JVM. If the was.use.j9 property is set to false, then the profile
is enabled to use the classic JVM. Note the names of any profiles
that are enabled to use the classic JVM so that you can enable these
profiles to use either the 32-bit or 64-bit version of the IBM Technology for Java Virtual Machine.
About this task
When upgrading to IBM i Version 7.1 or higher:
- If your Web server plug-ins, or application client is enabled
to use the classic JVM, enable your Web server plug-ins, or application
client to use the 32-bit version of the IBM Technology
for Java Virtual Machine.
- If your application server is enabled to use the classic JVM,
enable your application server to use the 32-bit version of the IBM Technology for Java Virtual Machine.
- If your application server is enabled to use either the 32-bit
or 64-bit version of the IBM Technology
for Java Virtual Machine, and
some of the profiles within your application server are enabled to
use the classic JVM, enable all profiles that currently use the classic
JVM to use either the 32-bit or 64-bit version of the IBM Technology for Java Virtual
Machine.
Procedure
- Enable your Web server plug-ins, or application client
to use the 32-bit version of the IBM Technology
for Java Virtual Machine.
- Start the QShell interpreter.
- Change the directory to the plugins_root/bin
or app_client_root/bin directory.
- Invoke the following enablejvm command.
enablejvm -jvm std32
- Restart the application server.
- Enable your application server to use the 32-bit version
of the IBM Technology for Java Virtual Machine.
- Prepare each federated node within the installation
to be enabled to use the 32-bit version of the IBM Technology for Java Virtual
Machine.
Skip this step if your application server
does not contain any federated nodes.
- Provide the administrative user name and password in the soap.client.props
file for the federated node if your deployment manager has administrative
security enabled.
See the Network Deployment Considerations section
of the enablejvm command topic for more information.
- Ensure the deployment manager profile is enabled to use a JVM
that is installed on the system. For example, if profile dmgr is enabled
to use the classic JVM and the classic JVM is not installed on your
system, enable the profile to use the 32-bit JVM:
- Start the QShell interpreter.
- Change the directory to the app_server_root/bin
directory
- Invoke the following enablejvm command:
enablejvm -profileName dmgr -jvm std32
- Start the deployment manager.
- Change any JVM settings for all of the servers whose
profiles are enabled to use the classic such that the settings are
appropriate for the IBM Technology
for Java Virtual Machine.
Avoid trouble: Complete this action before
enabling the IBM Technology
for Java Virtual Machine. When
the classic JVM is installed, you can use the administrative console
to view and change JVM settings for all servers prior to enabling
them to use the IBM Technology
for Java Virtual Machine. When
the classic JVM is not installed on the system, you can still use
the administrative console to view and change JVM settings for federated
nodes because in the previous step you enabled the deployment managers
to use the IBM Technology for Java Virtual Machine. However, for
standalone profiles, you must edit the
profile_root/config/cells/
cell_name/nodes/
node_name/servers/
server_name/server.xml
file to correct the JVM settings. For example, to remove -Xmx=0 from
the JVM settings, change the following setting:
genericJvmArguments="-Xmx=0"
to the following setting:
genericJvmArguments=""
gotcha
Servers previously configured to use the classic
JVM might fail to start after they are enabled to use the IBM Technology for Java Virtual Machine if the server configuration
contains JVM settings that are not appropriate for the IBM Technology for Java Virtual
Machine. For example, if the maximum heap size is set to zero (-Xmx=0),
which indicates that there is no maximum heap size value for the classic
JVM, the server fails to start after it is enabled to use the IBM Technology for Java Virtual Machine.
For information
about using the administrative console to view and change JVM settings,
see the Configuring the JVM topic.
- Enable your application server to use the 32-bit version
of the IBM Technology for Java Virtual Machine.
- Start the QShell interpreter.
- Change the directory to the app_server_root/bin
directory
- Invoke the following enablejvm command:
enablejvm -jvm std32
- If any of your profiles were previously enabled to use
the 64-bit version of the IBM Technology
for Java Virtual Machine, re-enable
them to use this version of the IBM Technology
for Java Virtual Machine.
- Start the QShell interpreter
- Change the directory to the app_server_root/bin
directory
- Invoke one of the following commands for each profile that needs
to be enabled to use either the 32-bit or 64-bit version of the IBM Technology for Java Virtual Machine:
enablejvm -profileName profile_name -jvm std64
- Restart the application server.
- Enable all profiles that currently use the classic JVM
to use either the 32-bit or 64-bit version of the IBM Technology for Java Virtual
Machine.
- If the profile represents a federated node, prepare
the profile to be enabled to use the 32-bit version of the IBM Technology for Java Virtual Machine.
- If the associated deployment manager has administrative security
enabled, you must provide the administrative user name and password
in the soap.client.props file for the federated node. See the Network
Deployment Considerations section of the enablejvm command topic for
more information.
- Ensure the deployment manager profile is enabled to use a JVM
that is installed on your system. For example, if profile dmgr is
enabled to use the classic JVM and the classic JVM is not installed
on your system, enable the profile to use the 32-bit JVM:
- Start the QShell interpreter
- Change the directory to the app_server_root/bin
directory
- Invoke the following command:
enablejvm -profileName dmgr -jvm std32
- Restart the deployment manager.
- Change any JVM settings for all of the servers whose
profiles are enabled to use the classic such that the settings are
appropriate for the IBM Technology
for Java Virtual Machine.
Avoid trouble: Complete this action before
enabling the IBM Technology
for Java Virtual Machine. When
the classic JVM is installed, you can use the administrative console
to view and change JVM settings for all servers prior to enabling
them to use the IBM Technology
for Java Virtual Machine. When
the classic JVM is not installed on the system, you can still use
the administrative console to view and change JVM settings for federated
nodes because in the previous step you enabled the deployment managers
to use the IBM Technology for Java Virtual Machine. However, for
standalone profiles, you must edit the
profile_root/config/cells/
cell_name/nodes/
node_name/servers/
server_name/server.xml
file to correct the JVM settings. For example, to remove -Xmx=0 from
the JVM settings, change the following setting:
genericJvmArguments="-Xmx=0"
to the following setting:
genericJvmArguments=""
gotcha
Servers previously configured to use the classic
JVM might fail to start after they are enabled to use the IBM Technology for Java Virtual Machine if the server configuration
contains JVM settings that are not appropriate for the IBM Technology for Java Virtual
Machine. For example, if the maximum heap size is set to zero (-Xmx=0),
which indicates that there is no maximum heap size value for the classic
JVM, the server fails to start after it is enabled to use the IBM Technology for Java Virtual Machine.
For information
about using the administrative console to view and change JVM settings,
see the Configuring the JVM topic.
- Enable the profiles to use either the 32-bit or 64-bit
version of the IBM Technology
for Java Virtual Machine.
- Start the QShell interpreter
- Change the directory to the app_server_root/bin
directory
- Invoke one of the following commands against each profile that
needs to be enabled to use either the 32-bit or 64-bit version of
the IBM Technology for Java Virtual Machine:
enablejvm -profileName profile_name -jvm std32
enablejvm -profileName profile_name -jvm std64
- Restart the application server.
Results
All of the servers on your system are enabled to use either
the 32-bit or 64-bit version of the IBM Technology
for Java Virtual Machine instead
of the classic JVM.
What to do next
Consider tuning the JVM for all application server profiles
that you switched from the classic JVM to either the 32-bit or 64-bit
version of the IBM Technology
for Java Virtual Machine. The
default settings for the IBM Technology
for Java Virtual Machine might
not be appropriate for your application server.
For example,
the default initial Java heap
size and maximum Java heap size
are different for IBM Technology
for Java Virtual Machine than
for the classic JVM. When application server profiles are enabled
for either the 32-bit or 64-bit version of the IBM Technology for Java Virtual
Machine, the default initial and maximum heap sizes are 50 MB and
256 MB, respectively. For the classic JVM, the default initial and
maximum heap sizes are 96 MB and 0 MB, where 0 indicates that there
is no maximum value.