Re: How to configure using PDS members in JCL.

2024-01-08 Thread Charles Hardee
Good catch Gil!

The one thing I forgot to say was that the member being included needs a
statement like this as the first entry:

// DD   *,SYMBOLS=JCLONLY

Sorry for the confusion.

C-


On Mon, Jan 8, 2024 at 10:47 AM Paul Gilmartin <
042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote:

> On Mon, 8 Jan 2024 14:22:42 +, Seymour J Metz wrote:
>
> >CPPUPDTE (nee IPOUPDTE) only changes a  existing member; the easiest ways
> I can think of to do what you want are ISPF file tailoring or JCL
> substitution with a // INCLUDE. I would probably go with the former.
> >
> Oh my!  Can an INCLUDE statement be embedded in instream data, or is it a
> terminator
> like other JCL statements?  I suppose concatenation is your friend.
> Should such a
> JCLLIB member begin with //  DD DATA,SYMBOLS=JCLONLY and end with /*?
>
> Is there a necessary and valuable example in the Ref. or SAMPLIB?
>
> --
> gil
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: How to configure using PDS members in JCL.

2024-01-08 Thread Charles Hardee
Colin,

I do it using IEBGENER:

// JCLLIB ORDER=pds.with.members.to.use
//SETSTEP  EXEC PGM=IEBGENER
//SYSINDD   DUMMY
//SYSPRINT DD   SYSOUT=*
//SYSUT1   DD   *,SYMBOLS=JCLONLY
// INCLUDE MEMBER=x
//SYSUT2   DD   DISP=SHR,DSN=dataset.to.contain.resolved.member

I don't know if this will work for you, but it works for my needs.

You probably wouldn't want to put the substitution output back into the
original file.
Depending on how you're going to use the result, you could use a temporary
file or a permanent file.

Chuck

On Mon, Jan 8, 2024 at 6:16 AM Colin Paice  wrote:

> I have a PDS with configuration definitions in it and want to make it easy
> to configure.
>
> I want to have PDS members with content like PERMIT ... ACCESS(READ)
> CLASS(...) ID()
> and want the  to be substituted for example in JCL // SET ID=COLIN, and
> be able to change the value on each run.
> However JCL symbols only work with SYSIN DD * type data not within dataset
> members.
>
> What is the best way of doing this?
>
> - I could have an inline IEBUPDTE which does the substitution and creates
> the members.
> - I've found references to IPOUPDTE.  Is there a modern version of this
> provided by IBM?
> - I could write an ISPF macro.
> But none of these match the ease of changing the JCL // SET ID=COLIN
> statement.
>
> Colin
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: Addressing mode for SYNAD exit

2023-11-06 Thread Charles Hardee
Yep!
I've already done that, added an NILH to strip away the high byte, but it
does make for an interesting question.



On Mon, Nov 6, 2023 at 12:30 PM Charles Mills  wrote:

> > does this mean IBM has an issue in that they aren't clearing the flags
> >from the DCB address when they load it for passing to the SYNAD exit, or
> is
> >it my responsibility to clear the high byte
>
> Not sure, but I can darn sure tell you what the fastest resolution would
> be!
>
> Charles
>
>
> On Mon, 6 Nov 2023 11:46:16 -0600, Charles Hardee <
> charleshhar...@gmail.com> wrote:
>
> >To answer  Seymour J. Metz's question first, it's specified in the DCB.
> >
> >To answer Charles Mills' question, the module is defined as RMODE 24,
> AMODE
> >ANY, so the I/O was issued in 31-bit mode.
> >
> >Which now rings a bell, I, too, vaguely remember that SYNAD is called in
> >the A-Mode of the code issuing the I/O.
> >
> >So, does this mean IBM has an issue in that they aren't clearing the flags
> >from the DCB address when they load it for passing to the SYNAD exit, or
> is
> >it my responsibility to clear the high byte before trying to use the DCB
> >address in the low 3?
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: Addressing mode for SYNAD exit

2023-11-06 Thread Charles Hardee
To answer  Seymour J. Metz's question first, it's specified in the DCB.

To answer Charles Mills' question, the module is defined as RMODE 24, AMODE
ANY, so the I/O was issued in 31-bit mode.

Which now rings a bell, I, too, vaguely remember that SYNAD is called in
the A-Mode of the code issuing the I/O.

So, does this mean IBM has an issue in that they aren't clearing the flags
from the DCB address when they load it for passing to the SYNAD exit, or is
it my responsibility to clear the high byte before trying to use the DCB
address in the low 3?

