Discussion:
Message IRX0006I running an edit macro CLIST
Add Reply
Jesse 1 Robinson
2017-08-26 15:26:38 UTC
Reply
Permalink
Raw Message
OK, this is a weird one. We have an old CLIST that runs as an ISPF edit macro. On one sysplex only, this CLIST fails with a *Rexx* error message:

IRX0006I Error running JEM, line 2: Unmatched "/*" or quote

The actual line being complained about is included here:

PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISREDIT MACRO (PARMSTR)

Of course there is no closing '*/' in line 2, but it's a CLIST, not a Rexx. The CLIST was last modified in 2007 according to ISPF stats. What appears to be exactly the same CLIST works fine on other sysplexes. The z/OS maintenance level (RSU1705) is the same on working and nonworking plexes. I have looked in SYSEXEC libraries and in other SYSPROC libraries for a bogus copy of this exec; nothing found. The CLIST library is VB; member is unnumbered, so data starts in column 9.

What might cause a CLIST to be misinterpreted as Rexx?



.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office <===== NEW
***@sce.com<mailto:***@sce.com>


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
retired mainframer
2017-08-26 16:01:39 UTC
Reply
Permalink
Raw Message
How is the macro invoked? On the SYSPLEX in question, do all users
experience the problem? For a user who does, are any ALTLIBs in effect when
the error occurs?
-----Original Message-----
Behalf Of Jesse 1 Robinson
Sent: Saturday, August 26, 2017 8:27 AM
Subject: Message IRX0006I running an edit macro CLIST
OK, this is a weird one. We have an old CLIST that runs as an ISPF edit
macro. On one
IRX0006I Error running JEM, line 2: Unmatched "/*" or quote
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISREDIT MACRO (PARMSTR)
Of course there is no closing '*/' in line 2, but it's a CLIST, not a
Rexx. The CLIST was last
modified in 2007 according to ISPF stats. What appears to be exactly the
same CLIST
works fine on other sysplexes. The z/OS maintenance level (RSU1705) is the
same on
working and nonworking plexes. I have looked in SYSEXEC libraries and in
other
SYSPROC libraries for a bogus copy of this exec; nothing found. The CLIST
library is VB;
member is unnumbered, so data starts in column 9.
What might cause a CLIST to be misinterpreted as Rexx?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Jesse 1 Robinson
2017-08-26 16:20:08 UTC
Reply
Permalink
Raw Message
Macro is invoked by simply typing JEM on the command line. I have not found any user for whom it works today. (I was not the original reporter.) No ALTLIBs in effect at error time.

FYI JEM is a JCL validation product that we have run for decades in just this way.

.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
***@sce.com

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of retired mainframer
Sent: Saturday, August 26, 2017 9:03 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: (External):Re: Message IRX0006I running an edit macro CLIST

How is the macro invoked? On the SYSPLEX in question, do all users experience the problem? For a user who does, are any ALTLIBs in effect when the error occurs?
-----Original Message-----
On Behalf Of Jesse 1 Robinson
Sent: Saturday, August 26, 2017 8:27 AM
Subject: Message IRX0006I running an edit macro CLIST
OK, this is a weird one. We have an old CLIST that runs as an ISPF
edit
macro. On one
IRX0006I Error running JEM, line 2: Unmatched "/*" or quote
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISREDIT MACRO (PARMSTR)
Of course there is no closing '*/' in line 2, but it's a CLIST, not a
Rexx. The CLIST was last
modified in 2007 according to ISPF stats. What appears to be exactly
the
same CLIST
works fine on other sysplexes. The z/OS maintenance level (RSU1705) is
the
same on
working and nonworking plexes. I have looked in SYSEXEC libraries and
in
other
SYSPROC libraries for a bogus copy of this exec; nothing found. The
CLIST
library is VB;
member is unnumbered, so data starts in column 9.
What might cause a CLIST to be misinterpreted as Rexx?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2017-08-26 16:46:42 UTC
Reply
Permalink
Raw Message
Post by Jesse 1 Robinson
Macro is invoked by simply typing JEM on the command line. I have not found any user for whom it works today. (I was not the original reporter.) No ALTLIBs in effect at error time.
FYI JEM is a JCL validation product that we have run for decades in just this way.
Does the DDLIST MEMBER function perhaps show an unexpected instance of JEM?

For diagnosis, temporariy rename JEM and replace it with:
/* Rexx */
signal on novalue
trace R
parse source .

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Lizette Koehler
2017-08-26 19:47:18 UTC
Reply
Permalink
Raw Message
Did you use ISRDDN and search for JEM? Just to verify what you see.

Only time I see this is when a CLIST is on SYSEXEC


Lizette
-----Original Message-----
Behalf Of Jesse 1 Robinson
Sent: Saturday, August 26, 2017 8:27 AM
Subject: Message IRX0006I running an edit macro CLIST
OK, this is a weird one. We have an old CLIST that runs as an ISPF edit
IRX0006I Error running JEM, line 2: Unmatched "/*" or quote
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISREDIT MACRO (PARMSTR)
Of course there is no closing '*/' in line 2, but it's a CLIST, not a Rexx.
The CLIST was last modified in 2007 according to ISPF stats. What appears to
be exactly the same CLIST works fine on other sysplexes. The z/OS maintenance
level (RSU1705) is the same on working and nonworking plexes. I have looked
in SYSEXEC libraries and in other SYSPROC libraries for a bogus copy of this
exec; nothing found. The CLIST library is VB; member is unnumbered, so data
starts in column 9.
What might cause a CLIST to be misinterpreted as Rexx?
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office <===== NEW
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
CM Poncelet
2017-08-26 21:35:24 UTC
Reply
Permalink
Raw Message
FWIW
(a) The "ISREDIT MACRO" should be the *1st* executable statement; there
should be no "PROC 0 <anything>" in edit macros - unless the edit macro
is actually embedded in the Clist (a bit unusual).
(b) Anyquotes should be enclosed in both '/*' and '*/' open/closing
chars, even in Clist.
 
The usual way to invoke an edit macro in Clist, e.g. in batch, is of the
form:

code the Clist to invoke the edit macro ...
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VPUT PARMSTR SHARED /* store whatever PARMSTR is for macro */
ISPEXEC EDIT DATASET('&DSJNAME') MACRO(<whatever edit macro name>)
ISPEXEC VGET RC SHARED /* get the macro RC from shared pool */
... finish off the Clist ...
EXIT CODE(&RC)

and code the macro as a separate member <whatever edit macro name> ...
ISREDIT MACRO /* specify no parms if invoked by a Clist */
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VGET PARMSTR SHARED /* get the macro parms from shared pool */
... <execute whatever edit macro statements> ...
... save whatever the macro (MAX)CC is, as e.g. RC ...
ISPEXEC VPUT RC SHARED /* store whatever the RC is for Clist */
ISREDIT END /* return to Clist */

Both the Clist and edit macro should be members of a PDS on DDNAME=SYSPROC.HTH, CP 

 
Post by Lizette Koehler
Did you use ISRDDN and search for JEM? Just to verify what you see.
Only time I see this is when a CLIST is on SYSEXEC
Lizette
-----Original Message-----
Behalf Of Jesse 1 Robinson
Sent: Saturday, August 26, 2017 8:27 AM
Subject: Message IRX0006I running an edit macro CLIST
OK, this is a weird one. We have an old CLIST that runs as an ISPF edit
IRX0006I Error running JEM, line 2: Unmatched "/*" or quote
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISREDIT MACRO (PARMSTR)
Of course there is no closing '*/' in line 2, but it's a CLIST, not a Rexx.
The CLIST was last modified in 2007 according to ISPF stats. What appears to
be exactly the same CLIST works fine on other sysplexes. The z/OS maintenance
level (RSU1705) is the same on working and nonworking plexes. I have looked
in SYSEXEC libraries and in other SYSPROC libraries for a bogus copy of this
exec; nothing found. The CLIST library is VB; member is unnumbered, so data
starts in column 9.
What might cause a CLIST to be misinterpreted as Rexx?
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office <===== NEW
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Walt Farrell
2017-08-26 20:56:09 UTC
Reply
Permalink
Raw Message
...snipped...
What might cause a CLIST to be misinterpreted as Rexx?
What DDNAME do you find the CLIST in on the system where it fails? What DDNAME is it in on a system where it works?
--
Walt

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2017-08-26 22:07:12 UTC
Reply
Permalink
Raw Message
Post by Lizette Koehler
Did you use ISRDDN and search for JEM? Just to verify what you see.
Only time I see this is when a CLIST is on SYSEXEC
ISRDDN is badly broken. I've reported this and received WAD. If a DDNAME is a mixed
cocatenation of UNIX directories and PDS(E)s, ISRDDN MEMBER reports only members
in PDS(E)S even though similarly named members exist earlier in the concatenation and
are found by BLDL. IBM just doesn't follow through on its own good ideas.

Try:
o Renaming the JEM clist in SYSPROC.
o Issue JEM on the Edit command line.

If you get the same error, there's a bogus JEM elsewhere.
If you get UNKNOWN COMMAND, the mystery deepens.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Jesse 1 Robinson
2017-08-27 17:10:44 UTC
Reply
Permalink
Raw Message
I never knew of this restriction on edit macros. Looking through the same library for others, I find a few other CLISTs that have 'PROC' at the top; most do not. It looks like JEM was constructed to allow an alternate load library to be specified on invocation for testing purposes. I removed the PROC statement and now it works. BTW I did not take the step of closing the opening comment with '*/'; that is not required for CLIST in general. Also, there is no other copy of JEM except this one in SYSPROC.

So mysteries remain. My favorite user complaint: this used to work and now it doesn't; what happened? Even more mysterious, the same CLIST continues to work on other sysplexes at the same z/OS maintenance level. In any case, the immediate problem is solved, for which I'm once again grateful to this List.

.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
***@sce.com


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of CM Poncelet
Sent: Saturday, August 26, 2017 2:36 PM
To: IBM-***@LISTSERV.UA.EDU
Subject: (External):Re: Message IRX0006I running an edit macro CLIST

FWIW
(a) The "ISREDIT MACRO" should be the *1st* executable statement; there should be no "PROC 0 <anything>" in edit macros - unless the edit macro is actually embedded in the Clist (a bit unusual).
(b) Anyquotes should be enclosed in both '/*' and '*/' open/closing chars, even in Clist.
 
The usual way to invoke an edit macro in Clist, e.g. in batch, is of the
form:

code the Clist to invoke the edit macro ...
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VPUT PARMSTR SHARED /* store whatever PARMSTR is for macro */
ISPEXEC EDIT DATASET('&DSJNAME') MACRO(<whatever edit macro name>)
ISPEXEC VGET RC SHARED /* get the macro RC from shared pool */
... finish off the Clist ...
EXIT CODE(&RC)

and code the macro as a separate member <whatever edit macro name> ...
ISREDIT MACRO /* specify no parms if invoked by a Clist */
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VGET PARMSTR SHARED /* get the macro parms from shared pool */
... <execute whatever edit macro statements> ...
... save whatever the macro (MAX)CC is, as e.g. RC ...
ISPEXEC VPUT RC SHARED /* store whatever the RC is for Clist */
ISREDIT END /* return to Clist */

Both the Clist and edit macro should be members of a PDS on DDNAME=SYSPROC.HTH, CP 

 
Post by Lizette Koehler
Did you use ISRDDN and search for JEM? Just to verify what you see.
Only time I see this is when a CLIST is on SYSEXEC
Lizette
-----Original Message-----
On Behalf Of Jesse 1 Robinson
Sent: Saturday, August 26, 2017 8:27 AM
Subject: Message IRX0006I running an edit macro CLIST
OK, this is a weird one. We have an old CLIST that runs as an ISPF
IRX0006I Error running JEM, line 2: Unmatched "/*" or quote
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISREDIT MACRO (PARMSTR)
Of course there is no closing '*/' in line 2, but it's a CLIST, not a Rexx.
The CLIST was last modified in 2007 according to ISPF stats. What
appears to be exactly the same CLIST works fine on other sysplexes.
The z/OS maintenance level (RSU1705) is the same on working and
nonworking plexes. I have looked in SYSEXEC libraries and in other
SYSPROC libraries for a bogus copy of this exec; nothing found. The
CLIST library is VB; member is unnumbered, so data starts in column 9.
What might cause a CLIST to be misinterpreted as Rexx?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Feller, Paul
2017-08-27 17:24:57 UTC
Reply
Permalink
Raw Message
One last comment. We run the same software and have not had an issue in three different SYSPLEX environments. I looked to the most recent versions of the software we have. The JEM CLIST is shipped that way from the vendor. Very interesting.


BROWSE SYSI.JOBSCAN.R790.AJJSCLST.HS(JEM) - 01. Line 0000000000 Col 001 080
Command ===> Scroll ===> CSR
********************************* Top of Data *********************************
PROC 0 DJSNAME(XXXXX.XXXXX)
CONTROL END(ENDO) NOMSG NOFLUSH
/*CONTROL END(ENDO) MSG LIST CONLIST SYMLIST NOFLUSH /*S80725*/
ISREDIT MACRO (PARMSTR)

