Re: 0C4 error upon calling an external REXX module!

2024-03-15 Thread Bob Bridges
LOL.  As my college Greek teacher told me, when I complained about an 
illogicality - well, he waxed eloquent on a number of points on that subject, 
but he finished with "...you'll find it a lot easier to learn it than to change 
it".

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* Sometimes you feel like a nut.  After a day of working on a walnut farm, you 
don't.  -Mike Rowe of the TV show "Dirty Jobs" */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Charles Mills
Sent: Friday, March 15, 2024 19:31

You're right, but that is the standard Rexx message for any situation where the 
called module does not return a zero return code (return code as opposed to 
return string value). "You must have called the routine incorrectly, because it 
said it was not happy with the call." I agree with you, but Rexx does not, and 
Rexx counts more than I do.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 0C4 error upon calling an external REXX module!

2024-03-15 Thread Charles Mills
FWIW, I would say

>1) 0C4?  That's a really weird code to get from a REXX call, isn't it?

No, anything you call might generate an 0C4. I think 0C4 is probably the most 
common program exception. If the called module expected two parameters and did 
not check to make sure it got two and not one, I might expect a 0C4.

>2) It says "incorrect call to routine", but the call is ~not~ incorrect; 
>there's only one argument and it's any string value.

You're right, but that is the standard Rexx message for any situation where the 
called module does not return a zero return code (return code as opposed to 
return string value). "You must have called the routine incorrectly, because it 
said it was not happy with the call." I agree with you, but Rexx does not, and 
Rexx counts more than I do.

Charles

On Fri, 15 Mar 2024 13:00:06 -0400, Bob Bridges  wrote:

>We just got done resolving a very odd error, and I spent a lot of time 
>constructing an email in order to ask for help here.  We now have spotted the 
>cause, but I hate to waste the work, and the puzzle in case anyone likes 
>puzzles.
>
>We just finished upgrading from z/OS 1.14 to 2.2.  (I know, the rest comes in 
>phase 3.)  A REXX/ISPF app started abending at each call to the external 
>subroutine named LOG.  The call looks like this:
>
>  call log 
>
>What LOG should do, and used to do, is manipulate the string and send me a TSO 
>message; what actually happened each time looks like this:
>
>  System abend code 0C4, reason code 0004. 
>  Abend in external subroutine LOG.
>  28 +++  call log self 'Entering' 
>  Error running SCR0100, line 28: Incorrect call to routine
>
>I added statements here and there trying to get it to give up its secrets but 
>made little progress.  The clues I settled on were:
>
>1) 0C4?  That's a really weird code to get from a REXX call, isn't it?
>
>2) It says "incorrect call to routine", but the call is ~not~ incorrect; 
>there's only one argument and it's any string value.
>
>3) Since LOG's purpose is to send a TSO SEND message, attention focused for a 
>while on the fact that SYS1.BRODCAST had filled up.  But a sysprog determined 
>it had been full for ages, and it had been sending me messages just fine for 
>months, until the upgrade.
>
>4) The TSO SEND command continues to work fine, when I call it from the ISPF 
>command line.
>
>5) The LOG subroutine, too, works fine, when I invoke it from the ISPF command 
>line using the TSO EX command, like this:
>
>   ==> tso ex 'hlq.library.name(log)','string'
>
>6) I added SAY statements inside the LOG module, hoping to find out exactly 
>where it was bogging down, but none of them were executed.  I concluded that 
>it isn't any code inside LOG that's failing, but the call itself; the REXX 
>interpreter's never getting as far as the LOG exec.
>
>7) I wondered whether a new member named LOG had crept into the SYSPROC or 
>SYSEXEC concatenation and was supplanting this one, but no.
>
>I commented out all the calls to LOG and everything worked fine.
>
>In the end a sysprog checked the linklist and determined that #7 was on the 
>right track; there's a new Broadcom module named LOG.  So all I gotta do is 
>rename my LOG module and reïnstate the calls using the new name.  But it sure 
>kept me awake a few nights first.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


0C4 error upon calling an external REXX module!

2024-03-15 Thread Bob Bridges
We just got done resolving a very odd error, and I spent a lot of time 
constructing an email in order to ask for help here.  We now have spotted the 
cause, but I hate to waste the work, and the puzzle in case anyone likes 
puzzles.

We just finished upgrading from z/OS 1.14 to 2.2.  (I know, the rest comes in 
phase 3.)  A REXX/ISPF app started abending at each call to the external 
subroutine named LOG.  The call looks like this:

  call log 

What LOG should do, and used to do, is manipulate the string and send me a TSO 
message; what actually happened each time looks like this:

  System abend code 0C4, reason code 0004. 
  Abend in external subroutine LOG.
  28 +++  call log self 'Entering' 
  Error running SCR0100, line 28: Incorrect call to routine

I added statements here and there trying to get it to give up its secrets but 
made little progress.  The clues I settled on were:

1) 0C4?  That's a really weird code to get from a REXX call, isn't it?

2) It says "incorrect call to routine", but the call is ~not~ incorrect; 
there's only one argument and it's any string value.

3) Since LOG's purpose is to send a TSO SEND message, attention focused for a 
while on the fact that SYS1.BRODCAST had filled up.  But a sysprog determined 
it had been full for ages, and it had been sending me messages just fine for 
months, until the upgrade.

4) The TSO SEND command continues to work fine, when I call it from the ISPF 
command line.

5) The LOG subroutine, too, works fine, when I invoke it from the ISPF command 
line using the TSO EX command, like this:

   ==> tso ex 'hlq.library.name(log)','string'

6) I added SAY statements inside the LOG module, hoping to find out exactly 
where it was bogging down, but none of them were executed.  I concluded that it 
isn't any code inside LOG that's failing, but the call itself; the REXX 
interpreter's never getting as far as the LOG exec.

7) I wondered whether a new member named LOG had crept into the SYSPROC or 
SYSEXEC concatenation and was supplanting this one, but no.

I commented out all the calls to LOG and everything worked fine.

In the end a sysprog checked the linklist and determined that #7 was on the 
right track; there's a new Broadcom module named LOG.  So all I gotta do is 
rename my LOG module and reïnstate the calls using the new name.  But it sure 
kept me awake a few nights first.

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* It is well to remember that the entire universe, with one trifling 
exception, is composed of others.  -John Andrew Holmes */

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN