开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

Re: I wonder if there is a standard approved way to expand SYS2.LINKLIB?

 

Hi Clem,

Now that we have a fully functional RECV/XMIT commands, courtesy of Bob Polmanter’s NJE38 contribution, the preferred method of distribution for contributions is to distribute a single XMIT file. This technique has advantages over the distribution of a DASD volume as it requires no modifications to the Hercules startup, VATLST changes and reduces possible installation errors due to incorrect UCB assignments.

First step is to select a suitable HLQ qualifier for your contribution. Page 12 of the TK5 Introduction and User Manual lists HLQs already used in the TK5 Catalog environment. However, I suggest you contact Rob Prins with your choice of HLQ just to make sure it has not been used by some other contribution in the TK5 update pipeline.

The best way to understand the XMIT distribution technique is to look at an example where it is used in the TK5 environment. I use the XMIT technique to distribute the OS/360 S/M Program for MVS 3.8 and also for Algol F. As you are a TK5 user can I suggest you view SORT.MVS38.CNTL?

First member to look at is $INSTALL. This job cleans up any previous installations of the S/M program and then does a RECEIVE of the various S/M data sets from a data set named INSTALL.SORT. To help contributors build installation processes Rob provides a HLQ of INSTALL to bring the initial XMIT distribution data set into the TK5 environment. The S/M Program replaces SYS1.SORTLIB so it has an additional step to deal with that situation. Then, various modules, JCL Procs etc are copied to their relevant libraries as required by your contribution. The contribution is now installed.

So, how to build the initial XMIT data set for distribution? Please view member BLDDIST. First step cleans up from any previous build jobs. The development libraries for the S/M Program all have a HLQ of SYSD in my environment and some of then contain JCL or source that is my testing etc and not needed for distribution. The JCL selects the appropriate members and then uses XMIT to place all the data sets into members of a work data set that is finally XMITed as INSTALL.SORT.XMI for download to the PC and then distributed. Note that the documentation is also distributed in this way as well. Basically, the technique uses an XMIT of XMITed members in a PDS to build a single distribution data set. ?

The installation instructions are quite straightforward

--------------------------------------------------

1. Upload the INSTALL.SORT.XMI PC File.

Using IND$FILE PC File Transfer, or any other appropriate file transfer method, upload the INSTALLSORT.XMI PC file to the target TK5 environment ensuring the uploaded MVS data set has DCB parameters of RECFM=FB,LRECL=80,BLKSIZE=27920

2. RECEIVE the Installation PDS.

Issue the following command at a TSO READY prompt:

RECEIVE INDS('INSTALL.SORT.XMI') NOPROMPT

DSN('INSTALL.SORT') VOL(TK5002)

3. Install the Sort/Merge Program

The Sort/Merge libraries can now be extracted from the installation PDS using the TSO RECEIVE command running in TSO batch mode.

Member $INSTALL in the data set INSTALLSORT contains the installation JCL. Customize this to conform to site standards and submit the job.

--------------------------------------------------

You would need to provide an additional step to modify the LNKLST member with your load module library and then IPL to complete the installation process.

While there is a little more work for you as the developer to build this process for the first time the major benefit is ease of installation for the user which is the most important consideration. As you so correctly remarked, “mistakes have been made in the past”, best to make the installation as simple as possible.

Regards

Tom


Re: I wonder if there is a standard approved way to expand SYS2.LINKLIB?

 

Hi,
?
In the future update-4 of Turnkey 5 (target? date end of 2024), SYS2.LINKLIB is expanded to 40 cylinders
and 210 directory blocks.
That results in 600 allocated tracks and 216 free tracks.
?
Cheers,
Rob
?
?


Re: I wonder if there is a standard approved way to expand SYS2.LINKLIB?

 

Thanks Tom.

I have spent a few days shuffling data sets around and thinking.? I think I'll just send it as a compressed 3390 volume.? And do as you say, provide a job to update Parmlib.? However, that still leaves Sys2.Proclib and Sys2.Cmdlib.? I just want it to be dead simple to install and try out. Mistakes have been made in the past!

I think we used to keep all our SYS2 type programs on seperate DASD devices, didn't we? Perhaps it might be worthwhile thinking about doing it again? Maybe set up some SYS3 datasets, ?even? On a different drive?

Just a thought...

Clem



On Fri, Oct 25, 2024 at 10:02?AM Tom Armstrong via <tomarmstrong255=[email protected]> wrote:

Hi Clem,

If you have a major new contribution to make where the load modules need to be on the LNKLST then, as you have seen in Rob’s posting, there is a way to increase the size of SYS2.LINKLIB while preserving the * notation for the SYSRES volume.

Alternatively, you could simply add an entry to the LNKLST identifying your load module library. In the TK5 environment the previous requirement that LINK LISTED data sets be cataloged in the Master Catalog is no longer valid.