IF &DJSNAME = &STR(XXXXX.XXXXX) THEN +
DO
ISPEXEC SETMSG MSG(JM022R) /*JTE30780*/
GOTO ENDING
ENDO

/* ************ ALLOCATE RUN CONTROL LIBRARY ************
ISPEXEC SELECT PGM(J00YCKAL) PARM(JLRCL) /*JTE30780*/
IF &LASTCC NE 0 THEN +
DO
SET &RCLALC = 'N' /*813647 */
ALLOC DDN(JLRCL) DSN('&DJSNAME..SJJSPARM') SHR
ENDO

/* ************ CALL THE JEM SUPERVISOR ************
ISPEXEC SELECT PGM(J0AYEMU) PARM(PR(E) &PARMSTR) /*JTE30780*/

ENDING: +
ISPEXEC VGET (ZSPLIT)
IF &STR(&ZSPLIT) = &STR(YES) THEN +
EXIT
IF &RCLALC = 'N' THEN FREE DDN(JLRCL)
EXIT
******************************** Bottom of Data *******************************

Thanks..

Paul Feller
AGT Mainframe Technical Support

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Jesse 1 Robinson
Sent: Sunday, August 27, 2017 12:11
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: Message IRX0006I running an edit macro CLIST

I never knew of this restriction on edit macros. Looking through the same library for others, I find a few other CLISTs that have 'PROC' at the top; most do not. It looks like JEM was constructed to allow an alternate load library to be specified on invocation for testing purposes. I removed the PROC statement and now it works. BTW I did not take the step of closing the opening comment with '*/'; that is not required for CLIST in general. Also, there is no other copy of JEM except this one in SYSPROC.

So mysteries remain. My favorite user complaint: this used to work and now it doesn't; what happened? Even more mysterious, the same CLIST continues to work on other sysplexes at the same z/OS maintenance level. In any case, the immediate problem is solved, for which I'm once again grateful to this List.

.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
***@sce.com


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of CM Poncelet
Sent: Saturday, August 26, 2017 2:36 PM
To: IBM-***@LISTSERV.UA.EDU
Subject: (External):Re: Message IRX0006I running an edit macro CLIST

FWIW
(a) The "ISREDIT MACRO" should be the *1st* executable statement; there should be no "PROC 0 <anything>" in edit macros - unless the edit macro is actually embedded in the Clist (a bit unusual).
(b) Anyquotes should be enclosed in both '/*' and '*/' open/closing chars, even in Clist.
 
The usual way to invoke an edit macro in Clist, e.g. in batch, is of the
form:

code the Clist to invoke the edit macro ...
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VPUT PARMSTR SHARED /* store whatever PARMSTR is for macro */
ISPEXEC EDIT DATASET('&DSJNAME') MACRO(<whatever edit macro name>)
ISPEXEC VGET RC SHARED /* get the macro RC from shared pool */
... finish off the Clist ...
EXIT CODE(&RC)

and code the macro as a separate member <whatever edit macro name> ...
ISREDIT MACRO /* specify no parms if invoked by a Clist */
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VGET PARMSTR SHARED /* get the macro parms from shared pool */
... <execute whatever edit macro statements> ...
... save whatever the macro (MAX)CC is, as e.g. RC ...
ISPEXEC VPUT RC SHARED /* store whatever the RC is for Clist */
ISREDIT END /* return to Clist */

Both the Clist and edit macro should be members of a PDS on DDNAME=SYSPROC.HTH, CP 

 
Post by Lizette Koehler
Did you use ISRDDN and search for JEM? Just to verify what you see.
Only time I see this is when a CLIST is on SYSEXEC
Lizette
-----Original Message-----
On Behalf Of Jesse 1 Robinson
Sent: Saturday, August 26, 2017 8:27 AM
Subject: Message IRX0006I running an edit macro CLIST
OK, this is a weird one. We have an old CLIST that runs as an ISPF
IRX0006I Error running JEM, line 2: Unmatched "/*" or quote
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISREDIT MACRO (PARMSTR)
Of course there is no closing '*/' in line 2, but it's a CLIST, not a Rexx.
The CLIST was last modified in 2007 according to ISPF stats. What
appears to be exactly the same CLIST works fine on other sysplexes.
The z/OS maintenance level (RSU1705) is the same on working and
nonworking plexes. I have looked in SYSEXEC libraries and in other
SYSPROC libraries for a bogus copy of this exec; nothing found. The
CLIST library is VB; member is unnumbered, so data starts in column 9.
What might cause a CLIST to be misinterpreted as Rexx?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
CM Poncelet
2017-08-28 02:09:40 UTC
Reply
Permalink
Raw Message
There are two parms for this Clist: DSJNAME and PARMSTR. How is JEM
invoked? (E.g. it could be invoked as "TSO JEM HLQ.DSJN1.THEREST MACPARM2".)
Post by Feller, Paul
One last comment. We run the same software and have not had an issue in three different SYSPLEX environments. I looked to the most recent versions of the software we have. The JEM CLIST is shipped that way from the vendor. Very interesting.
BROWSE SYSI.JOBSCAN.R790.AJJSCLST.HS(JEM) - 01. Line 0000000000 Col 001 080
Command ===> Scroll ===> CSR
********************************* Top of Data *********************************
PROC 0 DJSNAME(XXXXX.XXXXX)
CONTROL END(ENDO) NOMSG NOFLUSH
/*CONTROL END(ENDO) MSG LIST CONLIST SYMLIST NOFLUSH /*S80725*/
ISREDIT MACRO (PARMSTR)
IF &DJSNAME = &STR(XXXXX.XXXXX) THEN +
DO
ISPEXEC SETMSG MSG(JM022R) /*JTE30780*/
GOTO ENDING
ENDO
/* ************ ALLOCATE RUN CONTROL LIBRARY ************
ISPEXEC SELECT PGM(J00YCKAL) PARM(JLRCL) /*JTE30780*/
IF &LASTCC NE 0 THEN +
DO
SET &RCLALC = 'N' /*813647 */
ALLOC DDN(JLRCL) DSN('&DJSNAME..SJJSPARM') SHR
ENDO
/* ************ CALL THE JEM SUPERVISOR ************
ISPEXEC SELECT PGM(J0AYEMU) PARM(PR(E) &PARMSTR) /*JTE30780*/
ENDING: +
ISPEXEC VGET (ZSPLIT)
IF &STR(&ZSPLIT) = &STR(YES) THEN +
EXIT
IF &RCLALC = 'N' THEN FREE DDN(JLRCL)
EXIT
******************************** Bottom of Data *******************************
Thanks..
Paul Feller
AGT Mainframe Technical Support
-----Original Message-----
Sent: Sunday, August 27, 2017 12:11
Subject: Re: Message IRX0006I running an edit macro CLIST
I never knew of this restriction on edit macros. Looking through the same library for others, I find a few other CLISTs that have 'PROC' at the top; most do not. It looks like JEM was constructed to allow an alternate load library to be specified on invocation for testing purposes. I removed the PROC statement and now it works. BTW I did not take the step of closing the opening comment with '*/'; that is not required for CLIST in general. Also, there is no other copy of JEM except this one in SYSPROC.
So mysteries remain. My favorite user complaint: this used to work and now it doesn't; what happened? Even more mysterious, the same CLIST continues to work on other sysplexes at the same z/OS maintenance level. In any case, the immediate problem is solved, for which I'm once again grateful to this List.
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
-----Original Message-----
Sent: Saturday, August 26, 2017 2:36 PM
Subject: (External):Re: Message IRX0006I running an edit macro CLIST
FWIW
(a) The "ISREDIT MACRO" should be the *1st* executable statement; there should be no "PROC 0 <anything>" in edit macros - unless the edit macro is actually embedded in the Clist (a bit unusual).
(b) Anyquotes should be enclosed in both '/*' and '*/' open/closing chars, even in Clist.
 
