ALL31

Derivation: ALL AMODE 31

ALL31 specifies if an application can run entirely in AMODE 31 or if the application has one or more AMODE 24 routines.

Guideline: ALL31 should have the same setting for all enclaves in a process. Language Environment does not support the invocation of a nested enclave requiring ALL31(OFF) from an enclave running with ALL31(ON) in non-CICS environments.

The default value for non-CICS applications is ALL31(ON).

The default value for CICS® applications is ALL31(ON).

Read syntax diagramSkip visual syntax diagram
Syntax

             .-ON--.      
>>-ALl31--(--+-----+--)----------------------------------------><
             '-OFF-'      

ON
If the initial routine of the Language Environment application is AMODE 31, this setting indicates that no other routines in the application will be AMODE 24.

If the initial routine of the Language Environment application is AMODE 24, ALL31 is dynamically switched to OFF. No message will be issued to indicate this action. However, if you generate a Language Environment runtime options report using the RPTOPTS runtime option, the ALL31 option will be reported as "Override" under the LAST WHERE SET column.

When ALL31(ON) remains in effect:
  • AMODE switching across calls to Language Environment common runtime routines is minimized. For example, no AMODE switching is performed on calls to Language Environment callable services.
  • Language Environment allocates storage for the common anchor area (CAA) and other control blocks in unrestricted storage.
  • COBOL EXTERNAL data is allocated in unrestricted storage.
OFF
Indicates that one or more routines of a Language Environment application are AMODE 24. When ALL31(OFF) is in effect:
  • Language Environment uses more storage below the 16M line.
  • AMODE switching across calls to Language Environment common runtime routines is performed. For example, AMODE switching is performed on calls to Language Environment callable services.
  • Language Environment allocates storage for the common anchor area (CAA) and other control blocks in storage below the 16M line.
  • COBOL EXTERNAL data is allocated in storage below the 16M line.

Restriction: If you use the setting ALL31(OFF), you must also use the setting STACK(,,BELOW,,,). AMODE 24 routines require stack storage below the 16M line.

z/OS® UNIX considerations

  • In a multithreaded environment, the ALL31 option applies to all threads in a process.
  • In a multithreaded environment, the thread start routine specified in the C pthread_create() function call is invoked in AMODE 31.

Usage notes

  • Restrictions: You must specify ALL31(OFF) if your COBOL applications contain one of the following programs:
    • VS COBOL II NORES
    • OS/VS COBOL (non-CICS)
    • If the Language Environment environment was initialized using ILBOSTP0
  • PL/I considerations: For PL/I MTF applications, Language Environment provides AMODE switching. Therefore, the first routine of a task can be in AMODE 24.
  • Fortran considerations: Use ALL31(ON) if all of the compile units in the enclave have been compiled with VS FORTRAN Version 1 or Version 2 and there are no requirements for 24-bit addressing mode. Otherwise, use ALL31(OFF).
  • XPLINK considerations: When an application is running in an XPLINK environment (that is, either the XPLINK(ON) runtime option was specified, or the initial program contained at least one XPLINK compiled part), the ALL31 runtime option is forced to ON. No AMODE 24 routines are allowed in an enclave that uses XPLINK. No message is issued to indicate this action. If a Language Environment runtime options report is generated using the RPTOPTS runtime option, the ALL31 option is reported as "Override" under the LAST WHERE SET column.
  • Guideline: ALL31 should have the same setting for all enclaves in a process. Language Environment does not support the invocation of a nested enclave requiring ALL31(OFF) from an enclave running with ALL31(ON) in non-CICS environments.

Performance consideration

If your application consists entirely of AMODE 31 routines, it will run faster and use less below-the-line storage with ALL31(ON) than with ALL31(OFF).

For more information

  • See STACK for information about the STACK runtime option.
  • See XPLINK for information about the XPLINK runtime option.