Update the LNKLST00 member and provide the data set name and immediately follow it with (volser) of where your load module library is located. If you look in the TK5 SYS1.PARMLIB(LNKLST00) member you will see an example where the NJE38 load module library is placed on TK5001. TK5 has so many great new features to make it easy to install and test contributions as described above or cloning the SYSRES volume with minimal or no changes.

Regards

Tom


Re: I wonder if there is a standard approved way to expand SYS2.LINKLIB?

 

Thanks Rob.
I altered the JCL to add the volume as *.? Then it is all relatively automatic, and hopefully not prone to errors.? After an IPL, the old SYS2.LINKLIB can be manually deleted.

I think all the work done by you (and others, of course) is absolutely fabulous.? Very well done!

Clem

//HERC01S ?JOB (ACCNT),'ENLARGE SYS2.LINKLIB',CLASS=A,MSGCLASS=X, ? ?
// ? ? ? ? NOTIFY=HERC01 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//***
//* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//* ?DESC: ENLARGE SYS2.LINKLIB ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//* ?NOTES: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//* ?1) AS DISTRIBUTED WITH HERCULES TK5, THE LIBRARY ? ? ? ? ? ? ? ?
//* ? ? IS TOO SMALL TO COPY IN SOME NEW LARGER LOAD MODULES. ? ? ? ?
//* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//* ?2) THIS PROCEDURE COPIES THE SYS2.LINKLIB INTO ? ? ? ? ? ? ? ? ?
//* ? ? A LARGER PDS, AND RENAMES THE LIBRARY. ? ? ? ? ? ? ? ? ? ? ? ?
//* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//* ?3) A REIPL IS NECESSARY TO USE THE NEW LIBARY. ? ? ? ? ? ? ? ? ?
//* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//***
//* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//DELCOPY ?EXEC PGM=IEFBR14 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//DEL ? ? ?DD ?DSN=SYS2.LINKLIB.COPY,DISP=(MOD,DELETE), ? ? ? ? ? ? ?
// ? ? ? ? ? ? VOL=REF=SYS2.LINKLIB,SPACE=(TRK,(1,,1)) ? ? ? ? ? ? ? ?
//* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//COPYBR14 EXEC PGM=IEBCOPY ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//SYSPRINT DD ?SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//SYSUT1 ? DD ?DISP=SHR,DSN=SYS2.LINKLIB ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//SYSUT2 ? DD ?DSN=SYS2.LINKLIB.COPY,DISP=(NEW,CATLG,DELETE), ? ? ? ?
// ? ? ? ? ? ? VOL=REF=SYS2.LINKLIB,DCB=(RECFM=U,BLKSIZE=32760), ? ? ?
// ? ? ? ? ? ? SPACE=(CYL,(50,,210),,CONTIG) ? ? ? ? ? ? ? ? ? ? ? ? ?
//SYSIN ? ?DD ?* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?C I=((SYSUT1,R)),O=SYSUT2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//RENAMES ?EXEC PGM=IKJEFT01,COND=(0,NE) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//SYSTSPRT DD ?SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
//SYSTSIN ?DD ?* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ?RENAME 'SYS2.LINKLIB' 'SYS2.LINKLIB.OLD' ? ? ? ? ? ? ? ? ? ? ? ? ?
? ?RENAME 'SYS2.LINKLIB.COPY' 'SYS2.LINKLIB' ? ? ? ? ? ? ? ? ? ? ? ? ?
? ?DELETE SYS2.LINKLIB NOSCRATCH ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ?DEFINE NONVSAM(NAME('SYS2.LINKLIB') DEVT(3390) VOL(*)) ? ? ? ?
//*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


On Fri, Oct 25, 2024 at 3:19?AM Rob Prins via <prin0096=[email protected]> wrote:
One problem with this job. The new SYS2.LINKLIB is not cataloged with volser=*
?
To enlarge SYS2.LINKLIB follow the steps below:
?
Go to RPF 3.4 with data set level SYS2.
Locate SYS2.LINKLIB
Place line command A before the dataset name for the allocation screen.
Change data set name from SYS2.LINKLIB to e.g. SYS2.LINKLIB.COPY and change
to number of cylinders from 30 to 40 and the number of directory blocks from 180 to 210.
Copy SYS2.LINKLIB to SYS2.LINKLIB.COPY with RPF 3.3. Use membername (*).
Go to RPF 3.4 with data set level SYS2.
Delete SYS2.LINKLIB
Rename SYS2.LINKLIB.COPY to SYS2.LINKLIB.
Go to option 6 or to the READY mode.
Give command: delete sys2.linklib noscratch
Give command: define nonvsam(name('sys2.linklib') devt(3390) vol(*))
?
This enlarged SYS2.LINKLIB will be present in TK5 Update 4.
?
Cheers,
Rob
?
?


Re: Understanding PDS in MVS 3.8

 

