Friday, March 15, 2024

How to transfer a set of text files to a PDS as individual members in the IBM PCOM session

To transfer a set of text files to a PDS as individual members, we need to create a batch file. Let us transfer two text files to PDS USERID.DDF.TOOL. So, put the below two lines in a file and save the batch file with “srl” extension. 

C:\Downloads\ASMEXIT.JCL text~'USERID.DDF.TOOL(ASMEXIT)'
C:\Downloads\BUCKETS.JCL text~'USERID.DDF.TOOL(BUCKETS)'
 
In the Mainframe IBM PCOM session, Select option “6  Command Enter TSO or Workstation commands” form ISPF main menu. From the IBM PCOM Menu, click on “Action” and then click on “Send File to Host”. You will get the below screen. In the below screen, click on “Options” and then you will get “File Transfer Settings” window.
 

 
In the “File Transfer Settings” window, click on “MVS/TSO” tab and select “text” under “Transfer type” drop down box.  Then make sure “ascii” and “crlf” options are ticked in the “File options” and then select “Default” under “Record Format” drop down box.



Now go back to the “Send File to Host” window, click on “Open List” button and select the “srl” batch file that we already created and then click on “Send” button. This will transfer text files one by one to PDS as members.
 
 
 

Tuesday, March 5, 2024

Generating a report of dynamically called COBOL programs

IBM Enterprise COBOL V6R4 allows you to produce a report of all subroutines called by dynamic call. Use ddname IGZPROUT at the run step of your JCL to generate a report of all dynamically called programs that are compiled with Enterprise COBOL 5 or later.

The report details include the Program Name, Compiler Version, and Time and Date of compilation of the programs. Only programs that are compiled with COBOL 5 or later will be listed. Details of cancelled programs are printed at the end.

Note: If a program is cancelled multiple times, then the report prints it only once.

Recommended attributes for the IGZPROUT ddname are as follows:
DSORG = PS   RECFM = FB   78 = LRECL = 80

Here are the examples of setting the IGZPROUT ddname:
//IGZPROUT DD SYSOUT=*

or
//IGZPROUT DD DSN=dynamic.call.report.dsname,DISP=SHR

or
//IGZPROUT DD DSN=dynamic.call.report.dsname,
// UNIT=SYSDA,SPACE=(TRK,(5,10),RLSE),
// DCB=(DSORG=PS,LRECL=80,RECFM=FB,BLKSIZE=0),
// DISP=(NEW,CATLG,DELETE)

You can get an output report as follows:

*********************** DYNAMICALLY CALLED PROGRAM REPORT ********************
************************* FOR COBOL 5 AND LATER RELEASES *********************

NAME       COMPILER VER.       DATE/TIME COMPILED
-----------------------------------------------------------------------------
PROG1      V06 R02 M00         2021/01/01 15:30:02
PROG2      V06 R02 M00         2021/01/01 15:30:12

The following programs are marked as cancelled at termination:
PROG3      V06 R03 M00         2022/02/13 17:36:29
*************************** END OF PROGRAM REPORT ****************************

Note: For dynamic calls, the program-name in the PROGRAM-ID paragraph or ENTRY statement must be identical to the corresponding program object name or program object alias of the program object that contains the program. If the PROGRAM-ID paragraph or the ENTRY statement is not identical to the corresponding program object (PDSE member) name or program object alias of the program object that contains the program, then the report will list the program-name in the PROGRAM-ID paragraph or the ENTRY statement, as opposed to listing the program object (PDSE member) name or the program object alias name.

A Very good youtube from "Dinosaur Parkour" about this feature can be found in the below link.



Wednesday, February 28, 2024

Exclusive control over datasets in JCL