The usual way to invoke an edit macro in Clist, e.g. in batch, is of the
code the Clist to invoke the edit macro ...
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VPUT PARMSTR SHARED /* store whatever PARMSTR is for macro */
ISPEXEC EDIT DATASET('&DSJNAME') MACRO(<whatever edit macro name>)
ISPEXEC VGET RC SHARED /* get the macro RC from shared pool */
... finish off the Clist ...
EXIT CODE(&RC)
and code the macro as a separate member <whatever edit macro name> ...
ISREDIT MACRO /* specify no parms if invoked by a Clist */
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VGET PARMSTR SHARED /* get the macro parms from shared pool */
... <execute whatever edit macro statements> ...
... save whatever the macro (MAX)CC is, as e.g. RC ...
ISPEXEC VPUT RC SHARED /* store whatever the RC is for Clist */
ISREDIT END /* return to Clist */
Both the Clist and edit macro should be members of a PDS on DDNAME=SYSPROC.HTH, CP 
 
Post by Lizette Koehler
Did you use ISRDDN and search for JEM? Just to verify what you see.
Only time I see this is when a CLIST is on SYSEXEC
Lizette
-----Original Message-----
On Behalf Of Jesse 1 Robinson
Sent: Saturday, August 26, 2017 8:27 AM
Subject: Message IRX0006I running an edit macro CLIST
OK, this is a weird one. We have an old CLIST that runs as an ISPF
IRX0006I Error running JEM, line 2: Unmatched "/*" or quote
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISREDIT MACRO (PARMSTR)
Of course there is no closing '*/' in line 2, but it's a CLIST, not a Rexx.
The CLIST was last modified in 2007 according to ISPF stats. What
appears to be exactly the same CLIST works fine on other sysplexes.
The z/OS maintenance level (RSU1705) is the same on working and
nonworking plexes. I have looked in SYSEXEC libraries and in other
SYSPROC libraries for a bogus copy of this exec; nothing found. The
CLIST library is VB; member is unnumbered, so data starts in column 9.
What might cause a CLIST to be misinterpreted as Rexx?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Lizette Koehler
2017-08-28 03:29:45 UTC
Reply
Permalink
Raw Message
Typically the user is EDITing a PDS Member with JCL and enters JEM on the command line

