May 19, 1995
"What versions of your products do I need for MPE/iX 5.0."
I have included edited text from our Robelle FAQ to answer that very question. In fact, this edition of WUD is entirely dedicated to MPE/iX 5.0 issues and features. You can reach our FAQ text at
http://www.robelle.com
For those of you who do not have Internet access, you can always call to have technical support answer your questions or even to have the FAQ text faxed to you. The current FAQ includes the following titles:
Qedit MPE version 4.3 installation instructions
Qedit UX version 4.3 installation instructions
Suprtool version 3.7 installation instructions
Qedit. You must have Qedit version 4.3 or later for MPE/iX 5.0. This version was shipped to all customers worldwide before January, 1995. If you plan to use any of the new POSIX features, including the HFS, you should contact Robelle and ask for the latest Qedit pre-release.
Qedit Compiler Interfaces. After updating to MPE/iX 5.0, you will need to Qedify your new compilers so that you will be able to compile Qedit files. Please see your latest Qedit manual for instructions on how to Qedify the NM and CM compilers.
Suprtool. You must have Suprtool version 3.6 or later for use on MPE/iX 5.0. This version was shipped to all customers worldwide in Spring, 1994. We recommend that you upgrade to the newer Suprtool version 3.7 before you upgrade to MPE/iX 5.0. Suprtool 3.7 includes several new features to support MPE/iX 5.0. Suprtool 3.7 has been shipped to all customers in Canada and the US. We will be shipping this version to the rest of the world during May and June, 1995.
Speed Demon and Suprtool2. Depending on where you call the Suprtool2 interface and Speed Demon intrinsics, you may need to re-install them. Please refer to your latest Suprtool manual for instructions on installing Speed Demon and Suprtool2 interfaces.
Table Command and CM KSAM files. After updating to one of the many beta versions of MPE/iX 5.0, we came across a problem with Suprtool and CM KSAM files loaded by the Table command. The following error occurred when trying to load a CM KSAM file into a table:
:run suprtool.pub.robelle SUPRTOOL/iX/Copyright Robelle Solutions Technology Inc. 1981-1994. (Version 3.7) >def a,1,6 >table tab1,a,file,file2.suprtest Warning: Source of input records not specified yet +-F-I-L-E---I-N-F-O-R-M-A-T-I-O-N---D-I-S-P-L-A-Y+ ! Edited for brevity. ! +------------------------------------------------+ Error: Unable to initialize the table sort process Error: A failure occurred on FFILEINFO (INPUTFILE).
The problem was a bug in Sort.Pub.Sys when sorting CM KSAM files. This problem still exists in the PUSH version of MPE/iX 5.0, but a patch is available.
The SR for this problem was 5003-3231613, and the patch-id is MPEXH33A. Please call the HPRC for this patch and others before you update to MPE/iX 5.0.
As an example: while in the CI, run Qedit; then from within Qedit, run Tail.Hpbin.Sys; now hit < Control-Y>. Tail, which is a POSIX application correctly terminates. But a SIGINT signal from the < Control-Y> also goe to Qedit which terminates Qedit. The result is that when you exit the POSIX application, you are returned to the CI prompt, not to Qedit.
On MPE/iX 5.0, all process handling applications are expected to arm the appropriate POSIX signal handlers for the SIGINT signal (which is what is generated when a POSIX application sees < Control-Y>), but there is nothng anyone can do under MPE/iX 5.0 to prevent the SIGINT from propagating to all processes in the process tree.
We have fixed this problem in Suprtool 3.7.11, and Qedit 4.3.18. Please call technical support to get the latest version if this is a problem for you and your users.
This feature is supported in Suprtool/Plus 3.7. You can get this version of Suprtool simply by calling Robelle, or by e-mailing support@robelle.com.
There is no extra charge for this feature.
Progress Messages. We added a new feature to Suprtool 3.7 which made Suprtool a little more verbose. By default, Suprtool will now print a progress message after every 5% of a given phase.
Customer reaction to this feature has ranged from extremely favourable to, "I would rather not see the progress messages." After looking at our customer feedback and having some internal discussion, we decided the default will be to print messages.
Those customers who do not want to see these messages from Suprtool 3.7 can disable them simply by adding a line to a file called Suprmgr.Pub.Sys:
set progress 0
This line will shut off the progress messages. Please refer to the article on the Set Progress command in Chapter 6 of the Suprtool 3.7 manual for more information on this feature.
Since MPE was first launched, many people have found certain of its security features irritating. For example, it was nearly impossible to create a file in another account without a privileged mode program. You could not rename somebody else's file even if you had full access rights to it. You had to copy the file and purge the old one. You could not restore a file if the name of the creator did not exist in the destination account; you then had to use special keywords like creator or create on the Restore command.
MPE/iX 5.0 removes some of these restrictions. To implement some of these features, new information has been added to the directory. For example, the creator of a file is now fully qualified. Instead of having Manager or Fred as creator, it will now be Manager.Sys or Fred.Payroll.
If you have system manager (SM) capability, you can now create files in a different account. The file does not have any special access rights, and it is protected by whichever rights are set for the account and group where it resides.
If you have write access to a file, you can now rename it even if you are not the original creator. The file creator remains the same however, this implies that a user with account manager (AM) capability will be able to rename any files in the corresponding account.
Since the creator name is now fully qualified, you can restore in different accounts without having to worry about user names. You obviously still have to take care of the group and account names.
For example: :HELLO SESSION1,MANAGER.SYS :BUILD XFILE.DATA.ACCTNG :LISTFILE XFILE.DATA.ACCTNG,-2 { display ACDs if any } ACCOUNT= ACCTNG GROUP= DATA FILENAME ------------ACD ENTRIES-------------- XFILE NO ACDS :HELLO SESSION2,OPERATOR.SYS,OPERATOR :PRINT XFILE.DATA.ACCTNG :PURGE XFILE.DATA.ACCTNG SECURITY VIOLATION (FSERR 93) UNABLE TO PURGE FILE "XFILE.DATA.ACCTNG". (CIERR 384)
Back on Session1,Manager.Sys, we add an ACD giving write access to Operator.Sys.
:ALTSEC XFILE.DATA.ACCTNG;NEWACD=(W:OPERATOR.SYS) :LISTFILE XFILE.DATA.ACCTNG,-2 ACCOUNT= ACCTNG GROUP= DATA FILENAME ------------ACD ENTRIES-------------- XFILE OPERATOR.SYS : W
Back to Session2,Operator.Sys,
:RENAME XFILE.DATA.ACCTNG,XFILE :LISTFILE XFILE,-2 ACCOUNT= SYS GROUP= OPERATOR FILENAME ------------ACD ENTRIES-------------- XFILE NO ACDS
Finally, back to Session1,Manager.Sys again. Please note the creator name.
:LISTF XFILE.OPERATOR,-3 ******************** FILE: XFILE.OPERATOR.SYS FILE CODE : 0 FOPTIONS: BINARY,FIXED,NOCCTL,STD BLK FACTOR: 1 CREATOR : MANAGER.SYS REC SIZE: 256(BYTES) LOCKWORD: BLK SIZE: 256(BYTES) SECURITY--READ : EXT SIZE: 0(SECT) WRITE : NUM REC: 0 APPEND : NUM SEC: 0 LOCK : NUM EXT: 0 EXECUTE : MAX REC: 1023 **SECURITY IS ON FLAGS : NO ACCESSORS NUM LABELS: 0 CREATED : THU, MAY 11, 1995, 1:08 PM MAX LABELS: 0 MODIFIED: THU, MAY 11, 1995, 1:11 PM DISC DEV #: 2 ACCESSED: THU, MAY 11, 1995, 1:11 PM SEC OFFSET: 0 LABEL ADDR: $00000128.$00703B20 VOLCLASS : MPEXL_SYSTEM_VOLUME_SET:DISC
There is a known problem with Rename and the FRENAME intrinsic (KPR 4701217760). If the Rename fails for any reason (e.g., new name already exists, security violation), the old file will still be there but with the following ACDs:
LISTFILE XFILE.DATA.ACCTNG,-2 ACCOUNT= ACCTNG GROUP= DATA FILENAME ------------ACD ENTRIES-------------- XFILE $OWNER : R,W,X,A,L,RACD $GROUP_MASK : R,W,X,A,L,RACD $GROUP : R,W,X,A,L,RACD @.@ : R,X,L,RACD
This was supposed to be fixed in MPE/iX version C.50.00, but our tests have shown that this has not been fixed.
When you invoke the POSIX shell with the -L option, the files /etc/profile and $HOME/.profile execute automatically. Use these files to customize the POSIX environment, much as you would use logon UDCs in the MPE environment.
We have gone through several MPE/iX 4.5 and 5.0 updates, and have learned that each update overwrites the /etc/profile file with HP's default version for that release. As we disagree with some of HP's choices, we need to remember to restore our customized profile file after every update.
Here are some of the changes we've made in our customized profile file, together with HP's default settings:
The Path Variable.
# set up the default path to include only the .2 utilities and # the current directory export PATH='/bin:.'
You might want to add some other Paths (e.g., we have Lynx installed in /usr/local/bin, since this is where Lynx happens to live on both our HP-UX and MPE/iX machines). In this case, we have a Path of
export PATH='/bin:/usr/local/bin:.'
The Prompt Variable. Another variable typically configured in the /etc/prof le file is the user prompt. Here is HP's default:
# Set up the default user prompt. export PS1='shell/iX> '
We found this prompt to be about as bad as the UNIX default prompts for the Bourne and the Korn shells (which are usually "$"). We changed our prompt to show the current working directory by setting PS1 variable to
export PS1='$PWD> '
The Home Variable.
# Set up the HOME variable. export HOME=$PWD
HP's UDC checks that the HPHGROUP variable has been set before letting you run the shell. We dislike this approach for 2 reasons:
1) We avoid UDCs wherever possible, and use command files instead. 2) We use discrete session names, rather than unique MPE usernames for logon.
Consider the following logon: Hello Jim,Mgr.Inventry,Jim. So, while Jim has a logical home group of "JIM", his HPHGROUP variable will be set to "Pub", along with anybody else who signs on as Mgr.Inventry. This means that they will share a .sh_history file, and will be unable to customize a .profile file.
We worked around this by changing the SH UDC to a command file which checks for a group in the logon account with the same name as the session name. We also added an option to specify a shell priority:
parm shellpri="cs" comment SHELL.CMD - Command file derived from HP's HPPXUDC comment file. comment This invokes the POSIX .2 shell with the -L option. comment -L causes the shell to read the environment comment initialization files. The MPE/iX shell requires the comment user to have a home group. It also assumes the user's comment Current Working Directory (CWD) is the user's home comment group. comment comment Save the current CWD. comment setvar _sh_cwd hpcwd comment setjcw CIERROR,0 continue chdir /!hpaccount/!hpjobname > $null if CIERROR=935 then chdir /!hpaccount/!hphgroup endif continue run sh.hpbin.sys;info="-L";pri=!shellpri chdir !_sh_cwd deletevar _sh_cwd
We also added an alias to easily run Qedit:
alias qedit="/ROBELLE/PUB/QEDIT"
This alias allows Qedit to be run from the POSIX shell simply by typing qedit.
Value Added Business Prep Program (VAB) Robelle Consulting has been a member of HP's VAB Prep program for about three years now. This program provides early versions of MPE/iX to allow us to test how our products will perform with new versions of the OS.
Thanks to HP's sponsorship of this program, we are able to support our products on the latest version of MPE/iX. When you pay for support services from Robelle, your money helps us to install patches and many beta versions of MPE/iX 5.0. These upgrades to our equipment allow us to ensure that Robelle products can work with these new versions of MPE/iX, and can take advantage of some of MPE/iX's new features.
One of the forgotten features of Qedit commands is their ability to use strings as a rangelist. Use this in any command that accepts any rangelist. You can further qualify strings if you use window options on the string being searched.
Here are some instances where this feature is useful:
Deleting all lines with the string "superfluous".
/delete "superfluous"
Deleting all lines without the string "superfluous".
/delete "superfluous" (nomatch)
Change "bug" to "undocumented feature", but only on those lines that have the string "unexplained".
/change "bug"undocumented feature" "unexplained"
Delete all blank lines.
/delete "~" (pattern) {blank lines}
Find the next occurrence of the string ".font" that starts in the first column.
/find ".font" (1/5)
List all occurrences of "Frank", but not in words such as "Frankenstein".
/list "Frank" (smart) {ignores "Frankenstein"}
By default, Qedit searches for matches to a string. Specifying (NOMATCH) reverses this logic. Likewise, string searches can be restricted to particular columns (10/40), or to a caseless search (UPSHIFT).
If the string represents a pattern, this should be specified with valid pattern characters:
@ anything, including nothing # single numeric digit ? single alphanumeric digit ~ zero or more spaces
(Attend Hans Hendriks' Tutorial "Qedit's Forgotten Commands" at Interex in Toronto for more Qedit Tips.)
Suprtool 3.7 as a Database Integrity Tool. Financial transactions are often processed in batches. Between jobs aborting, program bugs, and less-than-careful data fixes by MIS staff, these batches can get out-of-balance. Using the Total command can quickly verify that all transactions net to zero.
Do the debits equal the credits?
:run suprtool.pub.robelle >base fms.gl,5,reader >get d-transactions >output $null >total trans-amt >xeq Totals (SUN, JAN 29, 1995, 2:56 PM): TRANS-AMT 81451+ IN=6, OUT=6. CPU-Sec=1. Wall-Sec=1.
By default the results of the Total command are displayed on the screen ($STDLIST), but can be appended to the output file. To do, this you need to turn Set Squeeze Off and add a new Total command as follows:
total $file filename,append
Up to 15 fields can be totalled in each pass.
(Attend Paul Gobes' Tutorial "Ensuring Data Integrity Using Suprtool" at Interex in Toronto for more Suprtool Tips.)