In the May 1998 issue of Midrange Computing, I discussed the system security values and what impact they have on the system and the users (see Password System Security Values Demystified). Over the next few months, I will cover the rest of the system values and their effects.
V4R1 has almost 100 nonsecurity system values. About half deal with OS/400
system control, and the other half control other things. This article examines part of the system control values, and a follow-up article will cover the balance of them. You can find a chart of all of the system values that deal with system control on the Midrange Computing Web site at http://www.midrangecomputing.com/mc/98/08.
This chart shows you all the values that Ill cover in both articles (alphabetically by value), a short descriptor of each, and the type and length of the value, in case you want to retrieve it with something such as the CL command Retrieve System Value (RTVSYSVAL).
Half of I/O Is Just Othe Values That Are Only Retrievable
There are six system values that you can only retrieve or display. They are not maintainable through the Work with System Value (WRKSYSVAL) command.
The IPL status (QIPLSTS) value is akin to a thermometer: It tells us only what happened with the last IPL. You could use this value in a start-up program (which is defined in the system value QSTRUPPGM). The responses are as follows:
0An IPL occurred as a result of the operator panel.
1An IPL occurred after power was restored from a power outage.
2An IPL occurred via the Power Down System with Restart (PWRDWNSYS RESTART(*YES)) command. This is possibly the most common value.
3An IPL occurred as a result of the system value QIPLDATTIM triggering that IPL.
4A remote IPL occurred.
Not only can you determine what kind of IPL the system last performed, but you can also determine if the last end of system was normal or abnormal. The previous end-of- system system value (QABNORMSW) will tell you how the system came down.
0Normal end of system
1Abnormal end of system The model (QMODEL) and serial number (QSRLNBR) can be retrieved from the system values. Software companies may retrieve these values to make sure that their software cannot be installed on multiple machines.
The Console device (QCONSOLE) system value tells us the name of the console device. This is set during the varying on of the device.
The Start print writer (QSTRPRTWTR) system value allows you to automatically start all of your printer devices when the system IPLs. Just use it in your startup program (which is defined in the system value QSTRUPPGM).
System Control, System Control, System Values
No, I did not take a course in double-talk. This group of values has some literal control on starting and stopping your AS/400 and on converting programs to RISC.
If you are coming from a CISC machine and moving your code to a RISC machine, you have a couple of options that involve system values. When you restore your objects with any of the restore commandssuch as Restore Object (RSTOBJ) or Restore Library (RSTLIB) youll be presented with a parameter that allows forced object conversion to RISC code (if you have observability on when the program objects are saved). The default value of this parameter in the RST commands is *SYSVAL, which allows this value to control whether the conversion is attempted. The Force conversion on restore (QFRCCNVRST) value has only two flavors:
0Do not force conversion (wait for the unlucky user who first calls this program up).
1Force the conversion upon restore. I suggest that, during your initial install of programs, you force the conversion of those programs (1). Then, after you have been running comfortably for a couple of months, change it to a 0.
Do you want your system to be analyzed remotely (QRMTSRVATR)? Simply choose one of two options:
0No
1Yes (enable the remove service attribute) Having a problem with your console? Be sure to check out the console problem indicator (QSCPFPCONS) system value. When the system IPLs and cant find a console, it has a decision to make:
0End the system if the console is not detected.
1Continue with the IPL. I suggest that you end the system if the IPL is being monitored by a live, warm, breathing human being. Use the continue option if your IPL is not monitored.
Have you ever wondered how the system knows what to do when it IPLs? All you need to know is the start-up program (QSTRUPPGM). As a default with every shipped AS/400, it is QSYS/QSTRUP. That CL program has no source, but it can be retrieved with the Retrieve CL Source (RTVCLSRC) command. RTVCLSRC can retrieve the source from a CL program if the Allow RTVCLSRC parameter is set to *YES on the Create CL Program (CRTCLPGM) command when the CL program is compiled. With
QSYS/QSTRUP, you can do just that. Simply retrieve it to a CL source member, fire up PDM, and look at its contents.
Within the retrieved source, you will see a strange but wonderful command: RTVSYSVAL. The IBM-supplied program retrieves the QSTRPRTWTR value and starts all writers if it is set properly.
Keep a copy of the source of your original startup program. Then, when you change to a different release of the operating system, you can compare the startup programs to see if any lines of code are changed. I use the nomenclature QCLSRC/QSTRUPvrm where vrm is the version release and modification. With each release of OS/400, I retrieve that source member. Then, I copy the needed lines (if any) to my custom startup program (which has an entirely different program name), compile it, and change the system value. I would strongly suggest that you look hard and close before you make any changes to existing lines of the IBM-supplied startup program. Just make additions where necessary.
The Controlling subsystem (QCTLSBSD) system value determines if you start with QSYS/QBASE, QSYS/QCTL, or another subsystem of your choosing. To find more on controlling subsystems, see appendix D.0 and sections 4.0.2 and 4.0.4 of OS/400 Work Management V4R1.
The PWRDWNSYS command has a default option to power it down immediately. Alternatively, you can choose the controlled option. You can specify a default number of seconds for the controlled option in the Power down limit (QPWRDWNLMT) system value.
IPL Controlling Values
When I was converting my CISC system to the RISC box, I did two things while prototyping the new and improved RISC machine. While doing the mundane task of conversion from CISC to RISC program objects, I submitted a series of those restores (I converted them as I restored them) to batch. The last job was power down the system. Later, when I actually got users in and let them do some prototyping, I powered the system down at the end of the day. In both cases, I used a system value that automatically powers the system up at a certain date and time if the system isnt already powered up (QIPLDATTIM).
To use QIPLDATTIM , you simply set the date and time that you want the system to power up. If perchance the system is already powered up (as was the case with some of my restores and conversions), when that date and time roll around, the system value resets to a setting of *NONE. When the system powers itself up by this method, it also resets that value to *NONE.
There are a couple of restrictions to using this value. The time must be at least five minutes past the current system time. The date cannot be more than 11 months after the current date and must be specified in the system date format (found in the system value QDATFMT). There is one oddity to this value: The time must be specified in the HHMMSS (hours, minutes, and seconds) format, but the seconds are ignored. Thanks, Rochester!
Would you like to determine what kind of IPL to perform? You can with the IPL type (QIPLTYPE) system value. In order for the system to IPL as you request with this value, the system must be in normal mode on the front panel.
0Normal IPL
1An attended IPL that brings up dedicated service tools (DST) and the complete IPL status screen
2Debug mode, which brings up the console (QCONSOLE) and the controlling subsystem, QSYS/QCTL
My preference is to leave this value at 0 and control what kind of IPL I perform by the panel on the front of the AS/400.
Power outages are nasty in any environment. I strongly suggest that you get a UPS if you do not have one. The small battery backup that comes on each AS/400 does not have adequate protection. Besides, a power outage may outlast any battery equipment you have on your AS/400. Power surges, brownouts, and spikes also can cause permanent damage that a UPS can alleviate.
An abnormal system end is another nasty thing. When power is restored on your system, you have the option to automatically power the system back up or leave it down. The Power restore IPL (QPWRRSTIPL) value controls it.
0No automatic IPL after power is restored
1Automatic IPL after power is restored I prefer to leave the system set to power up after a power outage. The final IPL system value allows you to remotely IPL your system. If you want to be able to IPL your AS/400 with a telephone call, you can set the Remote IPL (QRMTIPL) system value.
0Do not allow remote IPL
1Allow remote IPL This one is dangerous; any erroneous call could IPL your system. Unless you specifically need it, leave this at 0. There are other ways to ensure your system is up.
Job Control
The Assistance level (QASTLVL) system value controls what default assistance level the users have on certain screens and commands.
*BASICFor less experienced users (provides the most assistance)
*IMMEDFor more experienced users
*ADVANCEDFor the most experienced users This value may be overridden by the Assistance level parameter in the user profile. I suggest that you leave it at *ADVANCED and let the profile control any exceptions. (For more information, see SYSOP: Operational Assistant to Your Rescue, MC, July 1998.)
Do your users need a quick program or menu? Check out two things: my TechTalk piece in the May 1998 issue of Midrange Computing (see TechTalk: More Ways to Use the Attn Key) and the QATNPGM system value. You can set it as a systemwide default with this value.
*NONEYour users are out of luck; there is no default Attn key program.
*ASSISTYour users have some luck; the default Attn key program is the operational assistant.
The Keyboard buffer (QKBDBUF) value may or may not have an effect on your display session. Many of the PC emulation products and the newer display stations have buffers of their own that may need to be disabled or enabled to get this value to work properly. You have three options:
*TYPEAHEADAllows type ahead but not attention key buffering
*NOAllows attention key buffering but not type ahead
*YESAllows both type ahead and attention key buffering
You can set certain default job attributes with the Set job attributes (QSETJOBATR) system value. Use either *NONE or a combination of any of the other values.
*NONENo attributes are set.
*CCSIDSet the coded character set ID.
*DATFMTSet the date format.
*DATSEPSet the date separator.
*SRTSEQSet the sort sequence.
*TIMSEPSet the time separator. To set the default sort sequence, use the QSRTSEQ system value.
*HEXSystem default (uses the hexadecimal representation)
*LANGSHRThe shared weight sort table associated with the language ID system value (QLANGID)
*LANGIDUNQThe unique weight sort table associated with the Language ID system value (QLANGID)
The Performance adjustment (QPFRADJ) system value could possibly have the largest overall effect on your system. It tells the system whether or not to automatically change the memory pools and activity levels based upon the workload.
0No performance adjustment takes place. You must manually set the pools as you see fit.
1Adjust pools and activity time at IPL time only.
2Dynamically adjust the pools and activity level. This value has an interesting twist: It can change other system values. If it is set at 1 or 2, the Machine pool (QMCHPOOL) system value and the System activity level (QBASACTLVL) system value can be modified.
If you have plenty of memory and horsepower (i.e., your response time remains at 1 second or less), then use either 0 or 1. If you are in the rest of the world, then set that value to 2 and let the system dynamically adjust memory pools and activity levels. I have one problem with the dynamic adjustment: Sometimes, it moves too slowly and does not reallocate enough resources to overcome the workload. I would like to have two more system values: one to control the time for the system to check for heavy loads and another one to control the amount of memory it could swap. Neither are controllable now. IBM, are you listening?
Many users take an alternative to signing off. They use the Disconnect Job (DSCJOB) command so that, when they sign back on, they return to the environment they were at. This is good for the users, but its bad for the system; the system still has to control resources on that job. It is a good idea to set a maximum amount of time that disconnected jobs remain active (QDSCJOBITV). This value is set in minutes (between 5 and 1440, which is 24 hours) or at *NONE, which means that the job may remain active as long as the AS/400 is active. Jobs can also be disconnected by an I/O error at the workstation or with the QINACTMSGQ system value.
With the QAUTOSPRPT value, you can have the system automatically report a problem when it finds one. It is a logical value, either on or off.
0Disable
1Enable
To Be Continued
In the second part of this series, I will explore the balance of the system control security values. We will look at the values that control power down from the UPS,
configuration, device recovery, communication, and some Query values. Stay tuned .
Reference
OS/400 Work Management V4R1 (SC41-5306, CD-ROM QB3ALG00)
LATEST COMMENTS
MC Press Online