On Thu, Oct 31, 2024 at 03:32 AM, Greg Price wrote:
Rob can tell us what happens with the equivalent case when using RPF.
Yes: I do an OPEN/CLOSE for sequential data sets in RPF 3.2.
?
Cheers,
Rob


Re: eqqdelds

 

开云体育

Rene,

First, I apologize if I came across in some manner to offend – NOT my intention.? I did NOT take into account your experience – Again, Please – forgive.

?

?

I was suggesting that while there ARE solutions in the world today – (in this case the licensed Tivoli module) – I feel strongly (of course your view is entirely yours and we can certainly have different views) that for our TK5 environment –( I.E. hobbyist and learning) – trying to use same is again, IN MY OPINION – probably not the best choice –

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - is NOT deducted from one’s lifespan

?

From: [email protected] <[email protected]> On Behalf Of rvjansen@... via groups.io
Sent: Thursday, October 31, 2024 6:13 PM
To: [email protected]
Subject: Re: [H390-MVS] eqqdelds

?

Jeff,

?

Thank you - I fail to see the relevance of it being part of a licensed program or that fact being uppercased. ?I just wanted to know if someone made equivalent functionality yet and whether that might be in TK5. I mostly use GDG?s or the IDCAMS approach but I see the point of this more modern approach.

?

Yes. Of course I can roll my own using JFCB and the dynalloc SVC. I am not going to waste time on that if someone put that together already but might do if nobody did.

?

I cannot parse the logic of your ‘strong’ ?suggestion to ‘ignore a program that may or not be available in TK5’ - I don’t even know what that means.?

?

Also, I put JCL together for just about 40 years now - so mentioning the learning experience is also a bit irrelevant for the issue at hand.

?

搁别苍é.



On 31 Oct 2024, at 22:22, Jeff Bassett <bassettj@...> wrote:

?

Rene,

Yes, that program is part of a LICENSED PROGRAM (Tivoli Workload Scheduler) –

I STRONGLY suggest you ignore a program that may or may not be available in the TK5 environment - and code either IEFBR14, ?IDCAMS or IEHPROGM

Using supplied utilities – OR – as Jose states, you certainly can ROLL your OWN - ?

?

IEFBR14 will of course FAIL if the data set is not there to delete – quick and dirty

?

IDCAMS will deal with catalogs – and is more robust and you can check and set the MAX return code -

?

Old tricks – on ANY job that is going to create new data sets – simply add a IDCAMS step prior to the create step to delete – this will insure you will not fail for duplicate data sets.? – set the MAXRC and check the Return code – if required – or set MAXRC to zero and go on to the next step.

?

Or – there may be reason to rename the existing data set if it exists -? IDCAMS can handle that too -

?

Coding JCL is a learning experience – and will become second nature if you do it enough

?

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - is NOT deducted from one’s lifespan

?

From: [email protected] <[email protected]> On Behalf Of jose via groups.io
Sent: Thursday, October 31, 2024 3:50 PM
To: [email protected]
Subject: Re: [H390-MVS] eqqdelds

?

I think You can build a utility to create a job that delete files,.with cobol,. Utility examine jcl syntaxis. On control-m exist a utility to delete.files.

?

El jue., 31 de octubre de 2024 4:58 a. m., rvjansen@... via <rvjansen=[email protected]> escribió:

