What's Up DOCumentation? 1995 #2


May 19, 1995

To: Users of Robelle Software
Re: News of the HP 3000 and HP-UX

What You Will Find in This News Memo:

Robelle FAQ!

We have now begun a Robelle FAQ on our Web Server. For those who are not Internet aware, a FAQ stands for Frequently Asked Questions. We will be posting answers to the questions that you, our customers, ask the most. Right now, the most frequently asked question is

"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


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:

Upgrading to MPE/iX 5.0

Qedit MPE version 4.3 installation instructions

Qedit UX version 4.3 installation instructions

Suprtool version 3.7 installation instructions

Robelle Products and MPE/iX 5.0

If you plan to upgrade to MPE/iX 5.0, please take the time to review the following article. We describe the version numbers needed and the issues that arise with Robelle products when you upgrade to MPE/iX 5.0.

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

   ! 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.

Control-Y and POSIX Applications

When you press Control-Y in a POSIX application, a SIGINT signal is generated to all processes in a user's process tree. This feature of the POSIX applications on MPE/iX 5.0 has caused a problem with applications that can invoke a child process.

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.


Jumbo datasets. In the past, the maximum size of an IMAGE/SQL dataset has been four Gigabytes. Now a new version of IMAGE/SQL supports the potentially larger jumbo datasets. Data in a jumbo dataset can reside in one or more MPE files. You use jumbo datasets when you want to store more than four Gigabytes of data in a single dataset.

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.

Renaming Across Accounts on MPE/iX 5.0

by Francois Desrochers

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:

  :LISTFILE XFILE.DATA.ACCTNG,-2        { display ACDs if any }

  FILENAME        ------------ACD ENTRIES--------------

  XFILE               NO ACDS


Back on Session1,Manager.Sys, we add an ACD giving write access to Operator.Sys.


  FILENAME        ------------ACD ENTRIES--------------

  XFILE               OPERATOR.SYS        : W

Back to Session2,Operator.Sys,


  FILENAME        ------------ACD ENTRIES--------------

  XFILE               NO ACDS

Finally, back to Session1,Manager.Sys again. Please note the creator name.


  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

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:


  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.

The POSIX Shell on MPE/iX 5.0

by David Greer and Hans Hendriks

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 Save the current CWD.
   setvar _sh_cwd hpcwd
   setjcw CIERROR,0
   chdir /!hpaccount/!hpjobname > $null
   if CIERROR=935 then
      chdir /!hpaccount/!hphgroup
   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.

About Robelle

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.

Robelle Products: Problems, Solutions, and Suggestions

Qedit 4.3 and Strings. Strings play a variety of roles in Qedit. Strings can be delimited by quotes or by any of the following special characters: | ~ _ ! # > &:. Most Qedit commands accept a string as a linerange qualifier, but then the commands are applied only to lines containing that string.

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

    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.)

Creation Date: May 26, 1995