When any step of a job requests exclusive control of a data set, with an exception of when the job is allowed to downgrade ENQs via the DSENQSHR specification, the system converts all requests for shared control of that data set within that job (DISP=SHR) to requests for exclusive control. One of two methods can be used to request exclusive control:

  • DISP=NEW, DISP=MOD, or DISP=OLD on a JCL request.
  • DISP=NEW, DISP=MOD, or DISP=OLD on a dynamic allocation request,

including dynamic allocation requests that result from the use of certain utility control statements. For example, utility control statements that delete/scratch a data set will result in exclusive use of that data set.

If a dynamic allocation requests exclusive control of a data set then all subsequent DISP=SHR JCL references to that data set within that job will be upgraded to exclusive control. The job will retain exclusive control of that data set until the end of the last step of that job which references that data set in its JCL. For example:

//STEP1 EXEC PGM=anypgm1
//DD1 DD DSN=A.B.C,DISP=SHR
//STEP2 EXEC PGM=IDCAMS
 DELETE A.B.C
 DEFINE A.B.C
//STEP3 EXEC PGM=anypgm3
//DD3 DD DSN=A.B.C,DISP=SHR
//STEP4 EXEC PGM=anypgm4

Before the start of STEP1, the job will request shared control of data set A.B.C. In STEP2, the DELETE/DEFINE of data set A.B.C will cause the shared control from STEP1 to be upgraded to exclusive control. In STEP3, control of data set A.B.C will remain exclusive, since it is not possible to downgrade an ENQ from EXCL to SHR in the case that a dynamic allocation upgrades the ENQ. At the end of STEP3, control of data set A.B.C will be released. The ENQ on data set A.B.C will therefore not be held at all during STEP4. If, however, the job also contained a STEP5 which requested use of data set A.B.C, then exclusive control of that data set would continue to be held by the job all the way through both STEP4 and STEP5.

DISP and ENQ: Before starting the first step of a job, the initiator requests control of all of the data sets in that job by issuing an ENQ for each of them, using the value specified for DISP to determine the kind of ENQ issued. The initiator issues the ENQ for each data set at the highest level required for that data set by any step of the job. For example, if all steps of the job request shared control of a specific data set (DISP=SHR) then the ENQ for that data set is requested as SHR. If, on the other hand, any step of the job requests exclusive control of a specific data set (DISP=NEW, DISP=MOD, or DISP=OLD), then the ENQ for that data set is requested EXCL.

If the job is allowed to downgrade ENQs, then ENQs will be downgraded from exclusive control to shared control at the last step for which the data set is referenced EXCL. The downgrade will not occur if the ENQ has been upgraded by a dynamic allocation request in the current or a previous step. If the job is not allowed to downgrade ENQs, then ENQs cannot be downgraded from EXCL to SHR. If one step needs the ENQ EXCL and a following step only needs it SHR, the ENQ is still held as EXCL.

In both cases, the ENQ is held until the end of the last step which references that data set, at which point the ENQ is released entirely.

DISP and ENQ for generation data sets: The way the initator issues an ENQ to control generation data sets can be different than with other data sets. The initiator only issues the ENQ for the GDG base name for a generation data set that is referenced by either:

  • Their relative GDG names (for example, DSN=TEST.GDG.DATASET(0)).
  • As GDG ALLs (for example, DSN=TEST.GDG.DATASET)

For example, the initiator issues the ENQ for the GDG base name, TEST.GDG.DATASET for the generation data sets shown in the previous list. Generation data sets referenced by either their relative GDG names or as GDG ALLs are processed this way because the initiator does not know which specific absolute generation names will be required. This is because the conversion from relative generation name to absolute generation name is done during the allocation for the step referencing the data set. The ENQ for the specific, absolute, generation (G0000V00) data set name or names is issued at the start of the step requesting the relative GDG or GDG ALL.

Note that the initiator does not issue an ENQ for the GDG base name for a generation data set that is referenced by its absolute GDG name. Instead it issues an ENQ for that specific G0000V00 data set name.


Monday, January 8, 2024

