(zos)Switching between 64 and 31 bit modes
When creating a new application server, it is automatically configured to run in 64-bit mode. We can deselect the Run in 64 bit JVM mode setting if we need to run the server in 31-bit mode. Whenever possible, however, leave the servers configured to run in 64-bit mode because support for running servers in 31-bit mode is deprecated. If we have any servers, that you migrated from a previous version of the product, that are running in 31-bit mode, consider reconfiguring them to run in 64-bit mode.
Deprecated feature: Because support for running a server in 31-bit mode is deprecated, whenever you start a server configured to run in 31-bit mode, you receive the following message in the system log, where server_name is the name of the server running in 31-bit mode:
BBOO0340W: 31-BIT MODE IS DEPRECATED FOR THE APPLICATION SERVER RUNNING ON THE Z/OS OPERATING SYSTEM. CONSIDER USING 64-BIT MODE FOR server_name AS AN ALTERNATIVE.
depfeatWhen a server runs in 31-bit mode, the following conditions exist:
- Each server address space can access a maximum of 2 gigabytes of virtual memory.
- The 31-bit JVM, located in the app_server_root/java directory, is used for the server.
When a server runs in 64-bit mode, the following conditions exist:
- Each server address space can access a maximum of 16 exabytes (16 thousand million gigabytes) of virtual memory.
- The 64-bit JVM, located in the app_server_root/java64 directory, is used for the server.
System requirements
Before starting to use a server configured to run in 64-bit mode, note that:
- The AMODE parameter can be used to specify a particular addressing mode, either 31-bit or 64-bit, for the server. This parameter can also be set to a value of 00, which indicates that the server is to use the configured addressing mode. In the generated procedures, 00 is the default value for the AMODE parameter.
If we convert a 31-bit server to the 64-bit addressing mode, make sure that the automation does not specify AMODE=31 on the MVS START command. If a server is started with an AMODE value that does not match the configured addressing mode, the server does not start.
Avoid trouble: If the AMODE parameter is omitted, or set to 00 on the MVS START command, then the server starts in the currently configured addressing mode. If any other AMODE parameter is specified, that parameter must match the currently configured addressing mode. If the parameter does not match the currently configured addressing mode, the server terminates with one of the following error messages: gotcha
BBOO0336E START OF WEBSPHERE FOR Z/OS PROCESS FAILED BECAUSE INPUT AMODE 31 DOES NOT MATCH CONFIGURED AMODE 64
BBOO0336E START OF WEBSPHERE FOR Z/OS PROCESS FAILED BECAUSE INPUT AMODE 64 DOES NOT MATCH CONFIGURED AMODE 31
- The REGION parameter on the JCL JOB or EXEC statement, and the MEMLIMIT parameter on the JCL JOB or EXEC statement, or in the SMFPRMxx parmlib member, determines the amount of virtual storage that a particular server can obtain. If we do not specify REGION=0M in the server cataloged procedure, use the MEMLIMIT parameter to set a virtual storage limit larger than the 2 gigabyte limit associated with 31-bit mode.
Avoid trouble: Make sure that your system exits do not limit the address space size for 64-bit servers inappropriately. gotcha
- Running servers in 64-bit mode requires additional auxiliary storage, in the form of either expanded storage or page data set space. Before running servers in 64-bit mode, review the page data set allocations for each z/OS target system, and add additional page data set space as needed. Also monitor paging and page data set utilization to ensure that the allocated auxiliary storage is sufficient.
For more information, see the following z/OS publications:
- MVS™ Initialization and Tuning Reference, SA22-7592
- MVS Programming: Extended Addressability Guide, SA22-7614
Converting a migrated server to run in 64-bit mode
Before converting an application server from 31-bit to 64-bit mode...
- Verify that the system meets the requirements specified in the Systems requirements section.
- Verify that all applications to run on this application server are updated to use 64-bit native code and DLLs.
The DLLs and other native code that the applications call must match the addressing mode of the server on which the applications are running. If we convert an existing application server from 31-bit mode to 64-bit mode, you must change any Java applications containing native code, for example, C++ or Cobol, to run on the converted server, to run in 64-bit mode. Java applications can use the com.ibm.vm.bitmode Java property to determine the mode in which the server is running, and then load the correct 31-bit or 64-bit DLL to the native code.
An abend might occur if a server running in 64-bit mode tries to invoke an application containing a 31-bit native module. Similarly, An abend might occur if a server running in 31-bit mode tries to invoke an application containing a 64-bit native module.
For more information about converting language-environment (LE) applications to run in 64-bit mode, see the z/OS publication Language Environment Programming Guide for 64-bit Virtual Addressing Mode, SA22-7569.
To convert an application server from 31-bit mode to 64-bit mode, in the console select the Run in 64 bit JVM mode option on the configuration settings page for that application server, and change the minimum and maximum JVM heap sizes to values that are appropriate for a 64-bit process. Similarly to convert an application server from 64-bit mode to 31-bit mode, deselect the Run in 64 bit JVM mode option on the configuration settings page for that application server, and change the minimum and maximum JVM heap sizes to values that are appropriate for a 31-bit process.
If we use the MVS START command to start a 64-bit server, make sure that the AMODE parameter is set to 00 or 64, or is allowed to default to 00, on the START command. For example, you might issue one of the following commands:
S BBO7ACR,JOBNAME=BBOS001,ENV=BBOBASE.BBONODE.BBOS001,AMODE=64
S BBO7ACR,JOBNAME=BBOS001,ENV=BBOBASE.BBONODE.BBOS001
The startServer.sh command, and the console, automatically add the AMODE=64 parameter when they are used to start a 64-bit application server.
Converting a migrated deployment manager to run in 64-bit mode
Before converting a deployment manager from 31-bit to 64-bit mode...
- Verify that the system meets the requirements specified in the Systems requirements section.
- Verify that all applications to run on the deployment manager are updated to use 64-bit native code and DLLs.
The DLLs and other native code that the applications call must match the addressing mode of the server on which the applications are running. If we convert an existing application server from 31-bit mode to 64-bit mode, you must change any Java applications containing native code, for example, C++ or Cobol, to run on the converted server, to run in 64-bit mode. Java applications can use the com.ibm.vm.bitmode Java property to determine the mode in which the server is running, and then load the correct 31-bit or 64-bit DLL to the native code.
An abend might occur if a server running in 64-bit mode tries to invoke an application containing a 31-bit native module. Similarly, An abend might occur if a server running in 31-bit mode tries to invoke an application containing a 64-bit native module.
For more information about converting language-environment (LE) applications to run in 64-bit mode, see the z/OS publication Language Environment Programming Guide for 64-bit Virtual Addressing Mode, SA22-7569.
To convert a deployment manager from 31-bit mode to 64-bit mode, go to Servers > Server types > WebSphere application servers > server_name in the console and select the Run in 64 bit JVM mode option on the configuration settings page for the deployment manager as well as change the minimum and maximum JVM heap sizes to values that are appropriate for a 64-bit process.
If we use the MVS START command to start a 64-bit deployment manager, verify the AMODE parameter is set to 00 or 64, or is allowed to default to 00, on the START command. For example, you might issue one of the following commands:
S BBO7DCR,JOBNAME=BBODMGR,ENV=PLEXA.PLEXABBOCELL.BBODMGR.BBODMGR,AMODE=64
S BBO7DCR,JOBNAME=BBODMGR,ENV=BBOCELL.BBODMGR.BBODMGR
The startServer.sh command and the console automatically add the AMODE=64 parameter when they are used to start a 64-bit deployment manager.
Converting a server to run in 31-bit mode
Before converting a server from 64-bit to 31-bit mode, verify that all applications to run on the server use 31-bit native code and DLLs.
To convert a server from 64-bit mode to 31-bit mode...
- Start the server.
The server tells you what mode it is in when it starts:
BBOO0309I CONTROL PROCESS BBOBASE/BBONODE/BBOC001/BBOS001 IS EXECUTING IN 64-BIT ADDRESSING MODE
- Go to Servers > Server types > WebSphere application servers > server_name in the console.
- Deselect the Run in 64 bit JVM mode option on the configuration settings page for the server.
- Restart the server.
Now, the following messages appear on the console and in the server job log:
09.31.42 STC00104 BBOO0309I CONTROL PROCESS BBOBASE/BBONODE/BBOC001/BBOS001 IS EXECUTING IN 31-BIT ADDRESSING MODE. 09.31.42 STC00104 BBOO0340W 31-BIT MODE IS DEPRECATED FROM THE APPLICATION SERVER ON THE Z/OS OPERATING SYSTEM. CONSIDER USING 64-BIT MODE FOR BBOS001 AS AN ALTERNATIVE.
Related
Java virtual machine settings
Related information:
z/OS Publications
64-bit Addressing Support
C/C++ Code Considerations With 64-bit WebSphere Application Server for z/OS