Hi group members. I learned something new today: where I used to delete datasets (needed to be allocated later in the job) using IEFBR14 or IDCAMS, there is a program called EQQDELDS (part of TWS if I'm not mistaken) that can look at DD statements in following job steps and delete every dataset which already is catalogued, but will be allocated again with disp(new,delete) or disp(new,catlg).

?

Is there a program with equivalent functionality in TK5? Outside of TK5? Or is somebody willing to look into that so I can upgrade some of my JCL and be quicker with new JCL? A quick web search turned up nothing.

?

Please let me know.

?

best regards,

?

搁别苍é Jansen.


Re: eqqdelds

 

Is correct exist any form to do this, also think from cobol can call rexx program o clist, but si necesary time to test and know how do this. Is good have code to share as wiki


El jue., 31 de octubre de 2024 5:13 p. m., rvjansen@... via <rvjansen=[email protected]> escribió:
Jeff,

Thank you - I fail to see the relevance of it being part of a licensed program or that fact being uppercased.? I just wanted to know if someone made equivalent functionality yet and whether that might be in TK5. I mostly use GDG?s or the IDCAMS approach but I see the point of this more modern approach.

Yes. Of course I can roll my own using JFCB and the dynalloc SVC. I am not going to waste time on that if someone put that together already but might do if nobody did.

I cannot parse the logic of your ‘strong’ ?suggestion to ‘ignore a program that may or not be available in TK5’ - I don’t even know what that means.?

Also, I put JCL together for just about 40 years now - so mentioning the learning experience is also a bit irrelevant for the issue at hand.

搁别苍é.

On 31 Oct 2024, at 22:22, Jeff Bassett <bassettj@...> wrote:

?

Rene,

Yes, that program is part of a LICENSED PROGRAM (Tivoli Workload Scheduler) –

I STRONGLY suggest you ignore a program that may or may not be available in the TK5 environment - and code either IEFBR14, ?IDCAMS or IEHPROGM

Using supplied utilities – OR – as Jose states, you certainly can ROLL your OWN - ?

?

IEFBR14 will of course FAIL if the data set is not there to delete – quick and dirty

?

IDCAMS will deal with catalogs – and is more robust and you can check and set the MAX return code -

?

Old tricks – on ANY job that is going to create new data sets – simply add a IDCAMS step prior to the create step to delete – this will insure you will not fail for duplicate data sets.? – set the MAXRC and check the Return code – if required – or set MAXRC to zero and go on to the next step.

?

Or – there may be reason to rename the existing data set if it exists -? IDCAMS can handle that too -

?

Coding JCL is a learning experience – and will become second nature if you do it enough

?

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - is NOT deducted from one’s lifespan

?

From: [email protected] <[email protected]> On Behalf Of jose via
Sent: Thursday, October 31, 2024 3:50 PM
To: [email protected]
Subject: Re: [H390-MVS] eqqdelds

?

I think You can build a utility to create a job that delete files,.with cobol,. Utility examine jcl syntaxis. On control-m exist a utility to delete.files.

?

El jue., 31 de octubre de 2024 4:58 a. m., rvjansen@... via <rvjansen=[email protected]> escribió:

Hi group members. I learned something new today: where I used to delete datasets (needed to be allocated later in the job) using IEFBR14 or IDCAMS, there is a program called EQQDELDS (part of TWS if I'm not mistaken) that can look at DD statements in following job steps and delete every dataset which already is catalogued, but will be allocated again with disp(new,delete) or disp(new,catlg).

?

Is there a program with equivalent functionality in TK5? Outside of TK5? Or is somebody willing to look into that so I can upgrade some of my JCL and be quicker with new JCL? A quick web search turned up nothing.

?

Please let me know.

?

best regards,

?

搁别苍é Jansen.


Re: eqqdelds

 

开云体育

Jeff,

Thank you - I fail to see the relevance of it being part of a licensed program or that fact being uppercased. ?I just wanted to know if someone made equivalent functionality yet and whether that might be in TK5. I mostly use GDG?s or the IDCAMS approach but I see the point of this more modern approach.

Yes. Of course I can roll my own using JFCB and the dynalloc SVC. I am not going to waste time on that if someone put that together already but might do if nobody did.

I cannot parse the logic of your ‘strong’ ?suggestion to ‘ignore a program that may or not be available in TK5’ - I don’t even know what that means.?

Also, I put JCL together for just about 40 years now - so mentioning the learning experience is also a bit irrelevant for the issue at hand.

搁别苍é.

On 31 Oct 2024, at 22:22, Jeff Bassett <bassettj@...> wrote:

?

Rene,

Yes, that program is part of a LICENSED PROGRAM (Tivoli Workload Scheduler) –

I STRONGLY suggest you ignore a program that may or may not be available in the TK5 environment - and code either IEFBR14, ?IDCAMS or IEHPROGM

Using supplied utilities – OR – as Jose states, you certainly can ROLL your OWN - ?

?

IEFBR14 will of course FAIL if the data set is not there to delete – quick and dirty

?

IDCAMS will deal with catalogs – and is more robust and you can check and set the MAX return code -

?

Old tricks – on ANY job that is going to create new data sets – simply add a IDCAMS step prior to the create step to delete – this will insure you will not fail for duplicate data sets.? – set the MAXRC and check the Return code – if required – or set MAXRC to zero and go on to the next step.

?

Or – there may be reason to rename the existing data set if it exists -? IDCAMS can handle that too -

?

Coding JCL is a learning experience – and will become second nature if you do it enough

?

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - is NOT deducted from one’s lifespan

?

From: [email protected] <[email protected]> On Behalf Of jose via groups.io
Sent: Thursday, October 31, 2024 3:50 PM
To: [email protected]
Subject: Re: [H390-MVS] eqqdelds

?

I think You can build a utility to create a job that delete files,.with cobol,. Utility examine jcl syntaxis. On control-m exist a utility to delete.files.

?

El jue., 31 de octubre de 2024 4:58 a. m., rvjansen@... via <rvjansen=[email protected]> escribió:

Hi group members. I learned something new today: where I used to delete datasets (needed to be allocated later in the job) using IEFBR14 or IDCAMS, there is a program called EQQDELDS (part of TWS if I'm not mistaken) that can look at DD statements in following job steps and delete every dataset which already is catalogued, but will be allocated again with disp(new,delete) or disp(new,catlg).

?

Is there a program with equivalent functionality in TK5? Outside of TK5? Or is somebody willing to look into that so I can upgrade some of my JCL and be quicker with new JCL? A quick web search turned up nothing.

?

Please let me know.

?

best regards,

?

搁别苍é Jansen.


Re: eqqdelds

 

开云体育

Rene,

I totally agree – as with many things – there are MANY ways to reach the end goal –

IEFBR14 of course, really is only a few instructions – to clear some registers and return – (there are many stories of apars against IEFBR14 over the years)

So, running IEFBR14 is actually only using the Interpreter portion of JCL processing.?? (and of course the step initialization and termination)

?

There are even some places where we attempt to structure jobs to COMBINE steps – due to the high overhead of each step – (when there are situations that include hundreds or thousands of steps – this can be a big deal) –

?

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - is NOT deducted from one’s lifespan

?

From: [email protected] <[email protected]> On Behalf Of Rene BRANDT via groups.io
Sent: Thursday, October 31, 2024 5:53 PM
To: [email protected]
Subject: Re: [H390-MVS] eqqdelds

?

If the file doesn't exist you have to give the space parameter
SPACE=(TRK,1) is enough (with SMS)

搁别苍é

Le jeudi 31 octobre 2024 à 22:39:19 UTC+1, Rene BRANDT via groups.io <rbr146@...> a écrit :

?

?

Hi,

With IEFBR14 and DISP=(MOD,DELETE) it runs every time and take very few cpu time compared to IDCAMS

搁别苍é

Le jeudi 31 octobre 2024 à 22:22:23 UTC+1, Jeff Bassett <bassettj@...> a écrit :

?

?

Rene,

Yes, that program is part of a LICENSED PROGRAM (Tivoli Workload Scheduler) –

I STRONGLY suggest you ignore a program that may or may not be available in the TK5 environment - and code either IEFBR14, ?IDCAMS or IEHPROGM

Using supplied utilities – OR – as Jose states, you certainly can ROLL your OWN - ?

?

IEFBR14 will of course FAIL if the data set is not there to delete – quick and dirty

?

IDCAMS will deal with catalogs – and is more robust and you can check and set the MAX return code -

?

Old tricks – on ANY job that is going to create new data sets – simply add a IDCAMS step prior to the create step to delete – this will insure you will not fail for duplicate data sets.? – set the MAXRC and check the Return code – if required – or set MAXRC to zero and go on to the next step.

?

Or – there may be reason to rename the existing data set if it exists -? IDCAMS can handle that too -

?

Coding JCL is a learning experience – and will become second nature if you do it enough

?

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - isNOT deducted from one’s lifespan

?

From: [email protected] <[email protected]>On Behalf Of jose via groups.io
Sent: Thursday, October 31, 2024 3:50 PM
To: [email protected]
Subject: Re: [H390-MVS] eqqdelds

?

I think You can build a utility to create a job that delete files,.with cobol,. Utility examine jcl syntaxis. On control-m exist a utility to delete.files.

?

El jue., 31 de octubre de 2024 4:58 a. m., rvjansen@... via <rvjansen=[email protected]> escribió:

Hi group members. I learned something new today: where I used to delete datasets (needed to be allocated later in the job) using IEFBR14 or IDCAMS, there is a program called EQQDELDS (part of TWS if I'm not mistaken) that can look at DD statements in following job steps and delete every dataset which already is catalogued, but will be allocated again with disp(new,delete) or disp(new,catlg).

?

Is there a program with equivalent functionality in TK5? Outside of TK5? Or is somebody willing to look into that so I can upgrade some of my JCL and be quicker with new JCL? A quick web search turned up nothing.

?

Please let me know.

?

best regards,

?

搁别苍é Jansen.


Re: eqqdelds

 

If the file doesn't exist you have to give the space parameter
SPACE=(TRK,1) is enough (with SMS)

搁别苍é


Le jeudi 31 octobre 2024 à 22:39:19 UTC+1, Rene BRANDT via groups.io <rbr146@...> a écrit :


Hi,

With IEFBR14 and DISP=(MOD,DELETE) it runs every time and take very few cpu time compared to IDCAMS

搁别苍é


Le jeudi 31 octobre 2024 à 22:22:23 UTC+1, Jeff Bassett <bassettj@...> a écrit :


Rene,

Yes, that program is part of a LICENSED PROGRAM (Tivoli Workload Scheduler) –

I STRONGLY suggest you ignore a program that may or may not be available in the TK5 environment - and code either IEFBR14, ?IDCAMS or IEHPROGM

Using supplied utilities – OR – as Jose states, you certainly can ROLL your OWN - ?

?

IEFBR14 will of course FAIL if the data set is not there to delete – quick and dirty

?

IDCAMS will deal with catalogs – and is more robust and you can check and set the MAX return code -

?

Old tricks – on ANY job that is going to create new data sets – simply add a IDCAMS step prior to the create step to delete – this will insure you will not fail for duplicate data sets.? – set the MAXRC and check the Return code – if required – or set MAXRC to zero and go on to the next step.

?

Or – there may be reason to rename the existing data set if it exists -? IDCAMS can handle that too -

?

Coding JCL is a learning experience – and will become second nature if you do it enough

?

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - isNOT deducted from one’s lifespan

?

From: [email protected] <[email protected]>On Behalf Of jose via groups.io
Sent: Thursday, October 31, 2024 3:50 PM
To: [email protected]
Subject: Re: [H390-MVS] eqqdelds

?

I think You can build a utility to create a job that delete files,.with cobol,. Utility examine jcl syntaxis. On control-m exist a utility to delete.files.

?

El jue., 31 de octubre de 2024 4:58 a. m., rvjansen@... via <rvjansen=[email protected]> escribió:

Hi group members. I learned something new today: where I used to delete datasets (needed to be allocated later in the job) using IEFBR14 or IDCAMS, there is a program called EQQDELDS (part of TWS if I'm not mistaken) that can look at DD statements in following job steps and delete every dataset which already is catalogued, but will be allocated again with disp(new,delete) or disp(new,catlg).

?

Is there a program with equivalent functionality in TK5? Outside of TK5? Or is somebody willing to look into that so I can upgrade some of my JCL and be quicker with new JCL? A quick web search turned up nothing.

?

Please let me know.

?

best regards,

?

搁别苍é Jansen.


Re: eqqdelds

 

Hi,

With IEFBR14 and DISP=(MOD,DELETE) it runs every time and take very few cpu time compared to IDCAMS

搁别苍é


Le jeudi 31 octobre 2024 à 22:22:23 UTC+1, Jeff Bassett <bassettj@...> a écrit :


Rene,

Yes, that program is part of a LICENSED PROGRAM (Tivoli Workload Scheduler) –

I STRONGLY suggest you ignore a program that may or may not be available in the TK5 environment - and code either IEFBR14, ?IDCAMS or IEHPROGM

Using supplied utilities – OR – as Jose states, you certainly can ROLL your OWN - ?

?

IEFBR14 will of course FAIL if the data set is not there to delete – quick and dirty

?

IDCAMS will deal with catalogs – and is more robust and you can check and set the MAX return code -

?

Old tricks – on ANY job that is going to create new data sets – simply add a IDCAMS step prior to the create step to delete – this will insure you will not fail for duplicate data sets.? – set the MAXRC and check the Return code – if required – or set MAXRC to zero and go on to the next step.

?

Or – there may be reason to rename the existing data set if it exists -? IDCAMS can handle that too -

?

Coding JCL is a learning experience – and will become second nature if you do it enough

?

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - isNOT deducted from one’s lifespan

?

From: [email protected] <[email protected]>On Behalf Of jose via groups.io
Sent: Thursday, October 31, 2024 3:50 PM
To: [email protected]
Subject: Re: [H390-MVS] eqqdelds

?

I think You can build a utility to create a job that delete files,.with cobol,. Utility examine jcl syntaxis. On control-m exist a utility to delete.files.

?

El jue., 31 de octubre de 2024 4:58 a. m., rvjansen@... via <rvjansen=[email protected]> escribió:

Hi group members. I learned something new today: where I used to delete datasets (needed to be allocated later in the job) using IEFBR14 or IDCAMS, there is a program called EQQDELDS (part of TWS if I'm not mistaken) that can look at DD statements in following job steps and delete every dataset which already is catalogued, but will be allocated again with disp(new,delete) or disp(new,catlg).

?

Is there a program with equivalent functionality in TK5? Outside of TK5? Or is somebody willing to look into that so I can upgrade some of my JCL and be quicker with new JCL? A quick web search turned up nothing.

?

Please let me know.

?

best regards,

?

搁别苍é Jansen.


Re: eqqdelds

 

开云体育

Rene,

Yes, that program is part of a LICENSED PROGRAM (Tivoli Workload Scheduler) –

I STRONGLY suggest you ignore a program that may or may not be available in the TK5 environment - and code either IEFBR14, ?IDCAMS or IEHPROGM

Using supplied utilities – OR – as Jose states, you certainly can ROLL your OWN - ?

?

IEFBR14 will of course FAIL if the data set is not there to delete – quick and dirty

?

IDCAMS will deal with catalogs – and is more robust and you can check and set the MAX return code -

?

Old tricks – on ANY job that is going to create new data sets – simply add a IDCAMS step prior to the create step to delete – this will insure you will not fail for duplicate data sets.? – set the MAXRC and check the Return code – if required – or set MAXRC to zero and go on to the next step.

?

Or – there may be reason to rename the existing data set if it exists -? IDCAMS can handle that too -

?

Coding JCL is a learning experience – and will become second nature if you do it enough

?

?

-J-

?

Jeff Bassett

Bassettj@...

(301) 424-3362 (office)

(240) 388-7148 Cell

?

Time spent flying? - is NOT deducted from one’s lifespan

?

From: [email protected] <[email protected]> On Behalf Of jose via groups.io
Sent: Thursday, October 31, 2024 3:50 PM
To: [email protected]
Subject: Re: [H390-MVS] eqqdelds

?

I think You can build a utility to create a job that delete files,.with cobol,. Utility examine jcl syntaxis. On control-m exist a utility to delete.files.

?

El jue., 31 de octubre de 2024 4:58 a. m., rvjansen@... via <rvjansen=[email protected]> escribió:

Hi group members. I learned something new today: where I used to delete datasets (needed to be allocated later in the job) using IEFBR14 or IDCAMS, there is a program called EQQDELDS (part of TWS if I'm not mistaken) that can look at DD statements in following job steps and delete every dataset which already is catalogued, but will be allocated again with disp(new,delete) or disp(new,catlg).

?

Is there a program with equivalent functionality in TK5? Outside of TK5? Or is somebody willing to look into that so I can upgrade some of my JCL and be quicker with new JCL? A quick web search turned up nothing.

?

Please let me know.

?

best regards,

?

搁别苍é Jansen.


Re: eqqdelds

 

I think You can build a utility to create a job that delete files,.with cobol,. Utility examine jcl syntaxis. On control-m exist a utility to delete.files.


El jue., 31 de octubre de 2024 4:58 a. m., rvjansen@... via <rvjansen=[email protected]> escribió:
Hi group members. I learned something new today: where I used to delete datasets (needed to be allocated later in the job) using IEFBR14 or IDCAMS, there is a program called EQQDELDS (part of TWS if I'm not mistaken) that can look at DD statements in following job steps and delete every dataset which already is catalogued, but will be allocated again with disp(new,delete) or disp(new,catlg).
?
Is there a program with equivalent functionality in TK5? Outside of TK5? Or is somebody willing to look into that so I can upgrade some of my JCL and be quicker with new JCL? A quick web search turned up nothing.
?
Please let me know.
?
best regards,
?
搁别苍é Jansen.


Re: Understanding PDS in MVS 3.8

 

On 31/10/2024 7:48 am, jacampbellaus via groups.io wrote:
Should have added - a PDS directory block is a keyed block.
Yes, to calculate the number of directory blocks that will fit on a track, you need to account for 256-byte data blocks each with an 8-byte key.

Also, to calculate the space required by a PDS (as compared to a sequential data set) you need to account for an EOF marker at the end of the PDS directory and an EOF marker at the end of every member.? Most of the time, meaning for most DASD types, when aiming for the PDS directory to occupy an integral number of tracks, the trick is to multiply the desired number of tracks by the number of PDS blocks per track (for that device type), and then subtract one to leave room for the EOF marker.

A sequential data set does not end with an EOF marker - although it could be read successfully if it did.

The VTOC entry of PS (and PO) data sets contains the TTR of the last record written.? With DISP=MOD (or OPEN EXTEND (or OUTINX) with DISP=OLD or DISP=SHR), the first block appended will be the block after the previous "last block written".? The track balance field in the VTOC informs the access method as to what size is the largest bock that will fit on the track with the previous last block. Accordingly, the first newly appended block will either fit on the previous last track or will be the first block on the next (relative) track.

DISP=MOD and OPEN EXTEND are not allowed for PDSes (or even for PDSEs).

IBM's ISPF option 3.2 always did an OPEN/CLOSE cycle on a newly allocated sequential data set.? We used to say that it wrote an EOF marker, but probably what it really ended up doing was erasing all blocks on the first track.? Compare this to a PGM=IEFBR14 (or any other program) step that creates a new sequential data set with JCL.? Make the block size big enough and you can read any residual data that previously occupied those tracks (assuming no RACF erase-on-scratch facility or similar).

Later on, SMS-managed sequential data sets allocated by JCL also got the EOF marker or first track erased thing done.

RFE option 3.2 does not do an open/close cycle when allocating new sequential data sets.
Rob can tell us what happens with the equivalent case when using RPF.

Cheers,
Greg


eqqdelds

 

Hi group members. I learned something new today: where I used to delete datasets (needed to be allocated later in the job) using IEFBR14 or IDCAMS, there is a program called EQQDELDS (part of TWS if I'm not mistaken) that can look at DD statements in following job steps and delete every dataset which already is catalogued, but will be allocated again with disp(new,delete) or disp(new,catlg).
?
Is there a program with equivalent functionality in TK5? Outside of TK5? Or is somebody willing to look into that so I can upgrade some of my JCL and be quicker with new JCL? A quick web search turned up nothing.
?
Please let me know.
?
best regards,
?
搁别苍é Jansen.


Re: Understanding PDS in MVS 3.8

 

Should have added - a PDS directory block is a keyed block.? So with one directory block, a track will look like:
- Directory CKD record
- Directory Key record - with the high member name in the following block
- Directory Data block - 256 bytes
- Directory EOF marker
- First data block of a member
etc
?
Each of those will have error correcting information and then be rounded up to a multiple of ??? bytes.? I forget the exact value of ??? - maybe 32 .? It's in a manual somewhere.?
?
James Campbell


Re: Understanding PDS in MVS 3.8

 

The last directory block of a PDS ends with a dummy 'end' marker with a member name of x'FFFFFFFFFFFFFFFF'.
?
James Campbell


Re: Understanding PDS in MVS 3.8

 

I recommend you to convert your disk from cckd to ckd(no compression) and then open it in HxD(free hex editor that supports EBCDIC).
That way you can see for yourself where data of your members starts and where it ends. To make things easier, fill lines of each member with different text strings.
Don't forget to change encoding from ANSI to EBCDIC.
?
Best wishes,
Andre


Re: Understanding PDS in MVS 3.8

 

Hi,
?
A member entry in the directory block is at least 12 bytes long containing:
1. member name (8 bytes)
2. TTR (3 bytes)
3. C byte (1 byte), the last 5 bits containing the number of halfwords of the user data in the directory block.
4. userdata (minimum 0 bytes, maximum 62 bytes).
?
The maximum number of halfwords userdata is 31.? So the maximum entry length = 74 bytes.
Examples of userdata are:
ISPF stats in source members
Load modules stats of load modules, like module length, SSI information etc. This is mapped by the macro IHAPDS in SYS1.AMODGEN.
?
Cheers,
Rob


Re: Understanding PDS in MVS 3.8

 

开云体育

Each 256-byte directory block has a 2-byte field which indicates the length within the block of the entries it contains, so only 254 bytes may be used to hold the entries themselves - you should be doing 254 / 12 instead of 256 / 12.

That still gives 21, however.

I'm not an expert on the exact conditions, but entries can vary in length, so I suspect that for some reason your entries are more than 12 bytes long, as 12 bytes is the maximum entry length that will allow 21 entries to fit in one directory block.



On 10/30/24 10:49, Sergio wrote:

Hi :)

I am trying to understand how PDSs are allocated in a 3390.

Facts:

  • TSO001: 3390-1, 56,664 bytes/track
  • PDS directory block: 256 bytes/dirBlock
  • PDS EOF record: unknown

Sequential Data Set

With attributes:

  • Record format: FB
  • LRECL: 80
  • BLKSZ: 27,920
  • Primary space: 1 track
  • Secondary space: 0

My expectations:

  • Blocks per track: 2
    • 56,664 bytes/track / 27,920 bytes/block = 2.0295 blocks/track
  • Logical records per block: 349
    • 27,920 bytes/block / 80 bytes/record = 349 records/block
  • Max. logical records per track: 698
    • 349 records/block * 2 blocks = 698 records

I am able to confirm my expectations with the following card decks (please, find attached):

  • fill-seq-ds-rc0.jcl (Creates a sequential data set with 698 logical records. RC=0)
  • fill-seq-ds-sb37.jcl (Creates a sequential data set with 698 logical records, and ABENDs when inserting the logical record 699. SB37)

Partitioned Data Set

With attributes:

  • Record format: FB
  • LRECL: 80
  • BLKSZ: 27,920
  • Primary space: 1 track
  • Secondary space: 0
  • Directory blocks: 1

Directory Blocks Space

My expectations:

  • 1 dirBlock = 256 bytes
  • Min. dirEntry = 8+3+1=12
  • Max. entries = 21
    • 256 / 12 = 21.333

I am able to get 20 members with the following card decks (please, find attached):

  • fill-pds-dblk-rc0.jcl (Creates a PDS with 20 members, 1 logical record each. RC=0)
  • fill-pds-dblk-sb14.jcl (Creates a PDS with 20 members, and ABENDs when creating the 21st member. SB14)

Why 20 and not 21? What am I missing?

Member Space

My expectations:

  • Space taken by directory blocks: 4 records
    • 256 bytes / 80 bytes/record = 3.2 records
  • Seq. DS max. logical records = 698
  • PDS max. logical records = 694
    • 698 records/track - 4 records = 694 records

I am able to create one member with max. 667 records with the following card decks (please, find attached):

  • fill-pds-1member-rc0.jcl (Creates a PDS with 1 member with 667 records. RC=0)
  • fill-pds-1member-sb37.jcl (Creates a PDS but ABENDs adding the member with 668 records. SB37)

Why 31 records less? What am I missing?

I am only able to create 14 members with 460 records total. 13 members with 34 records and 1 member with 18 records (please, find attached):

  • fill-pds-20members-rc0.jcl (Creates a PDS with 14 members. RC=0)
  • fill-pds-20members-sb37.jcl (Creates a PDS with 13 members, but ABENDs adding the 14th member with 19 records. SB37)

Why 238 records less? What am I missing?

Kind Regards