Difference between EXIT PROGRAM, GOBACK, STOP RUN in COBOL

Let us assume we have a Batch JOB step which executes MAIN-PGM. 
Let us assume job step has below call chain. 

MAIN-PGM --> SUB-PGM1 --> SUB-PGM2 --> SUB-PGM3

That is MAIN-PGM calls SUB-PGM1
SUB-PGM1 program inturn calls SUB-PGM2
SUB-PGM2 program inturn calls SUB-PGM3

A run unit is a running set of one or more programs that communicate with each other by COBOL static or dynamic CALL statements. So, the above entire flow is called "run unit"

EXIT PROGRAM or GOBACK in sub programs(called programs) returns the control to the calling program.

For example, if we code EXIT PROGRAM or GOBACK in SUB-PGM3, then control returns to the point in the SUB-PGM2 immediately following the CALL statement that invoked SUB-PGM3

GOBACK in main program MAIN-PGM passes the control to the operating system program that invoked it.

EXIT PROGRAM in main program does NOT do anything, control goes to the next statement that immediately follows EXIT PROGRAM.
So, EXIT PROGRAM works only in sub programs (called programs).

If we code STOP RUN in SUB-PGM3 (or any other program in the calling chain), it will directly pass the control to the operating system program that invoked main program MAIN-PGM. That is STOP RUN ends the execution of entire "run unit".

Friday, January 5, 2024

Initialize FILLER data item

INITIALIZE statement wont initialize FILLER data items. If you want to initialize FILLER items as well, then include "WITH FILLER" in the INITIALIZE statement.

If you include "ALL VALUE" clause in the INITIALIZE statement, then it will initialize ONLY the data items that are defined with VALUE clause to the value specified in the VALUE clause.

Below is the sample code to explain the usage of FILLER and VALUE clauses in the INITIALIZE statement.

WORKING-STORAGE SECTION.
01 WS-X.
   05 WS-A    PIC X(16).
   05 WS-A1   PIC X(16) VALUE '1234567890A.CDEF'.
   05 WS-B    PIC X(5).
   05 WS-C    PIC 9(5).
   05 FILLER  PIC 9(5).
PROCEDURE DIVISION.
   MOVE ALL '*'    TO WS-X
   DISPLAY WS-X
   INITIALIZE WS-X WITH FILLER
   DISPLAY WS-X
   MOVE ALL '*'    TO WS-X
   INITIALIZE WS-X ALL VALUE
   DISPLAY WS-X
   STOP RUN.

Output of the above program

***********************************************    
                                     0000000000    
****************1234567890A.CDEF***************    

Wednesday, December 27, 2023

Changing the order of GDG concatenation

GDGORDER keyword specifies the order in which the individual generation data sets (GDSs) will be concatenated.

 

The values of Parameter are USECATLG, LIFO and FIFO.

 

USECATLG - The GDS concatenation is ordered as specified in the GDG data set catalog entry. When the GDGORDER keyword is not specified, the concatenation order from the catalog definition of the GDG data set is used. However, the default setting in the catalog entry for a GDG base data set definition is LIFO, to match the setting for releases prior to z/OS V2.1.

 

LIFO - The GDS concatenation is ordered with the newest GDS defined first and the oldest GDS last.

 

FIFO - The GDS concatenation is ordered with the oldest GDS defined first and the newest GDS last.

 

Let us explore this with an example. Suppose USERID.GDG has three generations as shown below.

 

 BROWSE    USERID.GDG.G0001V00                      Line 0000000000 Col 001 080

 Command ===>                                                  Scroll ===> CSR 

********************************* Top of Data **********************************

GDG1                                                                          

******************************** Bottom of Data ********************************

 

 BROWSE    USERID.GDG.G0002V00                      Line 0000000000 Col 001 080

 Command ===>                                                  Scroll ===> CSR 

********************************* Top of Data **********************************

GDG2                                                                          

******************************** Bottom of Data ********************************

 

 BROWSE    USERID.GDG.G0003V00                      Line 0000000000 Col 001 080

 Command ===>                                                  Scroll ===> CSR 

********************************* Top of Data **********************************

GDG3                                                                          

******************************** Bottom of Data ********************************

 

 

Case 1: When the GDGORDER keyword is not specified

 

The below step copies all the generations of GDG to SORTOUT.

 

//STEP1    EXEC PGM=SORT                             

//SORTIN   DD DISP=SHR,DSN=USERID.GDG                 

//SORTOUT  DD SYSOUT=*                               

//SYSOUT   DD SYSOUT=*                                 

//SYSIN    DD *                                         

 OPTION COPY                                         

//*                

 

Below is the output of the above step. The effect is LIFO

 

 BROWSE - SORTOUT           STEP1    - Page  1      Line  1        Cols 1-80   

 COMMAND ===>                                                SCROLL ===> CURSOR

******************************** Top of Data ***********************************

GDG3                                                                           

GDG2                                                                           

GDG1                                                                           

 ******************************* Bottom of Data ********************************

            

Case 2: When GDGORDER=FIFO

 

The below step copies all the generations of GDG to SORTOUT.

            

//STEP2    EXEC PGM=SORT                             

//SORTIN   DD DISP=SHR,DSN=USERID.GDG,GDGORDER=FIFO   

//SORTOUT  DD SYSOUT=*                               

//SYSOUT   DD SYSOUT=*                                 

//SYSIN    DD *                                         

 OPTION COPY                                         

//*                                                  

 

Below is the output of the above step.

 

 BROWSE - SORTOUT           STEP2    - Page  1      Line  1        Cols 1-80   

 COMMAND ===>                                                SCROLL ===> CURSOR

******************************** Top of Data ***********************************

GDG1                                                                           

GDG2                                                                           

GDG3                                                                           

 ******************************* Bottom of Data ********************************                                        

Wednesday, November 1, 2023

Complete Video tutorials for a Mainframe Developer

A typical mainframe Developer needs expertise in TSO/ISPF, JCL, VSAM, COBOL, DB2, CICS, Debugger such as Xpeditor, IBM debugger, REXX, MQ, SCM tools such as Endevor and Changeman,   Job schedulers such Control-M, OPC, ESP

Below are videos from various youtube channels which will help anyone to become Mainframe developer.

Mainframe Basics

What is a Mainframe

https://www.youtube.com/watch?v=ZEaFjkaIfWE&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=1&pp=iAQB

Mainframe A server OS perspective

https://www.youtube.com/watch?v=SIMKOgAjaL0&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=2&pp=iAQB

Mainfame Usage Scenarios

https://www.youtube.com/watch?v=caT0fJ31D4E&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=4&pp=iAQB

Mainframe virtualization

https://www.youtube.com/watch?v=zXE2kjxyWqo&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=5&pp=iAQB

Mainframe virtualization with zVM

https://www.youtube.com/watch?v=a_yQtpzI5ho&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=6&pp=iAQB

Clustering and Parallel sysplex

https://www.youtube.com/watch?v=0CooCQ73PDY&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=7&pp=iAQB

Mainframe CPU architecture

https://www.youtube.com/watch?v=zXSQpFcG05c&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=8&pp=iAQB

Mainframe I/O subsystem

https://www.youtube.com/watch?v=n7uGtOkEb8U&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=9&pp=iAQB

Mainframe Z Hardware part 1

https://www.youtube.com/watch?v=Rj7Sg-JyA-s&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=10&pp=iAQB

Mainframe Z Hardware part 2

https://www.youtube.com/watch?v=wqxLz6Xi8uw

Introduction to Z/OS part 1

https://www.youtube.com/watch?v=HISM5intBoU&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=19&pp=iAQB

Introduction to Z/OS part 2

https://www.youtube.com/watch?v=VZ4NnswOPzc

