HP3000-L Archives

March 2002, Week 3

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Larry Barnes <[log in to unmask]>
Reply To:
Larry Barnes <[log in to unmask]>
Date:
Fri, 15 Mar 2002 13:49:59 -0500
Content-Type:
text/plain
Parts/Attachments:
text/plain (155 lines)
I've found that just turning on hpcmdtrace doesn't always show where my
script is failing.  I like to add the 'OPTION LIST' at the beginning of the
script.  It can generate lots lines so I when testing I send the output of
the 'LIST' option to a file.

I don't know if this will help or not.

-----Original Message-----
From: Paul H. Christidis [mailto:[log in to unmask]]
Sent: Friday, March 15, 2002 10:35 AM
To: [log in to unmask]
Subject: [HP3000-L] MPEX command file weirdness


Fellow list members,

I've been trying to get a command file to work consistently in MPE/iX and
in Vesoft's MPEX.  The last time that I spoke with the support folks at
Vesoft, they recommended to use MPEX's "MPE" function which would
'hand-off' the command file to MPE/iX's CI, supposedly without any
intervention by MPEX, and thus avoid any syntax inconsistencies.
So the following logic (in pseudocode) was added to the command file:
     If (we are inside MPEX) then
       MPE XEQ !hpfile parm1, parm2, etc..
       return
     endif
     ....
Well, the above works in all respects except when an error occurs.  It
seems that if a command (listacct in this case) within the command file
fails, the error is not 'trapped'.  The output of the 'listacct' command is
redirected to a file for further processing by the command file, and if an
error occurs the contents of said file are 'printed' to the screen, thus
informing the user of the error.

In order to demonstrate the problem I created a test command file and
executed it against and invalid MPE account using the CI and MPEX.  Below
is the command file and its execution in the two environments:

<SYS>:time
FRI, MAR 15, 2002, 10:21 AM
<SYS>:
<SYS>:print tstcmd
parm acctname
file actlist=actlist,oldtemp
if NOT FINFO("*actlist","exists") then
  build actlist;rec=,,v,ascii;disc=50000;temp
endif
setvar hpcierr 0
continue
listacct !acctname >*actlist
echo HpCierr = !hpcierr
listftemp act@,2
echo
echo *** Printing contents of CIOR file ***
print actlist
reset actlist
<SYS>:
<SYS>:
<SYS>:tstcmd BADACCT
HpCierr = 909

TEMPORARY FILES FOR MANAGER.SYS,SUPUTIL

ACCOUNT=  SYS         GROUP=  SUPUTIL

FILENAME  CODE  ------------LOGICAL RECORD-----------  ----SPACE----
                  SIZE  TYP        EOF      LIMIT R/B  SECTORS #X MX

ACTLIST           256B  VA           2      50000   1       16  1  * (TEMP)


*** Printing contents of CIOR file ***
listacct BADACCT
Non-existent account. (CIERR 909)
<SYS>:
<SYS>:MPEX

MPEX/3000  30N10511  (c) VESOFT Inc, 1980  6.0  03:05724  For help type
'HELP'

Hint: %COPY @.SOURCE,@.SOURCE;DEV=SYSTEMB# copies a fileset over a DSLINE!
      (Databases and KSAM files, too!)

%MPE xeq tstcmd BADACCT
HpCierr = 0

TEMPORARY FILES FOR MANAGER.SYS,SUPUTIL

ACCOUNT=  SYS         GROUP=  SUPUTIL

FILENAME  CODE  ------------LOGICAL RECORD-----------  ----SPACE----
                  SIZE  TYP        EOF      LIMIT R/B  SECTORS #X MX

ACTLIST           256B  VA           0      50000   1        0  0  * (TEMP)


*** Printing contents of CIOR file ***
%

The other 'weird' thing is that if I enable command trace then the command
file executes 'differently'.  Different in the sense that the "Non-existent
account" message is placed in the CIOR file BUT the variable 'hpcierr' is
still NOT being set, which implies that any code in the command file that
says "print the contents when an error occurs" will not get executed.


%SETVAR HPCMDTRACE TRUE
%SETVAR MPEXCMDTRACE TRUE
%
%MPE xeq tstcmd BADACCT

file actlist=actlist,oldtemp
if NOT FINFO("*actlist","exists") then
*** EXPRESSION FALSE: COMMANDS IGNORED UNTIL MATCHING ELSEIF/ELSE/ENDIF
  build actlist;rec=,,v,ascii;disc=50000;temp
endif
*** RESUME EXECUTION OF COMMANDS
setvar hpcierr 0
continue
listacct BADACCT >*actlist
echo HpCierr = 0
HpCierr = 0
listftemp act@,2

TEMPORARY FILES FOR MANAGER.SYS,SUPUTIL

ACCOUNT=  SYS         GROUP=  SUPUTIL

FILENAME  CODE  ------------LOGICAL RECORD-----------  ----SPACE----
                  SIZE  TYP        EOF      LIMIT R/B  SECTORS #X MX

ACTLIST           256B  VA           1      50000   1       16  1  * (TEMP)

echo

echo *** Printing contents of CIOR file ***
*** Printing contents of CIOR file ***
print actlist
Non-existent account. (CIERR 909)
reset actlist
%

Management, since the 11/14 announcement, has decided to cancel ALL
software support and thus I cannot get any help from Vesoft.
Does anyone have any ideas?

Regards
Paul Christidis

* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

ATOM RSS1 RSS2