If REPORT IS YES is specified for a BALTER run, BALTER initiates the REPORT phase after the analysis phase. In the REPORT phase it outputs the analysis report via SYSLST. In the analysis report BALTER lists the changes to be carried out in the order in which it actually implements them during the restructuring phase.
If BALTER requires free memory space in the database for a modification, it also specifies:
In addition, BALTER logs whether, and how much, free space will become available as a result of each restructuring operation, and it reports changes which are illegal or only permissible under certain circumstances.
REPORT OF ADDED, DELETED AND NEEDED AREAS
Message | Meaning |
realm-name ADDED
| Realm realmname added |
realm-name DELETED
| Realm realm-name deleted |
realm-name NEEDED
| Realm realm-name needed Realm realm-name must be saved before the restructuring phase. |
Table 35: Report of added, deleted and needed realms
If REPORT IS YES is specified, BALTER also outputs to SYSOUT the names of the realms that are needed and those that are not needed
Message | Meaning |
REALM NEEDED: realm-name
| Realm realm-name needed Realm realm-name must be saved before the restructuring phase. |
REALM NOT NEEDED: realm-name
| Realm realm-name not needed |
Table 36: SYSOUT report on realms that are needed and not needed
REPORT OF CHANGES IN DBTT FOR RECORD: record-name
Log of DBTT changes for record type record-name
Message | Meaning |
NUMBER OF ENTRIES RESERVED IN OLD DBTT PAGE = integer
| Self-explanatory (page is synonymous with page) |
NUMBER OF ENTRIES RESERVED IN NEW DBTT PAGE = integer
| Self-explanatory |
TOTAL NUMBER OF PAGES IN OLD DBTT = integer
| Number of pages reserved for the previous DBTT (DBTT base and DBTT extents) |
TOTAL NUMBER OF PAGES, NEEDED FOR NEW DBTT IN AREA realm-name = integer. IF THERE IS NOT ENOUGH SPACE AVAILABLE, THE RESTRUCTURING PROCESS WILL ABEND.
| Total number of pages that the new DBTT requires in the realm realm-name. If there is not enough space available then the restructuring phase is aborted; contiguous empty pages must be available for the new DBTT extents that are to be created (cf. "Free memory space"). |
TABLE ANCHORED IN DBTT COLUMN: integer WILL BE DELETED.
| Self-explanatory |
TABLE ANCHORED IN DBTT-COLUMN-NR: integer WILL BE MOVED FROM {AREA realm-name-1 | OWNER AREA} TO {AREA realm-name-2 | OWNER AREA}.
| Self-explanatory |
[UP TO]{integer | NO} OLD DBTT PAGE(S) WILL BE FREED IN AREA realm-name
| Number of pages released by the previous DBTT in the realm realm-name. The precise number of pages actually released in the execution phase may in some cases be up to 64 pages smaller than indicated in integer. |
UP TO 256 CONSECUTIVE EMPTY PAM PAGES ARE NEEDED FOR NEW DBTT.
| If parts of an existing DBTT with extents are re-used then a new DBTT base, which is greater in size than a DBTT extent, is created. |
THE RECORD TYPE IS NOW OWNER IN SOME SETS.
| As a result of restructuring, a record type which was previously only a set member is now also a set owner. |
THE DBTT HAS TO BE SHORTENED TO ENTRIES.
| Databases with 2-Kbyte page format permit only 16711679 DBTT entries for owner record types (cf section “Declaring the population” in the "Design and Definition" manual). |
IF THERE ARE EXISTING ENTRIES WITH HIGHER RSQ THE RESTRUCTURING PROCESS WILL END ABNORMALLY.
| If DBTT entries above those possible for the owner record types exist in the previous member record type then BALTER aborts the restructuring phase. The planned restructuring is not possible in 2-Kbyte page format. |
Table 37: Report of DBTT changes
If the new DBTT occupies more pages than the previous one then the previously used pages continue to be used, if possible. If new DBTT extents are to be created then contiguous empty pages with the fixed size of these extents must be available. There must be a minimum of 128 contiguous free PAM- pages for each of the DBTT components.
If the new DBTT is exactly the same size as the previous one, or smaller, BALTER uses the pages of the previous DBTT to create the new DBTT. DBTT extents that are no longer required are released.
REPORT OF DATABASE CHANGES FOR SINGULAR SET: set-name
Message | Meaning |
LENGTH OF OLD SYSTEM RECORD = integer
| Self-explanatory (system record = anchor record) |
LENGTH OF NEW SYSTEM RECORD = integer
| Self-explanatory |
TABLE OCCURRENCE ANCHORED IN SYSTEM RECORD
COLUMN integer
WILL BE DELETED IF PRESENT.
| Self-explanatory |
TABLE ANCHORED IN DBTT-COLUMN-NR integer
WILL BE MOVED FROM
AREA realm-name-1 TO AREA realm-name-2.
| Self-explanatory |
FORWARD CHAIN POINTER WILL BE REMOVED.
| Self-explanatory |
BACKWARD CHAIN POINTER WILL BE REMOVED.
| Self-explanatory |
THE SYSTEM RECORD WILL BE CREATED
IN AREA realm-name
| Self-explanatory |
THE SYSTEM RECORD WILL BE DELETED
IN AREA realm-name
| Self-explanatory |
THE SYSTEM RECORD WILL BE MOVED FROM
AREA realm-name-1 TO AREA realm-name-2
| Self-explanatory |
integer PAGES FOR CALC SEARCH KEY TABLES
WILL BE FORMATED IN AREA realm-name. THEY ARE CONSECUTIVE. IS THERE ENOUGH SPACE AVAILABLE?
| Self-explanatory (page is synonymous with page) cf. "Free memory space". |
integer PAGES FOR CALC SEARCH KEY TABLES
WILL BE DELETED IN AREA realm-name
| Self-explanatory |
Table 38: Report of database changes for singular sets
REPORT OF DATABASE CHANGES FOR DELETION OF RECORD: record-name
Message | Meaning |
NUMBER OF ENTRIES RESERVED IN OLD DBTT PAGE = integer
| Self-explanatory (page is synonymous with page) |
integer OLD DBTT PAGES WILL BE FREED IN AREA realm-name
| Self-explanatory |
TABLE ANCHORED IN DBTT COLUMN integer
WILL BE DELETED IF PRESENT.
| Self-explanatory |
integer PAGES WITH CALC KEY RECORDS AND TABLES WILL BE DELETED IN AREA realm-name
| Self-explanatory |
integer PAGES WITH CALC KEY TABLES WILL BE DELETED IN AREA realm-name
| Self-explanatory |
ALL RECORD INFORMATION WILL BE DELETED.
| Self-explanatory |
Table 39: Report of database changes for deletion of record types
REPORT OF DATABASE CHANGES FOR CREATION OF RECORD: record-name
Message | Meaning |
NUMBER OF ENTRIES RESERVED IN NEW DBTT PAGE = integer
| Self-explanatory (page is synonymous with page) |
TOTAL NUMBER OF PAGES, NEEDED FOR NEW DBTT IN AREA realm-name = integer
| Number of empty pages that the new DBTT requires in the realm realmname. Contiguous empty pages must be available for the DBTT base and the DBTT extents. |
integer PAGES FOR CALC KEY RECORDS AND
TABLES WILL BE FORMATED IN AREA
realm-name.
THEY ARE CONSECUTIVE.
| Self-explanatory (direct hash area) |
integer PAGES FOR CALC KEY TABLES WILL BE
FORMATED IN AREA realm-name.
THEY ARE CONSECUTIVE.
| Self-explanatory (indirect hash area) |
IF THERE IS NOT ENOUGH SPACE AVAILABLE, THE RESTRUCTURING PROCESS WILL END ABNORMALLY.
| Self-explanatory cf. "Free memory space". |
Table 40: Report of database changes for creation of record types
REPORT OF DATABASE CHANGES FOR RECORD: record-name
Message
| Meaning |
integer PAGES WITH CALC KEY RECORDS AND TABLES WILL BE DELETED IN AREA realm-name
| Self-explanatory |
integer PAGES WITH CALC KEY TABLES WILL BE DELETED IN AREA realm-name
| Self-explanatory |
integer PAGES FOR CALC KEY RECORDS AND TABLES WILL BE FORMATED IN AREA realm-name. THEY ARE CONSECUTIVE. IS THERE ENOUGH SPACE AVAILABLE?
| Self-explanatory cf. "Free memory space". |
integer PAGES FOR CALC KEY TABLES WILL BE FORMATED IN AREA realm-name. THEY ARE CONSECUTIVE. IS THERE ENOUGH SPACE AVAILABLE?
| Self-explanatory cf. "Free memory space". |
AREA DELETED FROM RECORD-WITHIN-CLAUSE
| Self-explanatory |
FOLLOWING ACTIONS EXECUTED IF RECORD OCCURRENCES ARE PRESENT:
| Self-explanatory |
THE RESTRUCTURING PROCESS WILL END ABNORMALLY FOR NOT ALLOWED SCHEMA CHANGES.
| Self-explanatory |
THE RESTRUCTURING PROCESS WILL END ABNORMALLY IF RECORD OCCURRENCES ARE PRESENT IN AREAS WHICH ARE DELETED FROM RECORD-WITHIN-CLAUSE
| Self-explanatory |
A NON SINGULAR AUTOMATIC SET THAT WAS NOT PRESENT IN THE OLD SCHEMA HAS BEEN SPECIFIED IN THE NEW SCHEMA. THE RESTRUCTURING PROCESS WILL STOP BECAUSE THE SET OCCURRENCES TO WHICH EACH RECORD OCCURRENCE BELONGS ARE NOT KNOWN.
| Self-explanatory |
AS A CONSEQUENCE OF LOGICAL CHANGE THE RECORDTYPE WILL BE PLACED IN NEW PAGES. DURING THE PROCESS THE RECORDTYPE WILL RESIDE TWICE IN THE AREA(S). IS THERE ENOUGH SPACE AVAILABLE?
| Self-explanatory cf. "Free memory space". |
SET setname DOES NOT HAVE MODE = LIST ANY- MORE. THE LIST TABLE HEADER WILL BE REMOVED FROM THE LIST-PAGES.
| Self-explanatory |
DUE TO A CHANGE IN LOCATION MODE THE CALC KEY INFORMATION WILL BE REMOVED.
| Self-explanatory |
CALC RECORDS AND KEYS WILL BE PLACED IN THE CALC KEY PAGES.
| Self-explanatory |
CALC KEYS WILL BE PLACED IN THE CALC KEY PAGES.
| Self-explanatory |
'DUPLICATES ARE NOT ALLOWED' HAS BEEN SPECIFIED FOR THE CALC KEY. IF DUPLICATES ARE DETECTED THE DUPLICATE VALUES WILL BE PRINTED AND THE RESTRUCTURING PROCESS WILL CONTINUE.
| Self-explanatory. Note: If the table contains duplicates after the BALTER run, the table cannot be processed by means of these duplicates. This situation can be corrected as follows: First define DUPLICATES ARE ALLOWED in the Schema DDL; then fill the key items in accordance with DUPLICATES NOT, and finally change the DDL definition to DUPLICATES NOT. |
'DUPLICATES ARE NOT ALLOWED' HAS BEEN SPECIFIED FOR THE CALC KEY. THIS KEY IS A NEW ONE ON {ONE NEW FIELD | ONLY NEW FIELDS}. THEREFORE THE TABLE WILL HAVE ONLY DUPLICATES. THIS IS INCONSISTENT WITH 'DUPLICATES ARE NOT ALLOWED'. SPECIFY 'DUPLICATES ARE ALLOWED' IF DUPLICATES ARE DETECTED THE DUPLICATE VALUES WILL BE PRINTED AND THE RESTRUCTURING PROCESS WILL CONTINUE.
| DUPLICATES ARE NOT ALLOWED was defined for the CALC key. Each item of this key is new. If existing records of the record type for which the key is defined are used to create the table, the table will consist of all new items and can only contain duplicates. BALTER logs the found duplicates and continues restructuring. However, the table cannot be processed. These conflicting entries can be corrected as follows: First define DUPLICATES ARE ALLOWED in the Schema DDL; then fill the key items in accordance with DUPLICATES NOT, and finally change the DDL definition to DUPLICATES NOT.. |
FOR SET setname A SORTED CHAIN WILL BE BUILT.
| Self-explanatory |
FOR SET setname A LIST TABLE WILL BE BUILT.
| Self-explanatory |
FOR SET setname A POINTER ARRAY WILL BE BUILT.
| Self-explanatory |
'DUPLICATES ARE NOT ALLOWED' HAS BEEN SPECIFIED FOR THE SORT KEY. IF DUPLICATES ARE DETECTED THE DUPLICATE VALUES WILL BE PRINTED AND THE RESTRUCTURING PROCESS WILL CONTINUE.
| Self-explanatory. Note: If the table contains duplicates after the BALTER run, the table cannot be processed by means of these duplicates. This situation can be corrected as follows: First define DUPLICATES ARE ALLOWED in the Schema DDL; then fill the key items in accordance with DUPLICATES NOT, and finally change the DDL definition to DUPLICATES NOT. |
'DUPLICATES ARE NOT ALLOWED' HAS BEEN SPECIFIED FOR THE SORT KEY. THIS KEY IS A NEW ONE ON {ONE NEW FIELD | ONLY NEW FIELDS}. THEREFORE THE TABLE WILL HAVE ONLY DUPLICATES. THIS IS INCONSISTENT WITH 'DUPLICATES ARE NOT ALLOWED'. SPECIFY 'DUPLICATES ARE ALLOWED' IF DUPLICATES ARE DETECTED THE DUPLICATE VALUES WILL BE PRINTED AND THE RESTRUCTURING PROCESS WILL CONTINUE.
| DUPLICATES ARE NOT ALLOWED was defined for the ASC/DESC key. Each item of this key is new. If existing records of the record type for which the key is defined are used to create the table, the table will consist of all new items and can only contain duplicates. BALTER logs the found duplicates and continues restructuring. However, the table cannot be processed. These conflicting entries can be corrected as follows: First define DUPLICATES ARE ALLOWED in the Schema DDL; then fill the key items in accordance with DUPLICATES NOT, and finally change the DDL definition to DUPLICATES NOT. |
FOR SET setname CALC SEARCH KEYS WILL BE PLACED IN THE CALC KEY PAGES.
| Self-explanatory |
FOR SET setname AN INDEXED SEARCH KEY TABLE OF TYPE REPEATED KEY WILL BE BUILT
| Self-explanatory |
FOR SET setname AN INDEXED SEARCH KEY TABLE OF TYPE DATABASE KEY LIST WILL BE BUILT.
| Self-explanatory |
'DUPLICATES ARE NOT ALLOWED' HAS BEEN SPECIFIED FOR THE SEARCH KEY. IF DUPLICATES ARE DETECTED THE DUPLICATE VALUES WILL BE PRINTED AND THE RESTRUCTURING PROCESS WILL CONTINUE.
| Self-explanatory. Note: If the table contains duplicates after the BALTER run, the table cannot be processed by means of these duplicates. This situation can be corrected as follows: First define DUPLICATES ARE ALLOWED in the Schema DDL; then fill the key items in accordance with DUPLICATES NOT, and finally change the DDL definition to DUPLICATES NOT. |
'DUPLICATES ARE NOT ALLOWED' HAS BEEN SPECIFIED FOR THE SEARCH KEY. THIS KEY IS A NEW ONE ON {ONE NEW FIELD | ONLY NEW FIELDS}. THEREFORE THE TABLE WILL HAVE ONLY DUPLICATES. THIS IS INCONSISTENT WITH 'DUPLICATES ARE NOT ALLOWED'. SPECIFY 'DUPLICATES ARE ALLOWED' IF DUPLICATES ARE DETECTED THE DUPLICATE VALUES WILL BE PRINTED AND THE RESTRUCTURING PROCESS WILL CONTINUE.
| DUPLICATES ARE NOT ALLOWED was defined for the SEARCH key. Each item of this key is new. If existing records of the record type for which the key is defined are used to create the table, the table will consist of all new items and can only contain duplicates. BALTER logs the found duplicates and continues restructuring. However, the table cannot be processed. These conflicting entries can be corrected as follows: First define DUPLICATES ARE ALLOWED in the Schema DDL; then fill the key items in accordance with DUPLICATES NOT, and finally change the DDL definition to DUPLICATES NOT. |
ALL RECORD OCCURRENCES WILL BE READ AND WRITTEN.
| Self-explanatory |
ALL RECORD OCCURRENCES WILL BE READ, MODIFIED AND WRITTEN. THESE MODIFICATIONS ARE A CONSEQUENCE OF CHANGES IN: - THE SYSTEM-PART OF THE RECORD - THE USER-PART OF THE RECORD
| Self-explanatory |
THE SYSTEM WILL TRY TO USE SAME PAGE FOR THE NEW ALLOCATION OF THE RECORD OCCURRENCES.
| Self-explanatory |
LIST WILL BE REALLOCATED
| A list will be reconstructed. Member records of a distributable SYSTEM-LIST set will be distributed approximately evenly over the realms involved. |
RECORDS OF SYSTEM LIST SET CAN NOW BE STORED IN n REALMS
| Following reconstruction the member records can be stored in n realms. |
Table 41: Report of changes for record types
If the user part of a record type has been modified, BALTER outputs a table contrasting the layout of the old record with that of the new:

Figure 29: Comparison of the old and the new record (user-part)
LAYOUT OLD RECORD (USER PART)
Self-explanatory
LAYOUT NEW RECORD (USER PART)
Self-explanatory
ITEM-NAME
Item name
TYPE Type of item:
1 alphanumeric
2 unsigned decimal, unpacked
3 signed decimal, unpacked
5 packed decimal
6 half-word
7 Wort
8 database key item
DISPL Displacement of item from beginning of record type (incl. SCD).
What to do if there is a shortage of memory space in the realms
If the analysis report shows that the space required for restructuring in one or more database realms is greater than the space available, the following action must be taken:
either fulfil the requirements to permit the realms concerned to be extended automatically (for details see the "Database Operation" manual)
or create additional memory space in the realms concerned manually:
the realms of the database which have already been modified should be reset to their original state before the beginning of restructuring (see section "Restoring the database"),
the concerned realms should be extended using BREORG, and
the restructuring process should be repeated from the ’preparing the compiler database’ stage onwards.