Z/OS components

https://www.youtube.com/watch?v=H0YJRi96iiE&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=20&pp=iAQB

Z/OS datasets

https://www.youtube.com/watch?v=wWqZzNjtHKc&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=21&pp=iAQB

Job Management and JES

https://www.youtube.com/watch?v=M48zi3TdH0A&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=22&pp=iAQB

JES Job Entry Subsystem

https://www.youtube.com/watch?v=2PGyIiUNokM

DataManagment

https://www.youtube.com/watch?v=eLF2fL-mz_E&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=23&pp=iAQB

TN3270

https://www.youtube.com/watch?v=fFVL0uCjpuI

TSO part 1

https://www.youtube.com/watch?v=0hS_Kia6DRg&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=24&pp=iAQB

TSO part 2

https://www.youtube.com/watch?v=6_UhnP26dhQ

TSO demo

https://www.youtube.com/watch?v=4SD6MVXDQZA&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=25&pp=iAQB

ISPF part 1

https://www.youtube.com/watch?v=pcpc53zy1Rc&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=26&pp=iAQB

ISPF part 2

https://www.youtube.com/watch?v=h-z_TeUs6ow

ISPF demo

https://www.youtube.com/watch?v=IWVD2yM3tsY&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=27&pp=iAQB

ISPF Editor

https://www.youtube.com/watch?v=DQzWgmNww2c

SDSF

https://www.youtube.com/watch?v=LRcq0O5SGhY

Dataset names and types

https://www.youtube.com/watch?v=7RY9EiJwm4E

Sequential Datasets

https://www.youtube.com/watch?v=wKhqo8iwCKc

Partitioned Datasets

https://www.youtube.com/watch?v=3p0IL3DcAug

Disk Storage, Volume Labels, VTOC, Extents

https://www.youtube.com/watch?v=bmpuh8fvE7M

VSAM Virtual Storage Access Method

https://www.youtube.com/watch?v=9McZNgGy62E

Unix System Services

https://www.youtube.com/watch?v=_lKo72JdQ4E

System Catalog

https://www.youtube.com/watch?v=mq79KGpCjW0

JCL Job Control Language

https://www.youtube.com/watch?v=fMQNRrNx4DM

Virtual Storage and Address Spaces

https://www.youtube.com/watch?v=_0u6_UHa0rI

Key Controlled Protection for Address Spaces

https://www.youtube.com/watch?v=_XuBW6tWZso

System and User Address Space Management

https://www.youtube.com/watch?v=PDUVPtGosXM

Components, Messages, and System Log

https://www.youtube.com/watch?v=T7jr80t412c

Security, RACF

https://www.youtube.com/watch?v=XT_x-pPPJgg

Mainframe security

https://www.youtube.com/watch?v=8dBIgYTDSQs&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=49&pp=iAQB

Z/OS security

https://www.youtube.com/watch?v=eI3ZmPNYX0E&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=51&pp=iAQB

RACF demo

https://www.youtube.com/watch?v=MTDwpbNCABQ&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=52&pp=iAQB

Communications Server

https://www.youtube.com/watch?v=XTBwQjTWUYM

zOS Operator Commands

https://www.youtube.com/watch?v=0V7UpsVOT9E

zOS Initial Load Program Process

https://www.youtube.com/watch?v=FUmHD_ZbamU

Databases, IMS and Db2 Part 1

https://www.youtube.com/watch?v=YHCM7OnZwDg&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=30&pp=iAQB

Databases, IMS and Db2 Part 2

https://www.youtube.com/watch?v=kEZiLDtAUVo&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=31&pp=iAQB

Introduction to COBOL

https://www.youtube.com/watch?v=8qTswQReYH8&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=32&pp=iAQB

Data models in Mainframe

https://www.youtube.com/watch?v=P8_PGQ1fAFo&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=35&pp=iAQB

Hierarchical model and IMS