C-

On Mon, Nov 6, 2023 at 11:34 AM Charles Mills  wrote:

> My notes from 2005 seem to imply that the SYNAD exit may be called in
> 31-bit mode. I think it is called in the mode under which the GET or PUT
> was issued.
>
> Charles
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Addressing mode for SYNAD exit

2023-11-06 Thread Charles Hardee
Hello All,

I have been under the impression for decades that SYNAD exits are called in
24-bit mode.

Recently I have been having problems in one of my programs.
The problem goes as follows:
I am reading an input file that is defined as:
//INPUTDD  *,SYMBOLS=JCLONLY
OUTPUT DATASET  *other parameters*
/*

When the value of OUTDSN is long enough that the OUTPUT input statement is
greater than 80 characters, my SYNAD exit is called, but in 31-bit mode. R1
is passed to the SYNAD exit but has flag settings in the upper byte
followed by the 3-byte address of my DCB.
Since I am now in 31-bit mode, the flag bits cause the DCB address to be
unavailable and I get a S0C4 when trying to access the DCB.
If I insert a "NILH R1,X'00FF'" as the first instruction of my SYNAD code,
all works as before and I get a wrong length record error, rightfully so,
since the input record passed by the OS is greater than 80 characters.

So, after my long winded explanation, my question is, when did the calling
of SYNAD exits change to 31-bit? Or am I just still living in the dark ages?

Thanks,
Chuck

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


Re: Programatically setting JCL symbols

2023-10-19 Thread Charles Hardee
Thanks everyone for your information.

I have looked at named tokens and it appears they just might do what I need.

Chuck

On Thu, Oct 19, 2023 at 1:06 PM Jon Perryman  wrote:

> On Thu, 19 Oct 2023 16:25:23 +, Farley, Peter <
> peter.far...@broadridge.com> wrote:
>
> >System-wide named tokens will survive between batch steps, but  may
> require authorized code to create and delete them.
>
> The OP is now talking about system symbols which will also be protected.
> If incorrectly protected, changing critical system symbols could damage
> your system far worse than named tokens.
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: Programatically setting JCL symbols

2023-10-19 Thread Charles Hardee
No decision has yet been made as to how this "communication" will take
place.

The solution does not need to survive an IPL, but, if it can be 'PLEX wide
that would be even more versatile, but not a requirement.,

Chuck

On Thu, Oct 19, 2023 at 10:03 AM Tony Harminc  wrote:

> On Thu, 19 Oct 2023 at 10:18, Charles Hardee 
> wrote:
>
> >
> > I will "grossly" explain what I want to do.
> > I am not interested in other methods, I have other methods, but I am
> > interested in this method the most, if it can be done.
> >
> > Program A executes and sets a global symbol to a certain value and
> > terminates.
> > Many other jobs execute and, in each one, as needed, the programs check
> to
> > see if the global symbol is set and, if it is, to what value.
> > They then make logic path decisions within the program based on the value
> > of the global symbol.
> > Finally, Program B runs, or maybe it's just Program A again, and the
> global
> > symbol is deleted.
> >
>
> What's the temporal scope for this symbol? Does it need to survive an IPL?
> And does it need to be available cross-system, i.e. within sysplex members?
>
> As you admit, there are several other approaches to the general requirement
> that don't involve a JCL-style symbol. For within an IPL there is the
> Name/Token pair scheme.
>
> Perhaps the simplest that needs no special facilities or authorization is
> for Program A to write the value into a dataset or UNIX file, and the other
> jobs to read it from there (or find that it doesn't exist).
>
> I do get the impression that you've decided on the solution - quite
> possibly not the best one - before defining (or at least explaining here)
> the problem to be solved.
>
> Tony H.
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: Programatically setting JCL symbols

2023-10-19 Thread Charles Hardee
I would call it "corrective".

As Allan eluded to, I am really after SYSTEM not JCL symbols.

Apologies, while they are different, I typically lump them into the same
bucket.

Chuck

On Thu, Oct 19, 2023 at 9:31 AM Tom Marchant <
000a2a8c2020-dmarc-requ...@listserv.ua.edu> wrote:

> JCL symbols exist only within a job. A symbol set in one job cannot be
> checked in another job.
>
> Sorry if this isn't "*constructive*".
>
> --
> Tom Marchant
>
> On Thu, 19 Oct 2023 09:17:34 -0500, Charles Hardee <
> charleshhar...@gmail.com> wrote:
>
> >My apologies, I didn't mean to stir up the hornet's nest of opinions on
> the
> >viability of my question.
> >
> >I will "grossly" explain what I want to do.
> >I am not interested in other methods, I have other methods, but I am
> >interested in this method the most, if it can be done.
> >
> >Program A executes and sets a global symbol to a certain value and
> >terminates.
> >Many other jobs execute and, in each one, as needed, the programs check to
> >see if the global symbol is set and, if it is, to what value.
> >They then make logic path decisions within the program based on the value
> >of the global symbol.
> >Finally, Program B runs, or maybe it's just Program A again, and the
> global
> >symbol is deleted.
> >
> >So, my question is, still, is it possible to define SET symbols from
> within
> >a program?
> >
> >Thanks, again, in advance for any *constructive* assistance.
> >Chuck
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: Programatically setting JCL symbols

2023-10-19 Thread Charles Hardee
My apologies, I didn't mean to stir up the hornet's nest of opinions on the
viability of my question.

I will "grossly" explain what I want to do.
I am not interested in other methods, I have other methods, but I am
interested in this method the most, if it can be done.

Program A executes and sets a global symbol to a certain value and
terminates.
Many other jobs execute and, in each one, as needed, the programs check to
see if the global symbol is set and, if it is, to what value.
They then make logic path decisions within the program based on the value
of the global symbol.
Finally, Program B runs, or maybe it's just Program A again, and the global
symbol is deleted.

So, my question is, still, is it possible to define SET symbols from within
a program?

Thanks, again, in advance for any *constructive* assistance.
Chuck

On Thu, Oct 19, 2023 at 2:26 AM Lennie Dymoke-Bradshaw <
032fff1be9b4-dmarc-requ...@listserv.ua.edu> wrote:

> Yes, I did mean that. My bad for sending a note late at night when I'm
> tired.
> Lennie
>
> -Original Message-
> From: IBM Mainframe Discussion List  On Behalf
> Of Paul Gilmartin
> Sent: 18 October 2023 23:56
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Programatically setting JCL symbols
>
> On Wed, 18 Oct 2023 22:53:05 +0100, Lennie Dymoke-Bradshaw wrote:
>
> >On the other hand they can be passed to another job via the internal
> reader specified with the SYMBOLS parameter.
> >For example,
> >//INTRDR   DD  *,SYMLIST=*
> >It could make sense in this instance.
> >
> ITYM:
> // EXPORT SYMLIST=*
> ...
> //INTRDR   DD  SYSOUT=(,INTRDR),SYMBOLS=JCLONLY
>
> It's possible the OP wants to pass values between steps.  The guaranteed
> way to do that is with a temporary data set.
>
> There was s discussion here lately of environment variables.  Questions I
> never saw clearly answered:
>
> o Are environment variables available to any program, regardless of
> language?
>
> o Do they require LE or C RTL?
>
> o Do they endure from step to step?
>
> o Are they rooted with WXTRN environ and structured as in POSIX?
>
> --
> gil
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions, send email
> to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Programatically setting JCL symbols

2023-10-18 Thread Charles Hardee
Hello All,

Thanks in advance for anyone that can shed light on the subject.

Is there a mechanism for setting a JCL type variable from within a program?

In other words, I would like to do this:

// SET XYZ='ABC and DEF'

from within a program.

Again, thanks for anyone that can shed light on this subject.
Chuck

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


Re: When did the IPCS follow 64 bit pointer character change?

2023-09-20 Thread Charles Hardee
I'm on 2.5 and just used ! today.


On Wed, Sep 20, 2023 at 3:20 PM Binyamin Dissen 
wrote:

> You specify the pointer type in the storage display screen.
>
> % = 24bit
> ? = 31 bit
>
> On Wed, 20 Sep 2023 15:15:28 -0500 Paul Gilmartin
> <042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote:
>
> :>On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen wrote:
> :>
> :>>It seems like the IPCS 64 bit follow pointer has become ] (right
> bracket)
> :>>instead of ! (exclamation point).
> :>>
> :>How does it distinguish 24- from 31-bit pointers?
> :>Of course that could be resolved with control area maps.
>
> --
> Binyamin Dissen 
> http://www.dissensoftware.com
>
> Director, Dissen Software, Bar & Grill - Israel
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: How to set a SLIP to catch S0C4 in OMVS separate AS

2023-07-15 Thread Charles Hardee
I wouldn't call myself a SLIP expert, but I do a lot of SLIPs during
software development.

Consider something like the private module parm of SLIP. You would use
something like P=TOROLABA.

Do you get registers when you get the S0C4?
If you do, find the one that contains the base address and use that in a
range parm.

That might help narrow down the SLIP and not have to watch the whole
address space.

Chuck

On Sat, Jul 15, 2023 at 2:59 PM Jon Perryman  wrote:

>  The SLIP I recommended was to capture the system trace which will not
> solve your problem but would give you information about setting a slip to
> capture the you need. S0C4 SVCDUMP is notoriously difficult to capture.
> Since the error message contains the abend address, you don't need to use
> the system trace table to get that address.
>
> If I understand the CEE3204S error message correctly, it tells you the
> abending address which can be used in the SLIP. It's great that this
> address is consistent. Note that setting SLIP can sometimes change the
> abending address so a broader address range is advisable. I'm guessing that
> we should see any other S0C4 within 1M of that address. Here's the slip I
> would have asked customers to try:
>
> SLIP SET,ID=PYDB,COMP=0C4,ADDRESS=(1C30,1C5),ACTION=SVCD,END
>
> A 2M range is extreme but with limited access to setting slips, this will
> be more likely to include the address. You could make it closer 1C3A79B4
> which would reduce the risk of capturing a false S0C4.
>
> On Saturday, July 15, 2023 at 11:50:20 AM PDT, Farley, Peter <
> 031df298a9da-dmarc-requ...@listserv.ua.edu> wrote:
>
>  Follow-up: The python code that abends is already using try/except around
> the calls to the fetch_both() function, and the “except” phrase is never
> executed (I already have message outputs there, though not to
> /dev/console), so there is no chance to output anything after the abend
> happens.
>
> So what I think we need is something that will generate a dump after the
> S0C4 in an OMVSEX AS forked from the bash login AS.
>
> In case it helps, the exact error message printed by the abend are as
> follows:
>
> CEE3204S The system detected a protection exception (System Completion
> Code=0C4).
> From compile unit TOROLABA:./Objects/object.c at entry point
> PyObject_Hash at statement 769 at compile unit offset +1C3A79B4 at
> entry offset
> +0074 at address 1C3A79B4.
> Segmentation fault
>
> This is a consistently generated abend, at the same offset every time
> (though the actual address changes).
>
> Peter
>
> From: IBM Mainframe Discussion List  On Behalf
> Of Farley, Peter
> Sent: Saturday, July 15, 2023 2:18 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: How to set a SLIP to catch S0C4 in OMVS separate AS
>
>
>
> Thanks for trying to help Jon, but “IBM” hasn’t *officially* looked at
> anything.  The python ibmdb team is an open source collective (perhaps
> including some IBM employees, but I do not know that for sure) and is not
> “official” IBM support at all.  One of the ibmdb team has asked for an
> SVCDUMP as they may have seen this error previously but could not follow up
> on it at that time.
>
>
>
> I do not have access to set the SLIP to catch this abend, I have to rely
> on the admins at the Zxplore system to do that, and they are not experts
> either.  Zxplore is a “student learning” system that IBM runs in the cloud
> but solving a problem with the python ibmdb code is not very high on their
> list of priorities, though they have been trying to help here.  I am not
> dealing with an experienced z/OS sysprog on Zxplore for this task, just a
> system “administrator” who has considerable authority on the system.
>
>
>
> The python program stops altogether after the abend even with a try/except
> (at least I think it does – I will double check that) so there is no chance
> to output anything after the abend.  If it turns out that a try/except
> works I will try getting an output to /dev/console after the abend and see
> if that can help generate a dump.  I am not sure that an SVCDUMP after the
> python program terminates would be at all helpful, but I am not an expert
> in that area either.
>
>
>
> Again, thanks for trying to help.
>
>
>
> Peter
>
>
>
> From: IBM Mainframe Discussion List  On Behalf
> Of Jon Perryman
>
> Sent: Saturday, July 15, 2023 11:28 AM
>
> To: IBM-MAIN@LISTSERV.UA.EDU
>
> Subject: Re: How to set a SLIP to catch S0C4 in OMVS separate AS
>
>
>
> As you discovered, S0C4 SLIPs are at the best of times a pain in the a$$.
> S0C4 is difficult because it has a real use which is to determine if a page
> has been created (not just allocated). It requires multiple SLIP IGNORE
> which can be obtained from IBM. Since you are working with IBM support, I
> assume they gave you these SLIP IGNORE to be defined the SLIP SVCDUMP. It
> would be helpful to see the SLIPs provided by IBM.
>
> I assume IBM looked at the CEEDUMP but it did not contain 

Re: Question on the SLIP command

2023-06-21 Thread Charles Hardee
Hi Peter,

This works:

 STR14,0(,R13)
 JAS   R14,*+4+8
 DCC'$SL$',Y(x,y)
 L R14,0(,R13)

and I can do DA=(14R?,EQ,5BE2D35B)
Where x is a module's identification number and y is the nth macro
expansion for my SLIP trigger macro.

What I wanted to do was:

 J *+4+8
 DCC'$SL$',Y(x,y)

and I can do something like DA=(PSW?,EQ,5BE2D35B)

I was hoping to use the PSW in order to preserve all of my registers.
Apparently, I am not going to be able to do what I want to do.

Thanks for the information.
Chuck




On Wed, Jun 21, 2023 at 7:24 AM Peter Relson  wrote:

> As you have observed, there is no support for "PSW".
>
> I'm curious what SLIP trap you're setting that would let you even know to
> look at "+4". You'd have to know that the instruction itself was a branch
> and that it was one of "your" branches. If you really could tell that it
> was one of your branches, and if you have a reg that you can afford to use
> consistently perhaps use BRAS instead of J and then you could indirect off
> of the value in the reg.
>
> If this is a PER-SB (or IF) trap, and you know the address is below 2G,
> field LCCAPERA contains the address of the instruction that took the PER
> interrupt. LCCAPPSW contains the resulting PSW (so LCCAPPSW+4 contains the
> address, but may have bit 0 on)
>
> The LCCA is pointed to by PSA location x'210'.
>
> LCCXLCCAPERA and LCCXPPSW16_2 contain the 8-byte address and 16-byte PSW
> analogs.
>
> With use of an expression using indirection starting at x'210' and the EQ
> or EQA comparand you might be able to do something.
>
> Peter Relson
> z/OS Core Technology Design
>
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: Question on the SLIP command

2023-06-20 Thread Charles Hardee
Hi Eric,

I have a macro that generates a code sequence like this:

  J*+4+6
  DCC'$SL$,Y(x,y)

x and y are "footprint" type fields.
The x represents the module identifier, 1, 2, 3, etc and y represents the
specific macro expansion, 1, 2, 3, etc.

The idea being when the PSW+4 points to the specific C'$SL$,Y(x,y)
combination, trigger the SLIP.
I tried using the DA=(..) parameter and when I coded what I hoped would
work, I used PSW like I would have used, for instance, 2R, and the SLIP
parser rejected it.

Chuck


On Tue, Jun 20, 2023 at 1:50 PM Eric D Rossman  wrote:

> Normally, you would use the RANGE= option to have the SLIP hit on certain
> PSWs. Are you trying to see if a particular instruction is present at the
> PSW?
>
> Eric Rossman
>
> -Original Message-
> From: IBM Mainframe Discussion List  On Behalf
> Of Charles Hardee
> Sent: Tuesday, June 20, 2023 1:40 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: [EXTERNAL] Question on the SLIP command
>
> Hello All,
>
> I have a question regarding the SLIP command.
>
> In my DA= parameter I have used things like 2r? to reference register 2,
> etc.
> Is there a symbol for the PSW?
> I have tried DA=(PSW?+0,EQ,*myvalue*) and it tells me the DA parm is bad.
>
> Thanks,
> Chuck
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Question on the SLIP command

2023-06-20 Thread Charles Hardee
Hello All,

I have a question regarding the SLIP command.

In my DA= parameter I have used things like 2r? to reference register 2,
etc.
Is there a symbol for the PSW?
I have tried DA=(PSW?+0,EQ,*myvalue*) and it tells me the DA parm is bad.

Thanks,
Chuck

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


Re: COBOL to dynamic DD name

2023-04-28 Thread Charles Hardee
*I have not tried this*, but could you use SET FILE-VAR TO ADDRESS OF
FILE-NAME?
Does that make FILE-VAR point to the DCB?
If so, then, with the file closed, move in your DD name, open, write, close.
Rinse and repeat.

Like I said, I don't know if this will work, but it's worth a try.

Chuck


On Fri, Apr 28, 2023 at 2:38 PM Schmitt, Michael 
wrote:

> I know how to have a COBOL program on z/OS use a data set name that isn't
> determined until runtime, via an environment variable. My question is can
> you use one file (i.e. one select/assign and one FD) to write to different
> DD names, that were already allocated in the JCL?
>
> I can't find a way, and in the manual the syntax for the environment
> variable method requires a DSN or PATH, no option for a DD name.
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: COBOL question

2023-04-08 Thread Charles Hardee
I have not seen this exactly like what you  describe, but I do have some
thoughts.
The pointer you are using for the ALLOCATE, does it have a value clause,
specifically VALUE NULL.
If not, the pointer could have an unknown value that does not compare equal
to NULL so you would attempt to FREE it.



On Sat, Apr 8, 2023 at 6:05 PM Cameron Conacher  wrote:

> Hello folks
> I have written an IMS  COBOL program. I have included a couple of ALLOCATE
> statements.
> At the end of processing I check my pointers and if they are not NULL I
> try to FREE. This results in a U4038 abend. At least inside Expediter.
> I have not used ALLOCATE/FREE before.
> I am thinking it may be related to Expediter somehow.
> I mean FREE is pretty darned straight forward.
> At the moment I have commented out the statements. Memory should be freed
> at the end of processing anyway, but good housekeeping is well good.
> Has anyone seen this before?
>
> Thanks
>
> Sent from my iPhone
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: Cobol calling module with non alphanumeric no longer allowed???

2023-04-07 Thread Charles Hardee
Try dataname:

XX PROGNAME PIC X(08) VALUE 'progname'..

XX can be 77 or a regular level number.

Then, CALL PROGNAME parms...


On Fri, Apr 7, 2023, 5:25 PM Frank Swarbrick 
wrote:

> Literal.  The compiler flags it as not allowed.
> 
> From: IBM Mainframe Discussion List  on behalf
> of Charles Hardee 
> Sent: Friday, April 7, 2023 4:11 PM
> To: IBM-MAIN@LISTSERV.UA.EDU 
> Subject: Re: Cobol calling module with non alphanumeric no longer
> allowed???
>
> Are you doing a call literal or call dataname?
>
> On Friday, April 7, 2023, Frank Swarbrick 
> wrote:
>
> > I've tried calling modules (that exist!) with both '@' and '#' signs in
> > them and Enterprise COBOL 5+ does not allow this.  COBOL 4 allowed this.
> > Is there any good reason why this is the case?
> >
> > --
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> >
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: Cobol calling module with non alphanumeric no longer allowed???

2023-04-07 Thread Charles Hardee
Are you doing a call literal or call dataname?

On Friday, April 7, 2023, Frank Swarbrick 
wrote:

> I've tried calling modules (that exist!) with both '@' and '#' signs in
> them and Enterprise COBOL 5+ does not allow this.  COBOL 4 allowed this.
> Is there any good reason why this is the case?
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: Test

2023-02-19 Thread Charles Hardee
I received your message so it appears your not being blocked, as of now.

On Sun, Feb 19, 2023 at 12:13 PM Steve Thompson  wrote:

> This is a test to see if my IP is still being blocked.
>
> My email server is hosted in Washington state and from time to
> time certain organizations suddenly start blocking the ips from
> the host there.
>
> Steve Thompson
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: DFSORT maximum input records

2023-01-12 Thread Charles Hardee
EQUALS was not specified in my SORT parms, but it was listed in the OPTIONS
display of the output as EQUALS=Y.
I am in the process of getting the program rerun with NOEQUALS specified.

C-

On Thu, Jan 12, 2023 at 6:06 PM Sri h Kolusu  wrote:

> >> Is 32 bits an optimum choice?  A larger pseudo-key would have some
> impact on performance and reduce the maximum supported LRECL.
>
> Gil,
>
> There is distinction between maximum supported LRECL (32K) and maximum
> supported SORT CONTROL FIELDS.  The total number of bytes occupied by all
> sort control fields must not exceed 4092 (or, when EQUALS option is in
> operation, 4088 bytes).
>
> >> And Tom Brennan's fiendish test case would still break it.  Perhaps
> "max records" should be a PARM option -- 2**32 is a good compatible default.
>
> Did you overlook this statement at the end my last post “Btw if you are
> running on Z15 and higher you can use sort accelerator(with OPTION ZSORT)
> which does NOT have that limit.”
>
> >> A few contributors have suggested SPLIT; SORT ...; MERGE.  If EQUALS is
> (truly!?) needed, would that technique meet the need?
>
> Yes, it can. Before they go down that elaborate exercise, OP needs to
> answer the question “Is EQUALS really needed?”   Unless OP cares about the
> order of duplicate records , there is NO point of having EQUALS and without
> equals there is no limit to what DFSORT can sort.
>
> Thanks,
> Kolusu
> DFSORT Development
> IBM Corporation
>
>
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: DFSORT maximum input records

2023-01-12 Thread Charles Hardee
Yes, we've been informed that SYNCSORt doesn't have this limitation but
getting it in-house takes major efforts since it's a new product to us.
We were hoping for some other DFSORT option to at least let us move forward.

Thanks everyone for listening and your replies.
Chuck

On Thu, Jan 12, 2023 at 12:21 PM rpinion865 <
042a019916dd-dmarc-requ...@listserv.ua.edu> wrote:

> This isn't an answer to your problem, and things may have changed
> considerably since the early 1980's.  But, SYNCSORT used to have
> the TAPE sort option.  Way be when, in the early 1980's, I bumped
> up against DF/SORT's limit of that time, we happened to have a
> trial copy of SYNCSORT. SYNCSORT saved the day, and that helped
> win the decision to replace DF/SORT with SYNCSORT.
>
> But, like I said, that's ancient history :)
>
>
>
>
> Sent with Proton Mail secure email.
>
> --- Original Message ---
> On Thursday, January 12th, 2023 at 1:01 PM, Charles Hardee <
> charleshhar...@gmail.com> wrote:
>
>
> > I have plenty of SORTWKxx DDs.
> > I don't think that is the problem.
> >
> > I am getting an IEX121A message.
> > According to the DFSORT Messages, Codes and Diagnosis Guide for z/OS 2.5:
> >
> > ICE121A FILE SIZE IS TOO LARGE
> > Explanation
> > Critical. The amount of data to be sorted exceeded
> > a DFSORT implementation limit for the maximum
> > number of records that can be sorted. DFSORT cannot
> > handle the amount of data regardless of environmental
> > factors, such as the amount of work data set space
> > provided. Specific implementation limits include:
> >
> > 1. EQUALS in effect - 4294967295 records
> >
> > 2. VLSHRT in effect - 2147483647 records
> >
> > 3. Blockset technique not selected - 2147483647 records
> >
> > System action
> > The program terminates.
> >
> > Programmer response
> > For cases 1 and 2, perform the sort on subsets of the
> > data set containing less than the indicated maximum
> > number of records. Then merge the sorted subsets
> > into a single data set.
> >
> > For case 3, rerun the job with a SORTDIAG DD
> > statement to get message ICE800I, which indicates
> > the reason Blockset could not be used. If possible,
> > remove the condition preventing the use of Blockset.
> > Alternatively, perform the sort on subsets of the
> > data set containing less than the indicated maximum
> > number of records. Then merge the sorted subsets
> > into a single data set.
> >
> > My record count is roughly 250,000 more than the "implementation maximum"
> > of 4294967295.
> >
> > As I indicated, this is a program doing several internal sorts against
> the
> > data so splitting, sorting and merging externally is not an option.
> >
> > Chuck
> >
> > On Thu, Jan 12, 2023 at 11:33 AM Farley, Peter <
> > 031df298a9da-dmarc-requ...@listserv.ua.edu> wrote:
> >
> > > Apologies for the typo, the Syncsort option is DYNALLOC, not DYNALOC.
> > >
> > > -Original Message-
> > > From: IBM Mainframe Discussion List IBM-MAIN@LISTSERV.UA.EDU On Behalf
> > > Of Farley, Peter
> > > Sent: Thursday, January 12, 2023 12:12 PM
> > > To: IBM-MAIN@LISTSERV.UA.EDU
> > > Subject: Re: DFSORT maximum input records
> > >
> > > Not sure if DFSORT has an equivalent option, but Syncsort has a
> parameter
> > > DYNALOC that can change the maximum number of SORTWKnn DD's it will
> > > allocate. Our local Syncsort default is 64, but for really big sorts
> (when
> > > we get the Syncsort equivalent "too big to sort" message, which says
> "SORT
> > > CAPACITY EXCEEDED") we use DYNALOC(SYSDA,255).
> > >
> > > HTH
> > >
> > > Peter
> > >
> > > -Original Message-
> > > From: IBM Mainframe Discussion List IBM-MAIN@LISTSERV.UA.EDU On Behalf
> > > Of Charles Hardee
> > > Sent: Thursday, January 12, 2023 11:43 AM
> > > To: IBM-MAIN@LISTSERV.UA.EDU
> > > Subject: DFSORT maximum input records
> > >
> > > Hello Listers,
> > >
> > > I've searched the IBM-MAIN archives and found nothing to help me so I
> > > thought I'd better ask the question.
> > >
> > > I am trying to sort roughly 4295217295, records using DFSORT.
> > > DFSORT issues a message that I have exceeded the sort input record
> maximum.
> > > It appears that this maximum is 4294967295.
> > >
> > > Since this is a program calling s

Re: DFSORT maximum input records

2023-01-12 Thread Charles Hardee
I have plenty of SORTWKxx DDs.
I don't think that is the problem.

I am getting an IEX121A message.
According to the DFSORT Messages, Codes and Diagnosis Guide for z/OS 2.5:

ICE121A FILE SIZE IS TOO LARGE
Explanation
Critical. The amount of data to be sorted exceeded
a DFSORT implementation limit for the maximum
number of records that can be sorted. DFSORT cannot
handle the amount of data regardless of environmental
factors, such as the amount of work data set space
provided. Specific implementation limits include:

1. EQUALS in effect - 4294967295 records

2. VLSHRT in effect - 2147483647 records

3. Blockset technique not selected - 2147483647 records

System action
The program terminates.

Programmer response
For cases 1 and 2, perform the sort on subsets of the
data set containing less than the indicated maximum
number of records. Then merge the sorted subsets
into a single data set.

For case 3, rerun the job with a SORTDIAG DD
statement to get message ICE800I, which indicates
the reason Blockset could not be used. If possible,
remove the condition preventing the use of Blockset.
Alternatively, perform the sort on subsets of the
data set containing less than the indicated maximum
number of records. Then merge the sorted subsets
into a single data set.

My record count is roughly 250,000 more than the "implementation maximum"
of 4294967295.

As I indicated, this is a program doing several internal sorts against the
data so splitting, sorting and merging externally is not an option.

Chuck

On Thu, Jan 12, 2023 at 11:33 AM Farley, Peter <
031df298a9da-dmarc-requ...@listserv.ua.edu> wrote:

> Apologies for the typo, the Syncsort option is DYNALLOC, not DYNALOC.
>
> -Original Message-
> From: IBM Mainframe Discussion List  On Behalf
> Of Farley, Peter
> Sent: Thursday, January 12, 2023 12:12 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: DFSORT maximum input records
>
> Not sure if DFSORT has an equivalent option, but Syncsort has a parameter
> DYNALOC that can change the maximum number of SORTWKnn DD's it will
> allocate.  Our local Syncsort default is 64, but for really big sorts (when
> we get the Syncsort equivalent "too big to sort" message, which says "SORT
> CAPACITY EXCEEDED") we use DYNALOC(SYSDA,255).
>
> HTH
>
> Peter
>
> -Original Message-
> From: IBM Mainframe Discussion List  On Behalf
> Of Charles Hardee
> Sent: Thursday, January 12, 2023 11:43 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: DFSORT maximum input records
>
> Hello Listers,
>
> I've searched the IBM-MAIN archives and found nothing to help me so I
> thought I'd better ask the question.
>
> I am trying to sort roughly 4295217295, records using DFSORT.
> DFSORT issues a message that I have exceeded the sort input record maximum.
> It appears that this maximum is 4294967295.
>
> Since this is a program calling sort internally, and does so several
> times, I cannot do the "normal" thing of splitting the file down into
> smaller files, sort them, then merge them back together.
>
> Anyone have any thoughts on this?
>
> Thanks,
> Chuck
> --
>
>
> This message and any attachments are intended only for the use of the
> addressee and may contain information that is privileged and confidential.
> If the reader of the message is not the intended recipient or an authorized
> representative of the intended recipient, you are hereby notified that any
> dissemination of this communication is strictly prohibited. If you have
> received this communication in error, please notify us immediately by
> e-mail and delete the message and any attachments from your system.
>
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


DFSORT maximum input records

2023-01-12 Thread Charles Hardee
Hello Listers,

I've searched the IBM-MAIN archives and found nothing to help me so I
thought I'd better ask the question.

I am trying to sort roughly 4295217295, records using DFSORT.
DFSORT issues a message that I have exceeded the sort input record maximum.
It appears that this maximum is 4294967295.

Since this is a program calling sort internally, and does so several times,
I cannot do the "normal" thing of splitting the file down into smaller
files, sort them, then merge them back together.

Anyone have any thoughts on this?

Thanks,
Chuck

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