IBM Support

How do I fix a space ABEND in SCLM build?

Question & Answer


Question

When building an application in SCLM, a B37 ABEND occurs when allocating one of the data sets required for the build.

The build fails with return code = 8, and a message appears on the screen or in the JOBLOG, similar to this:

  IEC030I B37-04,IFG0554A,SHELLY,ISPF,SYSPRINT,VIO ,   , SYS09055.T011950.RA000.SHELLY.SYSPRINT.H01   

How do I fix the problem?

Answer

SCLM builds a member based on the language definition, which is associated with that member when the member is edited or migrated. While building the member, SCLM invokes one or more translators. For each translator, SCLM allocates temporary data sets as requested by FLMALLOC macros in the language definition. Sometimes the space allocated is not sufficient to store the build outputs.

The IEC030I message gives some important clues to resolve this problem. The message format is: IEC030I B37-rc,mod, jjj,sss,ddname, dev,ser,diagcode,dsname( member) where: rc - Associates this message with system completion code B37 and with the return code. mod - The name of the module in which the error occurred. jjj - jobname sss - The step name. ddname - DDname. dev - The device number. ser - The volume serial number. diagcode - The DADSM Extend diagnostic code, if available. dsname(member) - The data set name. Member name if specified.

For B37 ABENDs in SCLM build, the most important data are usually the ddname, the device, and the dsname. In this example:

 IEC030I B37-04,IFG0554A,SHELLY$,BUILD0,SYSPRINT,VIO ,      ,
         SYS09056.T033259.RA000.SHELLY$.SYSPRINT.H01

the ddname of SYSPRINT, the device of VIO, and the data set name of SYS09056.T033259.RA000.SHELLY$.SYSPRINT.H01 tell you where to look in the language definition.

For languages with PORDER=2 or PORDER=3, sometimes FLMALLOC statements do not have ddnames. In that case, SCLM generates a ddname starting with SL, such as SLGGNDT2, in this example:

 IEC030I B37-04,IFG0554A,SHELLY,ISPF,SLGGNDT2,E504,D$US35,
         SHELLY.SLGGNDT2  

so it is not clear from the message which of the FLMALLOC statements is in error. If this happens, try adding ddnames to the FLMALLOC statements, like this:

  FLMALLOC  IOTYPE=O,KEYREF=LMAP,RECFM=FBA,LRECL=121,   C
            RECNUM=2500,PRINT=Y,DDNAME=LKPRINT                      

Do not use ddnames that are used elsewhere in the language definition, since conflicts can arise. Assemble and link the language definition, and try the build again. The error message should give a ddname that identifies the failing allocation.

The next thing to do is determine whether the allocation was for virtual storage (VIO) or direct access storage (DASD). Often, the IEC030I message communicates this with the device name. If the device name is obvious, like VIO, you can be fairly certain that it is a VIO allocation. The data set name is another indicator. VIO data set have names like:

 SYS09056.T033259.RA000.SHELLY$.SYSPRINT.H01

and DASD data sets have names like:

 SHELLY.SLGGNDT2

Resolving the problem The RECNUM value on the FLMALLOC is used in the calculation of the primary and secondary space allocations required for the temporary data set. Ensure that the RECNUM parameter accurately reflects your best estimate for the number of records to be written to the data set.

If the error is for a DASD data set, increase the RECNUM value.

If the error is for a VIO data set, then the amount of VIO storage available on the system has been exceeded. The MAXVIO parameter on the FLMCNTRL macro can help you balance the efficiency provided by virtual storage and the system limits. If you get a B37 ABEND on a VIO data set, try reducing the MAXVIO value.

SCLM only uses VIO if RECNUM is less than or equal to the MAXVIO parameter. Raising the RECNUM value to a number higher than the MAXVIO value will ensure that DASD is used rather than VIO.

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSCVRUA","label":"SCLM for z\/OS"},"Platform":[{"code":"PF035","label":"z\/OS"}],"Component":"","Version":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
02 January 2017

UID

dwa1335003