https://www.youtube.com/watch?v=1-X2hQZHaq0&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=36&pp=iAQB

Relational Data model

https://www.youtube.com/watch?v=xn1Pc3v7e2I&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=37&pp=iAQB

Introduction to DB2

https://www.youtube.com/watch?v=99NwdyNtbVk&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=38&pp=iAQB

Db2 SPUFI

https://www.youtube.com/watch?v=itAk-MYw5e8&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=39&pp=iAQB

Transaction processing - part 1

https://www.youtube.com/watch?v=J_NAjEDpILA&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=40&pp=iAQB

Transaction processing - part 2

https://www.youtube.com/watch?v=wZCvvnvUzEc&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=41&pp=iAQB

Introduction to CICS

https://www.youtube.com/watch?v=DXRuOpvOUW0&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=43&pp=iAQB

Message queuing

https://www.youtube.com/watch?v=vMMJRkmxKK0&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=47&pp=iAQB

IBM MQ

https://www.youtube.com/watch?v=NSjQRd38nQY&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=48&pp=iAQB

Storage Management

https://www.youtube.com/watch?v=b7YsFbo7r4k&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=53&pp=iAQB

Hierarchical storage manager

https://www.youtube.com/watch?v=rYJr5VdIXPc&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=54&pp=iAQB

SMS and ACS

https://www.youtube.com/watch?v=KRatNLzv0Ys&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=55&pp=iAQB

ISMF demo

https://www.youtube.com/watch?v=As3RNIDgTfI&list=PLoOmvuyo5UAe7Sa7YptNmGuDlMiKXJIlB&index=56&pp=iAQB

Mainframe basics

https://www.youtube.com/watch?v=qjsahHeuf10&list=PLPtOfwBr96-VxhI43WtV-Lac7-O62lN6V

Mainframe basics

https://www.youtube.com/watch?v=0N2mkcDWNs0&list=PLPtOfwBr96-VvmjZl-Huz_2oZCwALXljD

EBDICC character set

https://www.youtube.com/watch?v=CmodM6hl650&list=PLQ8K2gs34D-kdrdPB7orrspdGhqHDG31V&index=1

 

TSO/ISPF

 TSO/ISPF basics

https://www.youtube.com/watch?v=0N2mkcDWNs0&list=PLPtOfwBr96-VvmjZl-Huz_2oZCwALXljD

Mainframe - TSO/ISPF Basics & ADV

https://www.youtube.com/playlist?list=PLLcYGaQ7eeuTbGPLiApXSwmOhDofjaPni

TSO ISPF videos

https://www.youtube.com/playlist?list=PLQ8K2gs34D-mAZKGmnf18HU5HUhVqJMSv

 

JCL

 

JCL tutorial from KUMAR IT channel

https://www.youtube.com/playlist?list=PLLcYGaQ7eeuTQGWRJ_B04qPowNWuHHfaz

JCL tutorial from Tutorial point

https://www.youtube.com/playlist?list=PLWPirh4EWFpE7g8BsOIkPy78wxKgvnFq0

JCL Tutorials - Topictrick Channel

https://www.youtube.com/watch?v=QJPyelZSyD0

JCL Tutorials

https://www.youtube.com/watch?v=XOvrxt9sg9I&list=PLPtOfwBr96-VeXlG5OrjK33u3gu21D2Ls&index=1

JCL SORTs

https://www.youtube.com/playlist?list=PLQ8K2gs34D-kQda1bOqFtMtqmih32GZxI

 

VSAM

VSAM basics from Tutorial point

https://www.youtube.com/playlist?list=PLWPirh4EWFpFqphoRl18CTOn3tNDVFrjd

VSAM tutorials from Youtube - KumarITChannel

https://www.youtube.com/playlist?list=PLLcYGaQ7eeuQr-AlEgf4GG-FzS3eimdlm

VSAM basics

