Altering IMS logical relationships
The steps in the table below outline the steps required to add or modify logical relationships by reorganizing a database.
The table below shows you what you need to do based on
the logical relationships and pointers you are starting from in column
1, the databases you are reorganizing in column 2, and the logical
relationships and pointers you are adding in columns 3 to 6. Column
1 is the FROM
column. Columns 3 to 6 are the TO
columns.
- When a logically related database must be scanned
- When both sides of a logical relationship must be reorganized
- When the Prefix Resolution and Prefix Update utilities must be run
If the Prefix Resolution and Prefix Update utilities do
not need to be run, the table cell contains finished
.
The figure applies to reorganizations only. When initially loading databases, you must run the Prefix Resolution and Update utilities whenever work data sets are generated.
The following table covers all reorganization situations, whether or not database pointers are being changed. In using the figure, a bidirectional physically paired relationship should be treated as two unidirectional relationships. Unless otherwise specified, DBR should be specified for the reorganized databases when the Prereorganization utility is run.
The following two examples guide you in use of the table.
Example 1: Reorganizing a database with unidirectional symbolic pointers without changing pointers
- The database containing the logical parent
- The database containing the logical child
- Both databases, if necessary
In all three situations, it is not necessary to run
the Prefix Resolution or Update utilities (this is what is meant by finished
).
Example 2: Changing bidirectional symbolic pointers to bidirectional direct pointers during a reorganization
- Reorganizing only the logical parent database cannot be done, because a logical parent pointer must be created in the logical child segment in the logical child database.
- Reorganizing the logical child database can be done. To scan the logical child database, you must scan the logical parent database. The control statements for the Prereorganization utility must specify DBIL for the logical child database. Also, the Prefix Resolution and Update utilities must be run.
- Reorganizing both databases can also be done. In this case, the control statements for the Prereorganization utility must specify DBIL for the logical child database and DBR for the logical parent database. Again, the Prefix Resolution and Update utilities must be run.
FROM: existing logical relationship and pointers | Databases to be reorganized | TO: new logical relationship and pointers | |||
---|---|---|---|---|---|
Unidirectional symbolic pointers | Unidirectional direct pointers | Bidirectional symbolic pointers | Bidirectional direct pointers | ||
Unidirectional with symbolic pointers | Logical parent database only | Finished1 | Not valid, because symbolic LP pointers exist now and direct LP pointers must be added to the logical child database. | 1. Scan logical child
database. 2. Run prefix resolution and update. Note: Logical child segment will not contain LT pointers unless it is reorganized. |
Not valid, because direct LP and LT pointers must be put in the logical child database. |
Logical child database only | Finished | 1. Scan logical parent
database. 2. Run prefix resolution and update. Specify DBIL for the logical child database. |
Not valid, because a counter exists now and LCF/LCL pointers must be put into the logical parent database. | Not valid, because a counter exists now and LCF/LCL pointers must be put into the logical parent database. | |
Both databases | Finished2 | Run prefix resolution
and update. Specify DBIL for the logical child database and DBR for the logical parent database. |
Run prefix resolution
and update. Specify DBR for both databases. |
Run prefix resolution
and update. Specify DBIL for the logical child database and DBR for the logical parent database. |
|
Unidirectional with direct pointers | Logical parent database only | Not valid, because a direct LP pointer exists now and symbolic LP pointers must be added to the logical child database. | 1. Scan logical child
database. 2. Run prefix resolution and update. |
Not valid, because a direct LP pointer exists now and symbolic LP pointers must be added to the logical child database. LT pointers must also be added to the logical child database. | 1. Scan logical child
database. 2. Run prefix resolution and update. Note: Logical child segment will not contain LT pointers unless database is reorganized. |
Logical child database only | Finished | Finished | Not valid, because LCF/LCL pointers must be put in the logical parent database. | Not valid, because LCF/LCL pointers must be put in the logical parent database. | |
Both databases | Finished2 | Run prefix resolution and update. | Run prefix resolution and update. | Run prefix resolution and update. | |
Bidirectional with symbolic pointers | Logical parent database only | Not valid, because the counter in the logical parent database will not be resolved and LT pointers exist now in the logical child database. | Not valid, because symbolic LP and LT pointers exist now and a direct LP pointer must be added to the logical child database. | 1. Scan logical child
database. 2. Run prefix resolution and update. Note: LCF/LCL pointers are not unloaded and reloaded. |
Not valid, because a symbolic LP pointer exists now and a direct LP pointer must be added to the logical child database. |
Logical child database only | Not valid, because LCF/LCL pointers exist now in the logical parent database and a counter must be added to the logical parent database. | Not valid, because LCF/LCL pointers exist now in the logical parent database and a counter must be added to the logical parent database. | 1. Scan logical parent
database. 2. Run prefix resolution and update. |
1. Scan logical parent
database. 2. Run prefix resolution and update. 3. Specify DBIL for the logical child database. |
|
Both databases | Run prefix resolution
and update. Specify DBIL for the logical child database and DBR for the logical parent database. |
Run prefix resolution
and update. Specify DBIL for the logical child database and DBR for the logical parent database. |
Run prefix resolution and update. | Run prefix resolution
and update. Specify DBIL for the logical child database and DBR for the logical parent database. |
|
Bidirectional with direct pointers | Logical parent database only | Not valid, because direct LP and LT pointers exist in the logical child database and symbolic LP pointers must be added. | Not valid, because the counter in the logical parent database will not be resolved and LT pointers will not be removed from the logical child database. | Not valid, because a direct LP pointer exists in the logical child database and the change is to symbolic LP pointers. | 1. Scan logical child
database. 2. Run prefix resolution and update. Note: LCF/LCL pointers are not unloaded and reloaded. |
Logical child database only | Not valid, because LCF/LCL pointers exists in the logical parent database and a counter must be added to the logical parent database. | Not valid, because LCF/LCL pointers exist now in the logical parent database and a counter must be added to the logical parent database. | 1. Scan logical parent
database. 2. Run prefix resolution and update. |
1. Scan logical parent
database. 2. Run prefix resolution and update. |
|
Both databases | Run prefix resolution
and update. Specify DBIL for the logical child database and DBR for the logical parent database. |
Run prefix resolution
and update. Specify DBIL for the logical child database and DBR for the logical parent database. |
Run prefix resolution and update. | Run prefix resolution and update. |
- The Prereorganization utility says to scan the logical child database and the DFSURWF1 records will be produced if scan is run.
- DFSURWF1 records are produced; however, the prefix resolution and update utilities need not be run.