Lizette
-----Original Message-----
Behalf Of CM Poncelet
Sent: Sunday, August 27, 2017 7:11 PM
Subject: Re: Message IRX0006I running an edit macro CLIST
There are two parms for this Clist: DSJNAME and PARMSTR. How is JEM invoked?
(E.g. it could be invoked as "TSO JEM HLQ.DSJN1.THEREST MACPARM2".)
Post by Feller, Paul
One last comment. We run the same software and have not had an issue in
three different SYSPLEX environments. I looked to the most recent versions
of the software we have. The JEM CLIST is shipped that way from the vendor.
Very interesting.
Post by Feller, Paul
BROWSE SYSI.JOBSCAN.R790.AJJSCLST.HS(JEM) - 01. Line 0000000000 Col 001
080
Post by Feller, Paul
Command ===> Scroll ===>
CSR
Post by Feller, Paul
********************************* Top of Data
*********************************
Post by Feller, Paul
PROC 0 DJSNAME(XXXXX.XXXXX)
CONTROL END(ENDO) NOMSG NOFLUSH
/*CONTROL END(ENDO) MSG LIST CONLIST SYMLIST NOFLUSH /*S80725*/
ISREDIT MACRO (PARMSTR)
IF &DJSNAME = &STR(XXXXX.XXXXX) THEN +
DO
ISPEXEC SETMSG MSG(JM022R) /*JTE30780*/
GOTO ENDING
ENDO
/* ************ ALLOCATE RUN CONTROL LIBRARY ************
ISPEXEC SELECT PGM(J00YCKAL) PARM(JLRCL) /*JTE30780*/
IF &LASTCC NE 0 THEN +
DO
SET &RCLALC = 'N' /*813647 */
ALLOC DDN(JLRCL) DSN('&DJSNAME..SJJSPARM') SHR
ENDO
/* ************ CALL THE JEM SUPERVISOR ************
ISPEXEC SELECT PGM(J0AYEMU) PARM(PR(E) &PARMSTR) /*JTE30780*/
ENDING: +
ISPEXEC VGET (ZSPLIT)
IF &STR(&ZSPLIT) = &STR(YES) THEN +
EXIT
IF &RCLALC = 'N' THEN FREE DDN(JLRCL)
EXIT
******************************** Bottom of Data
*******************************
Thanks..
Paul Feller
AGT Mainframe Technical Support
-----Original Message-----
On Behalf Of Jesse 1 Robinson
Sent: Sunday, August 27, 2017 12:11
Subject: Re: Message IRX0006I running an edit macro CLIST
I never knew of this restriction on edit macros. Looking through the same
library for others, I find a few other CLISTs that have 'PROC' at the top;
most do not. It looks like JEM was constructed to allow an alternate load
library to be specified on invocation for testing purposes. I removed the
PROC statement and now it works. BTW I did not take the step of closing the
opening comment with '*/'; that is not required for CLIST in general. Also,
there is no other copy of JEM except this one in SYSPROC.
Post by Feller, Paul
So mysteries remain. My favorite user complaint: this used to work and now
it doesn't; what happened? Even more mysterious, the same CLIST continues to
work on other sysplexes at the same z/OS maintenance level. In any case, the
immediate problem is solved, for which I'm once again grateful to this List.
Post by Feller, Paul
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
-----Original Message-----
On Behalf Of CM Poncelet
Sent: Saturday, August 26, 2017 2:36 PM
Subject: (External):Re: Message IRX0006I running an edit macro CLIST
FWIW
(a) The "ISREDIT MACRO" should be the *1st* executable statement; there
should be no "PROC 0 <anything>" in edit macros - unless the edit macro is
actually embedded in the Clist (a bit unusual).
Post by Feller, Paul
(b) Anyquotes should be enclosed in both '/*' and '*/' open/closing chars,
even in Clist.
Post by Feller, Paul
The usual way to invoke an edit macro in Clist, e.g. in batch, is of the
code the Clist to invoke the edit macro ...
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VPUT PARMSTR SHARED /* store whatever PARMSTR is for macro */
ISPEXEC EDIT DATASET('&DSJNAME') MACRO(<whatever edit macro name>)
ISPEXEC VGET RC SHARED /* get the macro RC from shared pool */
... finish off the Clist ...
EXIT CODE(&RC)
and code the macro as a separate member <whatever edit macro name> ...
ISREDIT MACRO /* specify no parms if invoked by a Clist */
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VGET PARMSTR SHARED /* get the macro parms from shared pool */
... <execute whatever edit macro statements> ...
... save whatever the macro (MAX)CC is, as e.g. RC ...
ISPEXEC VPUT RC SHARED /* store whatever the RC is for Clist */
ISREDIT END /* return to Clist */
Both the Clist and edit macro should be members of a PDS on
DDNAME=SYSPROC.HTH, CP
Post by Lizette Koehler
Did you use ISRDDN and search for JEM? Just to verify what you see.
Only time I see this is when a CLIST is on SYSEXEC
Lizette
-----Original Message-----
From: IBM Mainframe Discussion List
Sent: Saturday, August 26, 2017 8:27 AM
Subject: Message IRX0006I running an edit macro CLIST
OK, this is a weird one. We have an old CLIST that runs as an ISPF
edit macro. On one sysplex only, this CLIST fails with a *Rexx* error
IRX0006I Error running JEM, line 2: Unmatched "/*" or quote
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISREDIT MACRO (PARMSTR)
Of course there is no closing '*/' in line 2, but it's a CLIST, not a
Rexx.
Post by Feller, Paul
Post by Lizette Koehler
The CLIST was last modified in 2007 according to ISPF stats. What
appears to be exactly the same CLIST works fine on other sysplexes.
The z/OS maintenance level (RSU1705) is the same on working and
nonworking plexes. I have looked in SYSEXEC libraries and in other
SYSPROC libraries for a bogus copy of this exec; nothing found. The
CLIST library is VB; member is unnumbered, so data starts in column 9.
What might cause a CLIST to be misinterpreted as Rexx?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
CM Poncelet
2017-08-28 01:57:32 UTC
Reply
Permalink
Raw Message
The reason Clist comments do not need '*/' closing chars is that Clist
lines ending with only a space imply 'end-of-line'. They would need to
end with a '+' or '-' char to indicate they continued on to next line.
REXX requires both '/*' and '*/' to indicate start and end of comments
(same as in SMP/E's PTFs etc.) I enclose my Clist comments in '/*' and
'*/' just to be sure.
 
As for the 'mysteries', I would guess that IBM published a PTF to
*enforce* the rule that edit macros should always begin with 'ISREDIT
MACRO' - and had previously been ignored. You could spend some time
cross-checking which PTFs had been applied in the SMP/E CSIs of LPARs
that did not work when 'PROC' was coded in edit macros (as opposed to
the LPARs that did still work), but I would not bother. It seems to be
some left-over glitch that IBM decided to fix.
 
Cheers, Chris Poncelet (retired sysprog)
 
 
 
Post by Jesse 1 Robinson
I never knew of this restriction on edit macros. Looking through the same library for others, I find a few other CLISTs that have 'PROC' at the top; most do not. It looks like JEM was constructed to allow an alternate load library to be specified on invocation for testing purposes. I removed the PROC statement and now it works. BTW I did not take the step of closing the opening comment with '*/'; that is not required for CLIST in general. Also, there is no other copy of JEM except this one in SYSPROC.
So mysteries remain. My favorite user complaint: this used to work and now it doesn't; what happened? Even more mysterious, the same CLIST continues to work on other sysplexes at the same z/OS maintenance level. In any case, the immediate problem is solved, for which I'm once again grateful to this List.
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
-----Original Message-----
Sent: Saturday, August 26, 2017 2:36 PM
Subject: (External):Re: Message IRX0006I running an edit macro CLIST
FWIW
(a) The "ISREDIT MACRO" should be the *1st* executable statement; there should be no "PROC 0 <anything>" in edit macros - unless the edit macro is actually embedded in the Clist (a bit unusual).
(b) Anyquotes should be enclosed in both '/*' and '*/' open/closing chars, even in Clist.
 
The usual way to invoke an edit macro in Clist, e.g. in batch, is of the
code the Clist to invoke the edit macro ...
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VPUT PARMSTR SHARED /* store whatever PARMSTR is for macro */
ISPEXEC EDIT DATASET('&DSJNAME') MACRO(<whatever edit macro name>)
ISPEXEC VGET RC SHARED /* get the macro RC from shared pool */
... finish off the Clist ...
EXIT CODE(&RC)
and code the macro as a separate member <whatever edit macro name> ...
ISREDIT MACRO /* specify no parms if invoked by a Clist */
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VGET PARMSTR SHARED /* get the macro parms from shared pool */
... <execute whatever edit macro statements> ...
... save whatever the macro (MAX)CC is, as e.g. RC ...
ISPEXEC VPUT RC SHARED /* store whatever the RC is for Clist */
ISREDIT END /* return to Clist */
Both the Clist and edit macro should be members of a PDS on DDNAME=SYSPROC.HTH, CP 
 
Post by Lizette Koehler
Did you use ISRDDN and search for JEM? Just to verify what you see.
Only time I see this is when a CLIST is on SYSEXEC
Lizette
-----Original Message-----
On Behalf Of Jesse 1 Robinson
Sent: Saturday, August 26, 2017 8:27 AM
Subject: Message IRX0006I running an edit macro CLIST
OK, this is a weird one. We have an old CLIST that runs as an ISPF
IRX0006I Error running JEM, line 2: Unmatched "/*" or quote
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISREDIT MACRO (PARMSTR)
Of course there is no closing '*/' in line 2, but it's a CLIST, not a Rexx.
The CLIST was last modified in 2007 according to ISPF stats. What
appears to be exactly the same CLIST works fine on other sysplexes.
The z/OS maintenance level (RSU1705) is the same on working and
nonworking plexes. I have looked in SYSEXEC libraries and in other
SYSPROC libraries for a bogus copy of this exec; nothing found. The
CLIST library is VB; member is unnumbered, so data starts in column 9.
What might cause a CLIST to be misinterpreted as Rexx?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2017-08-28 13:54:42 UTC
Reply
Permalink
Raw Message
Post by CM Poncelet
 
As for the 'mysteries', I would guess that IBM published a PTF to
*enforce* the rule that edit macros should always begin with 'ISREDIT
MACRO' - and had previously been ignored. ...
 
For Rexx, at least, I've always experienced an error when there was no
ADDRESS ISREDIT MACRO. But there may have been some obscure path
where it was not reported for CLISTs.

The behavior was silly. An entire EXEC could execute successfully then
have an error reported when it exited.

And if the ISPF developers hadn't been Rexx-ignorant, they would have:
o Supported PARSE ARG
o Made the inital command environment ISREDIT rather than TSO. (That would
correspond to the way XEDIT macros work in CMS.)

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Jesse 1 Robinson
2017-08-29 16:54:07 UTC
Reply
Permalink
Raw Message
I have no stake in defending the JEM CLIST, but AFAIK 'ISREDIT MACRO' is required in order to run it from the command line with just 'jem'. For better or for worse, that's how people use the product. You're in edit on a JCL member. Before submitting, you execute JEM to increase your chances of getting a clean run. It does more than check JCL syntax. It also tries to check that data sets referred to actually exist and that in general the logic flow is at least superficially valid. Invoked as simply as possible.

PROC is not required for this function. Up to now, PROC never got in the way of successful execution.

.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
***@sce.com


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of CM Poncelet
Sent: Monday, August 28, 2017 6:04 PM
To: IBM-***@LISTSERV.UA.EDU
Subject: (External):Re: :Re: Message IRX0006I running an edit macro CLIST

FWIW

The oddity is that there are *no* edit macro statements after "ISREDIT MACRO (PARMSTR)". So why is an edit macro declared in the Clist?
 
E.g. "ISPEXEC SELECT PGM(J00YCKAL) PARM(JLRCL)" etc.can be issued directly from the Clist proc and does not need an edit macro to do that.
 
Sure, edit macros are normally invoked from the command line in edit mode. But they can also be invoked by Clist and REXX procs, and then not from the command line. So if JEM is a Clist that in turn invokes an edit macro, then 'TSO JEM + any parms' would be used to invoke JEM as a Clist (and ISPF option 6 could invoke it simply as 'JEM + any parms'). So, is JEM meant to be invoked as a Clist ("PROC 0 ...") or as an edit macro ("ISREDIT MACRO (<parms>)")?
 
I give up.
 
Cheers, CP
 
That is exactly the case. Like most (maybe all) edit macros), JEM is
executed directly on the command line. Running it as TSO command (tso
jem) would fail to establish the proper connection to ISPF. I tried
that and got
EDIT MACRO ERROR
EDIT MACRO INITIALIZATION FAILURE. CHECK EDIT MACRO CLIST.
I did not see Paul Feller's post except as quoted by CM Poncelet. As CM notes, there are two parms: DSJNAME and PARMSTR. It seems odd that one is defined on the PROC statement and the other on the ISREDIT MACRO statement, but that's the way it's supplied to the customer.
I have no problem learning that an old loophole has been closed. But closed is closed, and what fails in one place should fail everywhere with the fix is place. The person who first reported the problem here is a true mainframe veteran. He uses JEM more than anyone else I know.
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
-----Original Message-----
On Behalf Of Lizette Koehler
Sent: Sunday, August 27, 2017 8:31 PM
Subject: (External):Re: Message IRX0006I running an edit macro CLIST
Typically the user is EDITing a PDS Member with JCL and enters JEM on
the command line
Lizette
-----Original Message-----
On Behalf Of CM Poncelet
Sent: Sunday, August 27, 2017 7:11 PM
Subject: Re: Message IRX0006I running an edit macro CLIST
There are two parms for this Clist: DSJNAME and PARMSTR. How is JEM invoked?
(E.g. it could be invoked as "TSO JEM HLQ.DSJN1.THEREST MACPARM2".)
Post by Feller, Paul
One last comment. We run the same software and have not had an
issue in
three different SYSPLEX environments. I looked to the most recent
versions of the software we have. The JEM CLIST is shipped that way from the vendor.
Very interesting.
Post by Feller, Paul
BROWSE SYSI.JOBSCAN.R790.AJJSCLST.HS(JEM) - 01. Line 0000000000 Col 001
080
Post by Feller, Paul
Command ===> Scroll ===>
CSR
Post by Feller, Paul
********************************* Top of Data
*********************************
Post by Feller, Paul
PROC 0 DJSNAME(XXXXX.XXXXX)
CONTROL END(ENDO) NOMSG NOFLUSH
/*CONTROL END(ENDO) MSG LIST CONLIST SYMLIST NOFLUSH /*S80725*/
ISREDIT MACRO (PARMSTR)
IF &DJSNAME = &STR(XXXXX.XXXXX) THEN +
DO
ISPEXEC SETMSG MSG(JM022R) /*JTE30780*/
GOTO ENDING
ENDO
/* ************ ALLOCATE RUN CONTROL LIBRARY ************
ISPEXEC SELECT PGM(J00YCKAL) PARM(JLRCL) /*JTE30780*/
IF &LASTCC NE 0 THEN +
DO
SET &RCLALC = 'N' /*813647 */
ALLOC DDN(JLRCL) DSN('&DJSNAME..SJJSPARM') SHR
ENDO
/* ************ CALL THE JEM SUPERVISOR ************
ISPEXEC SELECT PGM(J0AYEMU) PARM(PR(E) &PARMSTR)
/*JTE30780*/
ENDING: +
ISPEXEC VGET (ZSPLIT)
IF &STR(&ZSPLIT) = &STR(YES) THEN +
EXIT
IF &RCLALC = 'N' THEN FREE DDN(JLRCL)
EXIT
******************************** Bottom of Data
*******************************
Thanks..
Paul Feller
AGT Mainframe Technical Support
-----Original Message-----
From: IBM Mainframe Discussion List
Sent: Sunday, August 27, 2017 12:11
Subject: Re: Message IRX0006I running an edit macro CLIST
I never knew of this restriction on edit macros. Looking through the
same
library for others, I find a few other CLISTs that have 'PROC' at the
top; most do not. It looks like JEM was constructed to allow an
alternate load library to be specified on invocation for testing
purposes. I removed the PROC statement and now it works. BTW I did
not take the step of closing the opening comment with '*/'; that is
not required for CLIST in general. Also, there is no other copy of JEM except this one in SYSPROC.
Post by Feller, Paul
So mysteries remain. My favorite user complaint: this used to work
and now
it doesn't; what happened? Even more mysterious, the same CLIST
continues to work on other sysplexes at the same z/OS maintenance
level. In any case, the immediate problem is solved, for which I'm once again grateful to this List.
Post by Feller, Paul
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
-----Original Message-----
From: IBM Mainframe Discussion List
Sent: Saturday, August 26, 2017 2:36 PM
Subject: (External):Re: Message IRX0006I running an edit macro CLIST
FWIW
(a) The "ISREDIT MACRO" should be the *1st* executable statement;
there
should be no "PROC 0 <anything>" in edit macros - unless the edit
macro is actually embedded in the Clist (a bit unusual).
Post by Feller, Paul
(b) Anyquotes should be enclosed in both '/*' and '*/' open/closing
chars,
even in Clist.
Post by Feller, Paul
The usual way to invoke an edit macro in Clist, e.g. in batch, is of
the
code the Clist to invoke the edit macro ...
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VPUT PARMSTR SHARED /* store whatever PARMSTR is for macro */
ISPEXEC EDIT DATASET('&DSJNAME') MACRO(<whatever edit macro name>)
ISPEXEC VGET RC SHARED /* get the macro RC from shared pool */
... finish off the Clist ...
EXIT CODE(&RC)
and code the macro as a separate member <whatever edit macro name> ...
ISREDIT MACRO /* specify no parms if invoked by a Clist */
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VGET PARMSTR SHARED /* get the macro parms from shared pool */
... <execute whatever edit macro statements> ...
... save whatever the macro (MAX)CC is, as e.g. RC ...
ISPEXEC VPUT RC SHARED /* store whatever the RC is for Clist */
ISREDIT END /* return to Clist */
Both the Clist and edit macro should be members of a PDS on
DDNAME=SYSPROC.HTH, CP
Post by Lizette Koehler
Did you use ISRDDN and search for JEM? Just to verify what you see.
Only time I see this is when a CLIST is on SYSEXEC
Lizette
-----Original Message-----
From: IBM Mainframe Discussion List
Sent: Saturday, August 26, 2017 8:27 AM
Subject: Message IRX0006I running an edit macro CLIST
OK, this is a weird one. We have an old CLIST that runs as an ISPF
edit macro. On one sysplex only, this CLIST fails with a *Rexx*
error
IRX0006I Error running JEM, line 2: Unmatched "/*" or quote
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISREDIT MACRO (PARMSTR)
Of course there is no closing '*/' in line 2, but it's a CLIST,
not a
Rexx.
Post by Feller, Paul
Post by Lizette Koehler
The CLIST was last modified in 2007 according to ISPF stats. What
appears to be exactly the same CLIST works fine on other sysplexes.
The z/OS maintenance level (RSU1705) is the same on working and
nonworking plexes. I have looked in SYSEXEC libraries and in other
SYSPROC libraries for a bogus copy of this exec; nothing found.
The CLIST library is VB; member is unnumbered, so data starts in column 9.
What might cause a CLIST to be misinterpreted as Rexx?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
CM Poncelet
2017-08-29 22:15:35 UTC
Reply
Permalink
Raw Message
Ah yes, that makes sense. I did not realise that ISPEXEC SELECT
PGM(J00YCKAL) PARM(JLRCL) actually processed the dataset being edited.
So ISREDIT MACRO is required in that case.
 
Cheers, CP
 
Post by Jesse 1 Robinson
I have no stake in defending the JEM CLIST, but AFAIK 'ISREDIT MACRO' is required in order to run it from the command line with just 'jem'. For better or for worse, that's how people use the product. You're in edit on a JCL member. Before submitting, you execute JEM to increase your chances of getting a clean run. It does more than check JCL syntax. It also tries to check that data sets referred to actually exist and that in general the logic flow is at least superficially valid. Invoked as simply as possible.
PROC is not required for this function. Up to now, PROC never got in the way of successful execution.
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
-----Original Message-----
Sent: Monday, August 28, 2017 6:04 PM
Subject: (External):Re: :Re: Message IRX0006I running an edit macro CLIST
FWIW
The oddity is that there are *no* edit macro statements after "ISREDIT MACRO (PARMSTR)". So why is an edit macro declared in the Clist?
 
E.g. "ISPEXEC SELECT PGM(J00YCKAL) PARM(JLRCL)" etc.can be issued directly from the Clist proc and does not need an edit macro to do that.
 
Sure, edit macros are normally invoked from the command line in edit mode. But they can also be invoked by Clist and REXX procs, and then not from the command line. So if JEM is a Clist that in turn invokes an edit macro, then 'TSO JEM + any parms' would be used to invoke JEM as a Clist (and ISPF option 6 could invoke it simply as 'JEM + any parms'). So, is JEM meant to be invoked as a Clist ("PROC 0 ...") or as an edit macro ("ISREDIT MACRO (<parms>)")?
 
