f



Skipping Lines in a Streamed Job

I have a job with some "IF" statements that is apparently skipping some
of the IF/ENDIF constructs.  In the job, it is quite lengthy, so I have
shortened it with the "... do some stuff ..." phrases. =20

It skips the FLODB construct and picks up at the TABDB construct.  In
the $STDLIST the lines are simply missing, as if they weren't there.  If
they were falling out of the "IF" statements, you at least expect the
see the "*** EXPRESSION FALSE *** output.

I won't say I haven't seen anything like it.  After 25 on the HP3000
years I've seen a lot of things I don't remember.  I suspect a corrupt
EDITOR job file, although I can tell just by looking at the file.  Can
anyone express similar experiences? =20

IF FEXISTS("FLODB") THEN
  IF VEFINFO("FLODB").OPENED=3DTRUE  THEN
.... do some stuff ...   =20
  ENDIF
  IF VEFINFO("FLODB").OPENED=3DFALSE THEN
.... do some other stuff ...
  ENDIF
ENDIF
IF FEXISTS("ODETDB") THEN
  IF VEFINFO("ODETDB").OPENED=3DTRUE  THEN
.... do some stuff ...
  ENDIF
  IF VEFINFO("ODETDB").OPENED=3DFALSE THEN
.... do some other stuff ...
  ENDIF
ENDIF
IF FEXISTS("OMEDB") THEN
  IF VEFINFO("OMEDB").OPENED=3DTRUE  THEN
.... do some stuff ...
  ENDIF
  IF VEFINFO("OMEDB").OPENED=3DFALSE THEN
.... do some other stuff ...
  ENDIF
ENDIF
IF FEXISTS("QUODB") THEN
  IF VEFINFO("QUODB").OPENED=3DTRUE  THEN
.... do some stuff ...
  IF VEFINFO("QUODB").OPENED=3DFALSE THEN
.... do some other stuff ...
  ENDIF
ENDIF
IF FEXISTS("TABDB") THEN
  IF VEFINFO("TABDB").OPENED=3DTRUE  THEN
.... do some stuff ...
  ENDIF
.... do some other stuff ...
  ENDIF

Tracy Johnson
Business Analyst
Measurement Specialties, Inc.
1000 Lucas Way
Hampton, VA 23666
Office 1-757-766-4318
tracy.johnson@meas-spec.com
www.meas-spec.com

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

0
9/29/2009 2:43:46 PM
comp.sys.hp.mpe 25828 articles. 0 followers. rhorner (2) is leader. Post Follow

2 Replies
468 Views

Similar Articles

[PageSpeed] 26

In message 
<63BAF5D9208191419BB53387E0D8B347AE0087@HAM-MAIL01.noam.msiusa.com>, 
"Johnson, Tracy" <Tracy.Johnson@MEAS-SPEC.COM> writing at 10:43:46 in 
his/her local time opines:-
>I have a job with some "IF" statements that is apparently skipping some
>of the IF/ENDIF constructs.  In the job, it is quite lengthy, so I have
>shortened it with the "... do some stuff ..." phrases.
>
>It skips the FLODB construct and picks up at the TABDB construct.  In
>the $STDLIST the lines are simply missing, as if they weren't there.  If
>they were falling out of the "IF" statements, you at least expect the
>see the "*** EXPRESSION FALSE *** output.
>
>I won't say I haven't seen anything like it.  After 25 on the HP3000
>years I've seen a lot of things I don't remember.  I suspect a corrupt
>EDITOR job file, although I can tell just by looking at the file.  Can
>anyone express similar experiences?
>
>IF FEXISTS("FLODB") THEN
>  IF VEFINFO("FLODB").OPENED=TRUE  THEN
>... do some stuff ...
>  ENDIF
>  IF VEFINFO("FLODB").OPENED=FALSE THEN
>... do some other stuff ...
>  ENDIF
>ENDIF
>IF FEXISTS("ODETDB") THEN
>  IF VEFINFO("ODETDB").OPENED=TRUE  THEN
>... do some stuff ...
>  ENDIF
>  IF VEFINFO("ODETDB").OPENED=FALSE THEN
>... do some other stuff ...
>  ENDIF
>ENDIF
>IF FEXISTS("OMEDB") THEN
>  IF VEFINFO("OMEDB").OPENED=TRUE  THEN
>... do some stuff ...
>  ENDIF
>  IF VEFINFO("OMEDB").OPENED=FALSE THEN
>... do some other stuff ...
>  ENDIF
>ENDIF
>IF FEXISTS("QUODB") THEN
>  IF VEFINFO("QUODB").OPENED=TRUE  THEN
>... do some stuff ...
>  IF VEFINFO("QUODB").OPENED=FALSE THEN
>... do some other stuff ...
>  ENDIF
>ENDIF
>IF FEXISTS("TABDB") THEN
>  IF VEFINFO("TABDB").OPENED=TRUE  THEN
>... do some stuff ...
>  ENDIF
>... do some other stuff ...
>  ENDIF
>

Just a WAG, but is anything in that innocuous-looking 'do some stuff' 
eating your JCL beyond the parameters intended for it?

-- 
Roy Brown        'Have nothing in your houses that you do not know to be
Kelmscott Ltd     useful, or believe to be beautiful'  William Morris

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

0
Roy
9/29/2009 7:32:33 PM
Dear Roy,

Someone figured out the problem and answered elsewhen:

<quote>

In case anyone is interested in the gory details:  Tracy's misbehaving
job
contains logic that runs DBGENERAL from inside IF/ENDIF logic coded
using MPEX.   This run of the job failed when DBGENERAL detected a
fatal error and terminated early.

Before DBGENERAL terminates in an error state it continues reading and
silently discarding all STDIN lines until it finds one with a leading
'!'
character.  This behavior allows users to code jobs that are able to
test
for, and recover from, fatal DBGENERAL errors that cause the program
to terminate early.  As I recall this behavior was patterned after some
other MPE program, and may even be the default behavior for programs
that read from STDIN in batch.  The job still needs a preceding
:CONTINUE to recover from DBGENERAL's error.

Unfortunately this only works properly in 'regular' jobs, when DBGENERAL
is run directly from the CI, and where the first line following
DBGENERAL
input is "!EOD".  In Tracy's case DBGENERAL continued silently eating
lines of MPEX input until it found a '!" prefixed command, way further
down the job.  Job execution restarted at this point in the job, hence
the confusion.

</quote>

Tracy Johnson
Office 1-757-766-4318
tracy.johnson@meas-spec.com=20
=20

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

0
Johnson
9/29/2009 7:45:30 PM
Reply: