Release: All supported releases.
These DC205020/DC205019 messages were added for IDMS release 15.0 to issue a warning when a #GETSTG/GETMAIN failed during buffer allocation. This is only a warning, no abend occurs.
Although these messages are only a warning, there might be an impact on performance.
For example, if during buffer allocation, we run into storage problems due to opsys limits, the buffer will be opened, but it may not be totally allocated in 31-bit storage, it may cause CV system storage pools to be full or it may allocate the buffer with fewer pages than defined in the DMCL.
To warn users of IDMS about this, the DC205020/DC205019 messages were added.
Since IDMS release 15.0, these messages have been expanded to clarify the reason for the GETMAIN failure.
DC205032 was added in r19.0 by APAR SO04477 and in r18.5 by APAR SO04650.
DC205020 V26 T4461 DBIO GETMAIN ERR RC=0004 SIZE=00D0D DC205019 V26 T4461 IOSTATUS=0000 VERB=001 ERRSW=004 MOD DC205029 V26 T1 Unable to allocate Buffer in OPSYS subpool. Try IDMS Storage pools
The DC205029 means that it's trying to allocate Database Buffer within operating system storage, the allocation failed, so it then tries to allocate the buffer within the IDMS storage pools.
When the buffers are opening at startup, GETMAINs are issued. If a GETMAIN fails, these messages are produced.
IDMS will then try to allocate the buffers in smaller increments.
If there are OPSYS limits in place or if the buffer definitions are too large for the available 31-bit storage, the opsys may allocate part of the buffers in 24-bit storage which could cause possible abends like S878 or S80A, and/or IDMS may try to allocate part of the buffers in IDMS system Storage pools (pool 255 and pool 0) which can cause various performance problems related to Short on Storage conditions.
To resolve this problem; specify REGION=0M on the IDMS Startup EXEC statement:
// IDMSDC EXEC PGM=IDMSDC,REGION=0M, // PARM=('S=50,DMCL=IDMSDMCL,FSTG=1200,MT=Y'
Opsys limits are implemented with exits - like IEALIMIT or IEFUSI within SYS1.PARMLIB for the amount of storage a program can obtain.
REGION=0M should override the exits.