I give up.
 
Cheers, CP
 
That is exactly the case. Like most (maybe all) edit macros), JEM is
executed directly on the command line. Running it as TSO command (tso
jem) would fail to establish the proper connection to ISPF. I tried
that and got
EDIT MACRO ERROR
EDIT MACRO INITIALIZATION FAILURE. CHECK EDIT MACRO CLIST.
I did not see Paul Feller's post except as quoted by CM Poncelet. As CM notes, there are two parms: DSJNAME and PARMSTR. It seems odd that one is defined on the PROC statement and the other on the ISREDIT MACRO statement, but that's the way it's supplied to the customer.
I have no problem learning that an old loophole has been closed. But closed is closed, and what fails in one place should fail everywhere with the fix is place. The person who first reported the problem here is a true mainframe veteran. He uses JEM more than anyone else I know.
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
-----Original Message-----
On Behalf Of Lizette Koehler
Sent: Sunday, August 27, 2017 8:31 PM
Subject: (External):Re: Message IRX0006I running an edit macro CLIST
Typically the user is EDITing a PDS Member with JCL and enters JEM on
the command line
Lizette
-----Original Message-----
On Behalf Of CM Poncelet
Sent: Sunday, August 27, 2017 7:11 PM
Subject: Re: Message IRX0006I running an edit macro CLIST
There are two parms for this Clist: DSJNAME and PARMSTR. How is JEM invoked?
(E.g. it could be invoked as "TSO JEM HLQ.DSJN1.THEREST MACPARM2".)
Post by Feller, Paul
One last comment. We run the same software and have not had an
issue in
three different SYSPLEX environments. I looked to the most recent
versions of the software we have. The JEM CLIST is shipped that way from the vendor.
Very interesting.
Post by Feller, Paul
BROWSE SYSI.JOBSCAN.R790.AJJSCLST.HS(JEM) - 01. Line 0000000000 Col 001
080
Post by Feller, Paul
Command ===> Scroll ===>
CSR
Post by Feller, Paul
********************************* Top of Data
*********************************
Post by Feller, Paul
PROC 0 DJSNAME(XXXXX.XXXXX)
CONTROL END(ENDO) NOMSG NOFLUSH
/*CONTROL END(ENDO) MSG LIST CONLIST SYMLIST NOFLUSH /*S80725*/
ISREDIT MACRO (PARMSTR)
IF &DJSNAME = &STR(XXXXX.XXXXX) THEN +
DO
ISPEXEC SETMSG MSG(JM022R) /*JTE30780*/
GOTO ENDING
ENDO
/* ************ ALLOCATE RUN CONTROL LIBRARY ************
ISPEXEC SELECT PGM(J00YCKAL) PARM(JLRCL) /*JTE30780*/
IF &LASTCC NE 0 THEN +
DO
SET &RCLALC = 'N' /*813647 */
ALLOC DDN(JLRCL) DSN('&DJSNAME..SJJSPARM') SHR
ENDO
/* ************ CALL THE JEM SUPERVISOR ************
ISPEXEC SELECT PGM(J0AYEMU) PARM(PR(E) &PARMSTR)
/*JTE30780*/
ENDING: +
ISPEXEC VGET (ZSPLIT)
IF &STR(&ZSPLIT) = &STR(YES) THEN +
EXIT
IF &RCLALC = 'N' THEN FREE DDN(JLRCL)
EXIT
******************************** Bottom of Data
*******************************
Thanks..
Paul Feller
AGT Mainframe Technical Support
-----Original Message-----
From: IBM Mainframe Discussion List
Sent: Sunday, August 27, 2017 12:11
Subject: Re: Message IRX0006I running an edit macro CLIST
I never knew of this restriction on edit macros. Looking through the
same
library for others, I find a few other CLISTs that have 'PROC' at the
top; most do not. It looks like JEM was constructed to allow an
alternate load library to be specified on invocation for testing
purposes. I removed the PROC statement and now it works. BTW I did
not take the step of closing the opening comment with '*/'; that is
not required for CLIST in general. Also, there is no other copy of JEM except this one in SYSPROC.
Post by Feller, Paul
So mysteries remain. My favorite user complaint: this used to work
and now
it doesn't; what happened? Even more mysterious, the same CLIST
continues to work on other sysplexes at the same z/OS maintenance
level. In any case, the immediate problem is solved, for which I'm once again grateful to this List.
Post by Feller, Paul
.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
-----Original Message-----
From: IBM Mainframe Discussion List
Sent: Saturday, August 26, 2017 2:36 PM
Subject: (External):Re: Message IRX0006I running an edit macro CLIST
FWIW
(a) The "ISREDIT MACRO" should be the *1st* executable statement;
there
should be no "PROC 0 <anything>" in edit macros - unless the edit
macro is actually embedded in the Clist (a bit unusual).
Post by Feller, Paul
(b) Anyquotes should be enclosed in both '/*' and '*/' open/closing
chars,
even in Clist.
Post by Feller, Paul
The usual way to invoke an edit macro in Clist, e.g. in batch, is of
the
code the Clist to invoke the edit macro ...
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VPUT PARMSTR SHARED /* store whatever PARMSTR is for macro */
ISPEXEC EDIT DATASET('&DSJNAME') MACRO(<whatever edit macro name>)
ISPEXEC VGET RC SHARED /* get the macro RC from shared pool */
... finish off the Clist ...
EXIT CODE(&RC)
and code the macro as a separate member <whatever edit macro name> ...
ISREDIT MACRO /* specify no parms if invoked by a Clist */
CONTROL END(ENDO) NOMSG NOFLUSH
ISPEXEC VGET PARMSTR SHARED /* get the macro parms from shared pool */
... <execute whatever edit macro statements> ...
... save whatever the macro (MAX)CC is, as e.g. RC ...
ISPEXEC VPUT RC SHARED /* store whatever the RC is for Clist */
ISREDIT END /* return to Clist */
Both the Clist and edit macro should be members of a PDS on
DDNAME=SYSPROC.HTH, CP
Post by Lizette Koehler
Did you use ISRDDN and search for JEM? Just to verify what you see.
Only time I see this is when a CLIST is on SYSEXEC
Lizette
-----Original Message-----
From: IBM Mainframe Discussion List
Sent: Saturday, August 26, 2017 8:27 AM
Subject: Message IRX0006I running an edit macro CLIST
OK, this is a weird one. We have an old CLIST that runs as an ISPF
edit macro. On one sysplex only, this CLIST fails with a *Rexx*
error
IRX0006I Error running JEM, line 2: Unmatched "/*" or quote
PROC 0 DJSNAME(SPP.JOBSCAN)
/* COPYRIGHT DIVERSIFIED SOFTWARE SYSTEMS, INC., 1991,1993.
CONTROL END(ENDO) NOMSG NOFLUSH
ISREDIT MACRO (PARMSTR)
Of course there is no closing '*/' in line 2, but it's a CLIST,
not a
Rexx.
Post by Feller, Paul
Post by Lizette Koehler
The CLIST was last modified in 2007 according to ISPF stats. What
appears to be exactly the same CLIST works fine on other sysplexes.
The z/OS maintenance level (RSU1705) is the same on working and
nonworking plexes. I have looked in SYSEXEC libraries and in other
SYSPROC libraries for a bogus copy of this exec; nothing found.
The CLIST library is VB; member is unnumbered, so data starts in column 9.
What might cause a CLIST to be misinterpreted as Rexx?
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Loading...