Controlled starting of objects during IPL with IPLLEVEL
You can use IPL levels to perform a controlled, step-by-step IPL or system shutdown. You can accomplish this by defining the IPL levels, specifying a start or stop timeout for each level, and by associating objects with the desired IPL level.
By using IPL levels, you can start or stop a group of objects to perform validation or maintenance before starting the next group of objects. You can also partially bring your system up or down to perform maintenance or other processing that does not require the entire system.
Task 1: Creating IPL levels
You create and name IPL levels by using the IPLORDER= parameter in the MAMINIxx BBPARM member. The order in which you define them determines the order in which TOM starts and stops objects associated with them during an IPL or shutdown.
You can also specify a timeout start and stop time for each level. TOM monitors the objects at each level to ensure that they reach the required state within the specified timeout time. If there are objects that are not in the required state at the end of the timeout period, you receive messages listing the objects not yet in their required state.
If you don't specify a timeout start or stop time for a level, TOM calculates default times as follows:
- Start time—Number of objects associated with that level for the local system multiplied by 5 seconds
- Stop time—Number of objects associated with that level for the local system multiplied by 10 seconds
To create IPL levels
In the MAMINIxx BBPARM member, set the IPLORDER parameter in the following format:
IPLORDER=((level1,start1,stop1),(level2,start2,stop2),…)
The variables in this parameter are defined as follows:
- level1—Name of the first IPL level
- start1—(Optional) Start time of the timeout period for the first IPL level, specified as a number of minutes from 1–99
- stop1—(Optional) Stop time of the timeout period for the first IPL level, specified as a number of minutes from 1–99
- level2—Name of the second defined IPL level
- start2—(Optional) Start time of the timeout period for the second IPL level, specified as a number of minutes from 1–99
- stop2—(Optional) Stop time of the timeout period for the second IPL level, specified as a number of minutes from 1–99
Task 2: Associating objects with IPL levels
You can associate objects with an IPL level by specifying the level name in the object’s IPL Level: attribute. By specifying this object attribute, you can group your objects by IPL level to control which objects start and stop at each level. Any objects for which you do not associate with an IPL level or any objects that specify an IPL level that is not defined in IPLORDER are automatically associated with <null> IPL level.
To specify the timeout start and stop times for the <null> level
In the MAMINIxx BBIPARM member, set the following parameters:
- Start time—IPLTIME parameter
- Stop time—SHUTTIME parameter
If you don't specify values in these parameters, TOM calculates the default times as described in Task 1: Creating IPL levels.
Task 3: Starting objects
Starting your TOM PAS with the IPLL=Y parameter activates IPL level processing. Alternatively, to dynamically activate IPL level processing, perform one of these steps:
- Use the ACTivate console command.
- Use the TOMEXEC API ACTivate function with the IPLLEVEL parameter.
- On the TSYS view, use the ACTivate line command.
TOM sets the first IPL level as the current IPL level and starts only those objects in your active Definition Base that are associated with that IPL level. Other objects do not start, so you can perform maintenance or validation at each level.
You then use the START IPLLEVEL command to start the objects associated with the next IPL level. TOM sets that IPL level as the current one and starts objects that are associated with it.
You can issue from this command as follows:
- As a console command.
- As a TOMEXEC API request
- On the TSYS view, by using the SIL (START IPLLEVEL) line command
Use the START IPLLEVEL command again to start subsequent IPL levels. It always sets the next IPL level as the current one and starts the objects in that level. You cannot start IPL levels in a different order from that in which you defined them in the IPLORDER parameter.
After you've started all the defined IPL levels, you can use START IPLLEVEL again to start the objects associated with the <null> IPL level (that is, those that you didn't associate with any defined IPL level, as well as any objects that specify an IPL level you didn’t define in IPLORDER). All objects are now started.
Task 4: Stopping objects
To bring objects down, either for system shutdown or to perform maintenance, use the STOP IPLLEVEL command. You can issue this command as follows:
- As a console command
- As a TOMEXEC API request
- On the TSYS view, by using the PIL (STOP IPLLEVEL) line command
When you issue the STOP IPLLEVEL command, TOM stops all objects associated with the current IPL level and then sets the previously defined IPL level as the current one. For example, if the current IPL level is <null>, STOP IPLLEVEL will cause TOM to stop all objects associated with the <null> level and then set the current IPL Level to the previously defined IPL level, which was ONLINE. The next STOP IPLLEVEL command will stop all objects defined to the ONLINE IPL level and set the current IPL Level to DATABASE. At any time, you can issue the START IPLLEVEL command to start the objects in the next defined IPL level. If you want perform maintenance, you can issue START IPLLEVEL or STOP IPLLEVEL commands to bring the system to the needed level.
You cannot use the STOP IPLLEVEL command if the current IPL level is the first level defined in IPLORDER. Instead, use the SHUTSYS command to bring TOM down.
You can use the SHUTSYS command at any time to bring down all objects, regardless of their IPL level.
Any time a SHUTSYS is performed with IPL levels enabled and the first defined IPL level is not the current level, TOM calculates the shutdown timeout value by accumulating the timeout stop value for each active level.
Troubleshooting
When TOM starts an IPL Level, it first determines how many objects are associated with that level on the local system. It then evaluates each object to ensure it can start. The following issues can prevent an object from starting:
- Schedules or dependencies that are not satisfied
- An object that is blocked or locked at IPL
- An object that is in a SUSPEND state.
After TOM identifies eligible objects, it begins to start them. The process of starting objects is a continuous process until all objects are started or a timeout occurs. TOM might make several passes and issue the same messages each pass to indicate how many eligible objects are starting. This might occur because of object dependencies. If there are dependencies on other objects within the IPL level, TOM must first start the parent object and then start the child object on the next pass.
For examples of performing a TOM IPL and shutdown by using IPL levels, please see Examples: Using IPL levels.