DB004043 on ALTER AREA

Document ID : KB000053002
Last Modified Date : 05/03/2018
Show Technical Document Details
Introduction:
If an area has multiple WITHIN FILE clauses, an ALTER AREA operation will result in a DB004043 error message.
Environment:
CA-IDMS, all releases.
See note below about release prior to r17.0
Instructions:

The ALTER AREA operation functions differently depending on whether the area in question has exactly one, or more than one, WITHIN FILE clauses.

If it has exactly one WITHIN FILE clause, the command facility assumes that a WITHIN FILE clause for that file is referring to the same file.

If it has more than one WITHIN FILE clause, the command facility assumes that every WITHIN FILE clause is an attempt to add a new WITHIN FILE clause, even if that file is already included as one of the files to which that the area is allocated. It must do this because it is theoretically possible to distribute sections of an area across the same file more than once.

The DISPLAY AREA xxx VERB ALTER AS SYNTAX command displays an AREA with all of its WITHIN FILE clauses uncommented. When that output is re-submitted through OCF (if there are multiple WITHIN FILE clauses), the DB004043 message is issued:

   ALTER
   PHYSICAL AREA DMLWORK.DML-AREA-3
      PRIMARY SPACE 25000 PAGES FROM PAGE 100001
      MAXIMUM SPACE 25000 PAGES
      PAGE SIZE 4276 CHARACTERS
      WITHIN FILE DMLF3P1
      FROM 1 FOR 5000 BLOCKS
      WITHIN FILE DMLF3P2
      FROM 1 FOR 5000 BLOCKS
      WITHIN FILE DMLF3P3
      FROM 1 FOR 5000 BLOCKS
      WITHIN FILE DMLF3P4
      FROM 1 FOR 5000 BLOCKS
      WITHIN FILE DMLF3P5
      FROM 1 FOR 5000 BLOCKS
      ;
      *+ Status = -4 SQLSTATE = 64000 Messages follow:
      *+ DB004043 T513 C-4M6016: WITHIN FILE DMLWORK.DMLF3P1 blocks requested exceeds
      *+ available pages in the AREA
      *+ DB004043 T513 C-4M6016: WITHIN FILE DMLWORK.DMLF3P2 blocks requested exceeds
      *+ available pages in the AREA
      *+ DB004043 T513 C-4M6016: WITHIN FILE DMLWORK.DMLF3P3 blocks requested exceeds
      *+ available pages in the AREA
      *+ DB004043 T513 C-4M6016: WITHIN FILE DMLWORK.DMLF3P4 blocks requested exceeds
      *+ available pages in the AREA
      *+ DB004043 T513 C-4M6016: WITHIN FILE DMLWORK.DMLF3P5 blocks requested exceeds
      *+ available pages in the AREA  

The solution is to first EXCLUDE all of the WITHIN FILE clauses:

   ALTER
   PHYSICAL AREA DMLWORK.DML-AREA-3
      PRIMARY SPACE 25000 PAGES FROM PAGE 100001
      MAXIMUM SPACE 25000 PAGES
      PAGE SIZE 4276 CHARACTERS
      EXCLUDE FILE DMLF3P1
      EXCLUDE FILE DMLF3P2
      EXCLUDE FILE DMLF3P3
      EXCLUDE FILE DMLF3P4
      EXCLUDE FILE DMLF3P5
      WITHIN FILE DMLF3P1
      FROM 1 FOR 5000 BLOCKS
      WITHIN FILE DMLF3P2
      FROM 1 FOR 5000 BLOCKS
      WITHIN FILE DMLF3P3
      FROM 1 FOR 5000 BLOCKS
      WITHIN FILE DMLF3P4
      FROM 1 FOR 5000 BLOCKS
      WITHIN FILE DMLF3P5
      FROM 1 FOR 5000 BLOCKS
      ;
      *+ Status = 0 SQLSTATE = 00000  

Note: The information in this document applies to r17.0. Prior to r17.0 there was an APAR which altered the functionality of the DISPLAY AREA xxx VERB ALTER AS SYNTAX command. Prior to that APAR, areas with multiple WITHIN FILE clauses had the WITHIN FILE clauses output as comments even if AS SYNTAX was requested. See RO01555 (r15.0), RO01556 (r16.0 Sp0 and Sp1) and RO01557 (r16.0 Sp2 and above).