https://www.youtube.com/watch?v=UhHpRZfDJgQ&list=PLPtOfwBr96-Vl35uVNfz-lgWzCyhSr7CE&index=1

 

COBOL

Mainframe COBOL - Kumar IT channel

https://www.youtube.com/playlist?list=PLLcYGaQ7eeuQ84KfRFJF-Oh34g8CzuMzz

COBOL training from Tutorial point

https://www.youtube.com/watch?v=uZUkSV__SdY&list=PLWPirh4EWFpEwRypgRSofF7Ui91yeCeMi

COBOL Programming Tutorial: From Basics to Advanced

https://www.youtube.com/watch?v=DTlQENQ5jlk&list=PLfg9ycqfY2SX19hFRfuALDcpe6OdNVobX&index=2

 

 DB2

Mainframe DB2 tutorials - From Kumar IT channel

https://www.youtube.com/playlist?list=PLLcYGaQ7eeuQNnKKTrz5s-bgMqEny83Oe

COBOL DB2 programming

https://www.youtube.com/playlist?list=PLQ8K2gs34D-n5wxM76muLpPirh6CwQO3v

Mainframe DB2 refresher

https://www.youtube.com/playlist?list=PLLcYGaQ7eeuTzXta9jpO6kbo7HlPXutiv


CICS

Mainframe CICS tutorial - From Kumar IT channel

https://www.youtube.com/playlist?list=PLLcYGaQ7eeuRzZzMLfUdH0-X0dR-bafpC

 

REXX

REXX programming

https://www.youtube.com/playlist?list=PLBPY9SrB2aUYgXJihh-PvvBmqztX1nGGc

REXX programming

https://www.youtube.com/playlist?list=PLLcYGaQ7eeuR_e4lTL80vRhvq8qkvoTxz

REXX FILE HANDLING

https://www.youtube.com/watch?v=LlXKEB6bY3E

 

 Xpeditor

Debugger in Mainframe

https://www.youtube.com/watch?v=nnp64AVki34

Xpeditor session 1

https://www.youtube.com/watch?v=DGW-C85sTZU

Xpeditor session 2

https://www.youtube.com/watch?v=DGW-C85sTZU

 

 MQ

MQ basics

https://www.youtube.com/watch?v=XpcJBgzbWq4

 

 Endevor/Changman

Mainframe Endevor tool ( source code management and release management tool) Session 1

https://www.youtube.com/watch?v=kdo2y2K-bZE&list=PLPtOfwBr96-Xxgb9CEphG984rXAHdGmZL&index=2

Endevor Session 2

https://www.youtube.com/watch?v=CJJhb6LI11I&list=PLPtOfwBr96-Xxgb9CEphG984rXAHdGmZL&index=4

Changeman tool - part 1

https://www.youtube.com/watch?v=njvOtvOSFP0&list=PLPtOfwBr96-Xxgb9CEphG984rXAHdGmZL&index=6

Changeman tool - part 2

https://www.youtube.com/watch?v=bSKbVEkabSI

Changeman tool - part 3

https://www.youtube.com/watch?v=Ghw6I0ZHpvU

Changeman tool - part 4

https://www.youtube.com/watch?v=XmjYeKlHITA

Changeman tool - part 5

https://www.youtube.com/watch?v=yy4Go6JFgnc

 

 Job Schedulers

Mainframe CONTROL-M

https://www.youtube.com/watch?v=NLzOtT9o2JM&list=PLPtOfwBr96-Xxgb9CEphG984rXAHdGmZL&index=3

Mainframe OPC Scheduler tool

https://www.youtube.com/watch?v=COvPeeLYwY0&list=PLPtOfwBr96-Xxgb9CEphG984rXAHdGmZL&index=2

CA7 Overview

https://www.youtube.com/watch?v=QkJNQw7iVMA&list=PLLcYGaQ7eeuTSAyZh9b-1x93livf9XQhK&index=16