├── Jenkins zOS DevOps plugin installable hpi └── zos-devops.hpi ├── LICENSE ├── README.md ├── img1.png ├── zOS Subsystem Operating ├── CICS │ ├── CICS commands.md │ └── JCL │ │ ├── Enable TDQ.md │ │ ├── Enable file.md │ │ ├── Open extrapartition TDQ.md │ │ ├── Open file.md │ │ ├── README.md │ │ ├── Set CICS Program enabled.md │ │ ├── Set CICS Transaction enabled.md │ │ └── Start CICS Address space.md ├── DB2 │ ├── DB2 commands.md │ ├── DB2 operating scenarios.md │ └── JCL │ │ ├── How to alter DB2 tablespace with DROP PENDING CHANGES.md │ │ ├── How to make a full DB2 tablespace image copy.md │ │ ├── How to reorganize DB2 tablespace with SCOPE PENDING.md │ │ ├── How to reorganize DB2 tablespace.md │ │ ├── How to repair DB2 tablespace from CHECK PENDING status.md │ │ ├── How to repair DB2 tablespace from COPY status.md │ │ ├── How to repair DB2 tablespace from RECP status.md │ │ ├── How to start DB2 address space.md │ │ ├── How to start DB2 database with RW access.md │ │ ├── How to start DB2 stored procedure.md │ │ ├── How to start DB2 tablespace with RW access.md │ │ └── How to terminate DB2 Utility.md ├── IMS │ ├── IMS commands.md │ └── JCL │ │ ├── README.md │ │ ├── Start IMS Address space.md │ │ ├── Start IMS MPR Region.md │ │ ├── Start IMS Program.md │ │ ├── Unlock IMS Database.md │ │ ├── Unlock IMS Program.md │ │ ├── Unlock IMS Transaction.md │ │ └── Unlock and Start IMS Transaction.md ├── MQ │ ├── JCL │ │ ├── How to copy and empty MQ queue.md │ │ ├── How to empty MQ queue.md │ │ ├── How to start MQ address space.md │ │ └── How to start MQ channel.md │ └── MQ commands.md ├── README.md ├── TSO commands.md └── USS commands.md └── zOS System operating ├── Batch jobs (JCLs) ├── How to automate checking for normal completion of a job.md ├── How to compress a Partitioned Data Set.md ├── How to convert a Partitioned Data Set to Partitioned Data Set Extended and vice versa.md ├── How to copy a Data Set or a Data Set member │ ├── Copy a PDS member to new Sequential Data Set and vice versa.md │ ├── Copy a Partitioned Data Set PDS.md │ ├── Copy selected members from partitioned data set PDS.md │ ├── Join multiple Sequential Data Sets into one.md │ └── Join several PDSs into one PDS.md ├── How to copy first n records of Sequential Data Set or PDS member.md ├── How to create a Data Set or a Data Set member │ ├── Create a Partitioned Data Set.md │ ├── Create a Physical Sequential Large (PS-L) Data Set.md │ ├── Create a Sequential Data Set in batch.md │ ├── Create a VSAM Data set.md │ ├── Create a new member in a Data Set.md │ └── Create an Extented Partitioned Data Set.md ├── How to delete a Data Set or a Data Set member.md ├── How to fill VSAM with records.md ├── How to rename a Data Set in batch.md ├── How to split a Sequential Data Set or PDS member.md ├── How to work with a Catalog.md ├── JCL job template for evenly dividing the dataset into parts │ ├── JCL job template for split a dataset by an equal number of records │ └── README.md ├── Replacing archaic JCL constructs.md └── Sample solution for transferring datasets using XMIT and ADRDSSU │ ├── README.md │ ├── USER01.SAMPLE.EXEC │ └── CHECKRC.rexx │ └── USER01.SAMPLE.JCL │ ├── RECVLIBS.jcl │ └── SENDLIBS.jcl ├── HSM ├── HSM dataset level commands.md ├── HSM system commands.md └── Restore datasets anywhere where HSM is working.md ├── IPL and maintenance.md ├── ISPF personalization tips.md ├── ISPF ├── ISPF commands.md ├── ISPF work scenarios.md └── img │ ├── retp-panel.png │ └── whois.png ├── JCL jobs.md ├── JES commands.md ├── Mainframe automation solutions and best practices ├── Azure DevOps with MF │ ├── Our experience of integrating Azure DevOps with the mainframe.md │ └── images │ │ ├── Linux_agent.png │ │ ├── MS_Azure_Logo.png │ │ └── Pipeline_examples.png ├── Jenkins MF pipeline code example │ ├── README.md │ └── mf_pipeline_example.groovy ├── Jenkins plug-in solution for running JCL jobs on mainframes │ ├── README.md │ ├── img │ │ ├── 1.png │ │ └── 2.png │ └── zos-connector.hpi ├── Jira │ ├── Shell script to add a comment to a Jira issue │ │ ├── README.md │ │ └── addCommentToJira.sh │ ├── Shell script to add a file to the attachment area of a Jira issue │ │ ├── README.md │ │ └── attachFileToJira.sh │ ├── Shell script to attach PTF docs to a Jira issue │ │ ├── README.md │ │ └── attachPTFdocs.sh │ ├── Shell script to change a Jira ticket status │ │ ├── README.md │ │ └── changeJiraTicketStatus.sh │ └── Shell script to track Jira ticket status │ │ ├── README.md │ │ └── script.sh ├── Mainframe DevOps tutorial.md ├── Mainframe integration with Jenkins using USS agent │ ├── README.md │ └── images │ │ ├── Fully automatic process.png │ │ ├── Semi-automatic_process.png │ │ └── jenkins_logo.png ├── Mainframe troubleshooting platform - APPULSE │ ├── README.md │ └── img │ │ ├── appulse-home-page.png │ │ ├── appulse-template.png │ │ └── logo.png ├── README.md ├── SCLM to Git for zOS migration (COMING SOON, STAY TUNED) │ ├── Installing and configuring ANTz.md │ └── README.md ├── SonarQube │ ├── README.md │ └── img │ │ ├── img1.png │ │ └── img2.png └── Zigi │ ├── README.md │ └── img │ ├── zigi-add-to-index.png │ ├── zigi-clone.png │ ├── zigi-commit1.png │ ├── zigi-commit2.png │ ├── zigi-commit3.png │ ├── zigi-exec1.png │ ├── zigi-exec2.png │ ├── zigi-local.png │ ├── zigi-push1.png │ └── zigi-remote.png ├── Omegamon for Db2.md ├── Omegamon for Storage ├── How to create user in TEP │ ├── README.md │ └── img │ │ ├── 1-logon.png │ │ ├── 2-enterprise.png │ │ ├── 3-create-another-user.png │ │ ├── 4-specify-name.png │ │ ├── 5-specify.png │ │ └── 6-is-created.png ├── How to send email using jcl and TEP │ ├── README.md │ └── img │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ └── 4.png └── Modify data sets from TEP │ ├── README.md │ └── img │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ └── 7.png ├── RACF ├── RACF commands.md └── RACF scenarios.md ├── README.md ├── REXX Scripts ├── README.md ├── REXX script for changing parameters values in config file │ ├── CHNGPARM │ └── README.md └── REXX script for replacing substring in some members of dataset │ ├── MASSREPL │ └── README.md ├── SDSF commands.md ├── SMPe ├── Automated build PTF via JCL + REXX template │ ├── PTFBLD (IN PROGRESS) │ └── USER01.SAMPLE.REXX │ │ └── PTFGEN (IN PROGRESS) ├── How to check if the APAR was installed │ ├── README.md │ └── img │ │ ├── result.png │ │ ├── smpe-query.png │ │ └── specify-apar-name.png ├── JCL job for creating SMPe zones environment and user datasets │ ├── README.md │ └── SMPEALL ├── JCL job for customizing SMPe distribution zone environment │ ├── CUSTDST │ └── README.md ├── JCL job for customizing SMPe global zone environment │ ├── CUSTGLB │ └── README.md ├── JCL job for customizing SMPe target zone environment │ ├── CUSTTGT │ └── README.md ├── JCL job for installing PTF in the SMPe distribution libraries │ ├── ACCPTPTF │ └── README.md ├── JCL job for installing PTF in the SMPe target libraries │ ├── APPLYPTF │ └── README.md ├── JCL job for loading PTF information into global zone and SMPe datasets │ ├── README.md │ └── RECVPTF ├── JCL job for rejecting PTF to clean up the global zone │ ├── README.md │ └── REJCTPTF ├── JCL job for restoring PTF to clean up the target zone │ ├── README.md │ └── RESTRPTF ├── README.md └── What should you do if RECEIVE ends with RC=12 │ ├── README.md │ └── img │ ├── copy-members.png │ ├── copy-to-your-new-smppts.png │ ├── create-new.png │ ├── csi-ds.png │ ├── find-old-smppts-lib.png │ ├── primary-menu.png │ ├── rename-libs.png │ ├── select-all.png │ ├── smppts-ds-info.png │ ├── smppts-lib-name.png │ ├── specify-ds-parms.png │ └── specify-smppts-name.png ├── System operating scenarios ├── How do I automate the submission of a job at regular intervals.md ├── How do I dynamically authorize a library (APF).md ├── How to compare two data sets interactively │ ├── README.MD │ └── images │ │ ├── compare-command.png │ │ ├── compare-member1.png │ │ ├── compare-member2.png │ │ └── compare-result.png ├── How to convert hexadecimal date to a readable date on zOS.md ├── How to copy RTE to other LPAR │ ├── DNSVFTP │ ├── README.md │ └── RESTOR ├── How to do some changes in each member of PDS │ ├── README.md │ └── img │ │ ├── changes.png │ │ ├── members-to-change.png │ │ ├── pds-to-change.png │ │ ├── result.png │ │ ├── save-changes.png │ │ ├── saved.png │ │ └── string-to-change.png ├── How to find out which data sets have used the most amount of space │ ├── README.MD │ └── images │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ ├── 4.jpg │ │ ├── image_ISPF1.jpg │ │ └── image_ISPF2.jpg ├── How to include library to current LOGON session.md ├── How to make IBM Java work for TEP file _tep.jnlp_.md ├── How to pack or unpack a dataset with TERSE.md ├── How to transfer file from Windows to zOS with command line ftp.md ├── How to use 3270 emulators with larger screensize │ ├── README.MD │ └── images │ │ ├── ispf-settings.png │ │ └── result.png ├── Migrate one or more data sets to migration volumes.md └── README.md ├── XMIT ├── How to fix non working XMIT (enable NJE connection between two systems).md └── XMIT commands.md ├── images ├── Contributing.png ├── GRMD_main_logo.jpg ├── Logo.jpg ├── blue-zone-cursor.png ├── commit.png ├── contibute2.jpg ├── create-new-file.png ├── create-pull-req.png ├── cursor-pointer.png ├── download-repo.png ├── file-name.png ├── fork.png ├── jira_ticket_statuses.png ├── logo-jenkins.jpg ├── mfarticleimages │ ├── Pipeline stages.png │ ├── Tests Results.png │ ├── Tests execution logs.png │ ├── image1.png │ ├── image10.png │ ├── image11.png │ ├── image12.png │ ├── image13.png │ ├── image14.png │ ├── image2.png │ ├── image3.png │ ├── image4.png │ ├── image5.png │ ├── image6.png │ ├── image7.png │ ├── image8.png │ └── image9.png ├── new-pull-req.png ├── pull-reqs.png ├── sdsf-command-extension.png ├── swap-bar.png └── swap-list.png ├── zOS DevOps Scripts ├── README.md ├── Shell script for datasets transfering from UNIX to the mainframe via ftp │ ├── README.md │ ├── dsList │ └── sendLIBS.sh ├── Shell script for running JCL jobs on the mainframe via ftp │ ├── README.md │ └── runZosJcl.sh └── Shell script for transferring changed sources in git to the mainframe via ftp │ ├── README.md │ ├── sendChangedSrc.sh │ └── vardefs └── zOS network commands.md /Jenkins zOS DevOps plugin installable hpi/zos-devops.hpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/Jenkins zOS DevOps plugin installable hpi/zos-devops.hpi -------------------------------------------------------------------------------- /img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/img1.png -------------------------------------------------------------------------------- /zOS Subsystem Operating/CICS/CICS commands.md: -------------------------------------------------------------------------------- 1 | # This document contains day-to-day CICS subsystem commands 2 | 3 | **Through CICS console**: 4 | 5 | Specify `@{ variable }` 6 | 7 | | Description | Command | 8 | |-------------------|:-----------------| 9 | | Enable file | `CEMT SET FILE(@{CICS_FILE}) ENABLED` | 10 | | Enable TDQ | `CEMT SET TDQ(@{CICS_TDQ}) ENABLED` | 11 | | Enable transaction | `CEMT SET TRANSACTION(@{CICS_TRANSACTION}) ENABLED` | 12 | | Enable program | `CEMT SET PROGRAM(@{CICS_PROGRAM}) ENABLED` | 13 | | Open file | `CEMT SET FILE(@{CICS_FILE}) OPEN` | 14 | | Open TDQ | `CEMT SET TDQ(@{CICS_TDQ}) OPEN` | 15 | 16 | **Through JCL jobs**: 17 | 18 | Specify `@{ variable }` 19 | 20 | | Description | Link | 21 | |-------------------|:-----------------| 22 | | Start CICS Address space | [link](./JCL/Start%20CICS%20Address%20space.md) | 23 | | Enable file | [link](./JCL/Enable%20file.md) | 24 | | Enable TDQ | [link](./JCL/Enable%20TDQ.md) | 25 | | Set CICS Transaction enabled | [link](./JCL/Set%20CICS%20Transaction%20enabled.md) | 26 | | Set CICS Program enabled | [link](./JCL/Set%20CICS%20Program%20enabled.md) | 27 | | Open file | [link](./JCL/Open%20file.md) | 28 | | Open extrapartition TDQ | [link](./JCL/Open%20extrapartition%20TDQ.md) | -------------------------------------------------------------------------------- /zOS Subsystem Operating/CICS/JCL/Enable TDQ.md: -------------------------------------------------------------------------------- 1 | # How to Enable TDQ? 2 | 3 | Enable TDQ through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_CLASS} 8 | * ${CICS_CONSOLE} 9 | * ${SUBSYSTEM_NAME} 10 | * @{CICS_TDQ} 11 | 12 | ``` 13 | //${USERID}C JOB (),'SET TDQ ENABLED',REGION=2M, 14 | // MSGCLASS=H,CLASS=${JOB_CLASS} 15 | //*********************************************** 16 | //* Before run specify: 17 | //* ${USERID} 18 | //* ${JOB_CLASS} 19 | //* ${CICS_CONSOLE} 20 | //* ${SUBSYSTEM_NAME} 21 | //* @{CICS_TDQ} 22 | //*********************************************** 23 | //SDSF EXEC PGM=SDSF 24 | //ISFOUT DD SYSOUT=* 25 | //CMDOUT DD SYSOUT=* 26 | //ISFIN DD * 27 | SET CONSOLE ${CICS_CONSOLE} 28 | /F ${SUBSYSTEM_NAME},CEMT SET TDQ(@{CICS_TDQ}) ENABLED 29 | PRINT FILE CMDOUT 30 | ULOG 31 | PRINT 32 | PRINT CLOSE 33 | /* 34 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/CICS/JCL/Enable file.md: -------------------------------------------------------------------------------- 1 | # How to Enable CICS file? 2 | 3 | Enable file through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_CLASS} 8 | * ${CICS_CONSOLE} 9 | * ${SUBSYSTEM_NAME} 10 | * @{CICS_FILE} 11 | 12 | ``` 13 | //${USERID}C JOB (),'SET FILE ENABLED',REGION=2M, 14 | // MSGCLASS=H,CLASS=${JOB_CLASS} 15 | //*********************************************** 16 | //* Before run specify: 17 | //* ${USERID} 18 | //* ${JOB_CLASS} 19 | //* ${CICS_CONSOLE} 20 | //* ${SUBSYSTEM_NAME} 21 | //* @{CICS_FILE} 22 | //*********************************************** 23 | //SDSF EXEC PGM=SDSF 24 | //ISFOUT DD SYSOUT=* 25 | //CMDOUT DD SYSOUT=* 26 | //ISFIN DD * 27 | SET CONSOLE ${CICS_CONSOLE} 28 | /F ${SUBSYSTEM_NAME},CEMT SET FILE(@{CICS_FILE}) ENABLE 29 | PRINT FILE CMDOUT 30 | ULOG 31 | PRINT 32 | PRINT CLOSE 33 | /* 34 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/CICS/JCL/Open extrapartition TDQ.md: -------------------------------------------------------------------------------- 1 | # How to Open extrapartition TDQ? 2 | 3 | Open extrapartition TDQ through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_CLASS} 8 | * ${CICS_CONSOLE} 9 | * ${SUBSYSTEM_NAME} 10 | * @{CICS_TDQ} 11 | 12 | ``` 13 | //${USERID}C JOB (),'SET EXT TDQ OPEN',REGION=2M, 14 | // MSGCLASS=H,CLASS=${JOB_CLASS} 15 | //*********************************************** 16 | //* Before run specify: 17 | //* ${USERID} 18 | //* ${JOB_CLASS} 19 | //* ${CICS_CONSOLE} 20 | //* ${SUBSYSTEM_NAME} 21 | //* @{CICS_TDQ} 22 | //*********************************************** 23 | //SDSF EXEC PGM=SDSF 24 | //ISFOUT DD SYSOUT=* 25 | //CMDOUT DD SYSOUT=* 26 | //ISFIN DD * 27 | SET CONSOLE ${CICS_CONSOLE} 28 | /F ${SUBSYSTEM_NAME},CEMT SET TDQ(@{CICS_TDQ}) OPEN 29 | PRINT FILE CMDOUT 30 | ULOG 31 | PRINT 32 | PRINT CLOSE 33 | /* 34 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/CICS/JCL/Open file.md: -------------------------------------------------------------------------------- 1 | # How to Open CICS file? 2 | 3 | Open file through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_CLASS} 8 | * ${CICS_CONSOLE} 9 | * ${SUBSYSTEM_NAME} 10 | * @{CICS_FILE} 11 | 12 | ``` 13 | //${USERID}C JOB (),'SET FILE OPEN',REGION=2M, 14 | // MSGCLASS=H,CLASS=${JOB_CLASS} 15 | //*********************************************** 16 | //* Before run specify: 17 | //* ${USERID} 18 | //* ${JOB_CLASS} 19 | //* ${CICS_CONSOLE} 20 | //* ${SUBSYSTEM_NAME} 21 | //* @{CICS_FILE} 22 | //*********************************************** 23 | //SDSF EXEC PGM=SDSF 24 | //ISFOUT DD SYSOUT=* 25 | //CMDOUT DD SYSOUT=* 26 | //ISFIN DD * 27 | SET CONSOLE ${CICS_CONSOLE} 28 | /F ${SUBSYSTEM_NAME},CEMT SET FILE(@{CICS_FILE}) OPEN 29 | PRINT FILE CMDOUT 30 | ULOG 31 | PRINT 32 | PRINT CLOSE 33 | /* 34 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/CICS/JCL/README.md: -------------------------------------------------------------------------------- 1 | # This directory contains various job templates for working with CICS 2 | 3 | | Description | Link | 4 | |-------------------|:-----------------| 5 | | Start CICS Address space | [link](./Start%20CICS%20Address%20space.md) | 6 | | Enable file | [link](./Enable%20file.md) | 7 | | Enable TDQ | [link](./Enable%20TDQ.md) | 8 | | Set CICS Transaction enabled | [link](./Set%20CICS%20Transaction%20enabled.md) | 9 | | Set CICS Program enabled | [link](./Set%20CICS%20Program%20enabled.md) | 10 | | Open file | [link](./Open%20file.md) | 11 | | Open extrapartition TDQ | [link](./Open%20extrapartition%20TDQ.md) | -------------------------------------------------------------------------------- /zOS Subsystem Operating/CICS/JCL/Set CICS Program enabled.md: -------------------------------------------------------------------------------- 1 | # How to Set CICS Program enabled? 2 | 3 | Set CICS Program enabled through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_ACCOUNTING_INFO} 8 | * ${JOB_CLASS} 9 | * ${CICS_CONSOLE} 10 | * ${SUBSYSTEM_NAME} 11 | * @{CICS_PROGRAM} 12 | 13 | ``` 14 | //${USERID}C JOB (${JOB_ACCOUNTING_INFO}),'SET PROGRAM ENABLED',REGION=2M, 15 | // MSGCLASS=H,CLASS=${JOB_CLASS} 16 | //************************************************************************ 17 | //* Before run specify: 18 | //* ${USERID} 19 | //* ${JOB_ACCOUNTING_INFO} 20 | //* ${JOB_CLASS} 21 | //* ${CICS_CONSOLE} 22 | //* ${SUBSYSTEM_NAME} 23 | //* @{CICS_PROGRAM} 24 | //************************************************************************ 25 | //SDSF EXEC PGM=SDSF 26 | //ISFOUT DD SYSOUT=* 27 | //CMDOUT DD SYSOUT=* 28 | //ISFIN DD * 29 | SET CONSOLE ${CICS_CONSOLE} 30 | /F ${SUBSYSTEM_NAME},CEMT SET PROG(@{CICS_PROGRAM}) ENABLED 31 | PRINT FILE CMDOUT 32 | ULOG 33 | PRINT 34 | PRINT CLOSE 35 | /* 36 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/CICS/JCL/Set CICS Transaction enabled.md: -------------------------------------------------------------------------------- 1 | # How to Set CICS Transaction enabled? 2 | 3 | Set CICS Transaction enabled through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_ACCOUNTING_INFO} 8 | * ${JOB_CLASS} 9 | * ${CICS_CONSOLE} 10 | * ${SUBSYSTEM_NAME} 11 | * @{CICS_TRANSACTION} 12 | 13 | ``` 14 | //${USERID}C JOB (${JOB_ACCOUNTING_INFO}),'SET TRAN ENABLED',REGION=2M, 15 | // MSGCLASS=H,CLASS=${JOB_CLASS} 16 | //************************************************************************ 17 | //* Before run specify: 18 | //* ${USERID} 19 | //* ${JOB_ACCOUNTING_INFO} 20 | //* ${JOB_CLASS} 21 | //* ${CICS_CONSOLE} 22 | //* ${SUBSYSTEM_NAME} 23 | //* @{CICS_TRANSACTION} 24 | //************************************************************************ 25 | //SDSF EXEC PGM=SDSF 26 | //ISFOUT DD SYSOUT=* 27 | //CMDOUT DD SYSOUT=* 28 | //ISFIN DD * 29 | SET CONSOLE ${CICS_CONSOLE} 30 | /F ${SUBSYSTEM_NAME},CEMT SET TRANSACTION(@{CICS_TRANSACTION}) ENABLED 31 | PRINT FILE CMDOUT 32 | ULOG 33 | PRINT 34 | PRINT CLOSE 35 | /* 36 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/CICS/JCL/Start CICS Address space.md: -------------------------------------------------------------------------------- 1 | # How to Start CICS Adress space? 2 | 3 | Start CICS Adress space through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_ACCOUNTING_INFO} 8 | * ${JOB_CLASS} 9 | * @{ADDRESS_SPACE} 10 | 11 | ``` 12 | //${USERID}D JOB (${JOB_ACCOUNTING_INFO}),'STA ADDR SPACE',REGION=2M, 13 | // MSGCLASS=H,CLASS=${JOB_CLASS} 14 | //************************************************************************ 15 | //* Before run specify: 16 | //* ${USERID} 17 | //* ${JOB_ACCOUNTING_INFO} 18 | //* ${JOB_CLASS} 19 | //* @{ADDRESS_SPACE} 20 | //************************************************************************ 21 | //SDSF EXEC PGM=SDSF 22 | //ISFOUT DD SYSOUT=* 23 | //CMDOUT DD SYSOUT=* 24 | //ISFIN DD * 25 | SET CONSOLE BATCH 26 | /S @{ADDRESS_SPACE} 27 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/DB2/JCL/How to alter DB2 tablespace with DROP PENDING CHANGES.md: -------------------------------------------------------------------------------- 1 | # Alter DB2 Tablespace with DROP PENDING CHANGES 2 | ``` 3 | //******************************************************// 4 | //* INSTRUCTIONS: *// 5 | //* 1. REPLACE DB2_SDSNLOAD WITH YOUR SDSNLOAD DS *// 6 | //* 2. REPLACE SUBSYSTEM_NAME WITH YOUR DB2 SUBSYSTEM *// 7 | //* NAME *// 8 | //* 3. REPLACE DB2_RUNLIB_LOAD WITH YOUR DB2 RUNLIB *// 9 | //* 4. REPLACE DATABASE_NAME WITH YOUR DATABASE NAME *// 10 | //* 5. REPLACE TABLESPACE_NAME WITH YOUR TABLESPACE *// 11 | //* NAME *// 12 | //* 13 | //ALTER1 EXEC PGM=IKJEFT01 14 | //STEPLIB DD DSN=DB2_SDSNLOAD, 15 | // DISP=SHR 16 | //SYSTSIN DD * 17 | DSN SYSTEM(SUBSYSTEM_NAME) 18 | RUN PROGRAM(DSNTEP2) PLAN(DSNTEP11) - 19 | LIB('DB2_RUNLIB_LOAD') 20 | END 21 | //* 22 | //SYSIN DD * 23 | ALTER TABLESPACE DATABASE_NAME.TABLESPACE_NAME DROP PENDING CHANGES; 24 | /* 25 | //SYSTSPRT DD SYSOUT=* 26 | //SYSPRINT DD SYSOUT=* 27 | ``` 28 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/DB2/JCL/How to make a full DB2 tablespace image copy.md: -------------------------------------------------------------------------------- 1 | # Make a full DB2 Tablespace image copy 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE DB2_SDSNLOAD WITH YOUR SDSNLOAD DS *// 7 | //* 2. REPLACE SUBSYSTEM_NAME WITH YOUR DB2 SUBSYSTEM *// 8 | //* NAME *// 9 | //* 3. REPLACE DB2_RUNLIB_LOAD WITH YOUR DB2 RUNLIB *// 10 | //* 4. REPLACE DATABASE_NAME WITH YOUR DATABASE NAME *// 11 | //* 5. REPLACE TABLESPACE_NAME WITH YOUR TABLESPACE *// 12 | //* NAME *// 13 | //* 6. REPLACE USER_GDG WITH YOUR GDG DS *// 14 | //* 7. REPLACE USER_SYSCOPY WITH YOUR SYSCOPY DS NAME *// 15 | //* 16 | //* DELETE THIS STEP IF YOU HAVE ALREADY CREATED GDG 17 | //* GDG FOR FULL IMAGE COPY DATA SETS 18 | //DEFGDG EXEC PGM=IDCAMS 19 | //SYSPRINT DD SYSOUT=* 20 | //SYSIN DD * 21 | DEFINE GDG (NAME (USER_GDG) + 22 | LIMIT(2) SCRATCH) 23 | /* 24 | //COPY1 EXEC DSNUPROC,SYSTEM=SUBSYSTEM_NAME, 25 | // LIB='DB2_SDSNLOAD', 26 | // UID='' 27 | //SYSCOPY DD DSN=USER_SYSCOPY, 28 | // DISP=(NEW,CATLG), 29 | // SPACE=(TRK,(15,5),RLSE), 30 | // UNIT=SYSDA 31 | //SYSIN DD * 32 | COPY TABLESPACE DATABASE_NAME.TABLESPACE_NAME DSNUM ALL 33 | FULL YES 34 | ``` 35 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/DB2/JCL/How to reorganize DB2 tablespace with SCOPE PENDING.md: -------------------------------------------------------------------------------- 1 | # Reorganize DB2 Tablespace with SCOPE PENDING 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE DB2_SDSNLOAD WITH YOUR SDSNLOAD DS *// 7 | //* 2. REPLACE SUBSYSTEM_NAME WITH YOUR DB2 SUBSYSTEM *// 8 | //* NAME *// 9 | //* 3. REPLACE DATABASE_NAME WITH YOUR DATABASE NAME *// 10 | //* 4. REPLACE TABLESPACE_NAME WITH YOUR TABLESPACE *// 11 | //* NAME *// 12 | //* 5. REPLACE USER_SYSPUNCH WITH YOUR SYSPUNCH DS NAM*// 13 | //* 6. REPLACE USER_SYSREC WITH YOUR SYSREC DS NAME *// 14 | //* 7. REPLACE USER_SYSUT1 WITH YOUR SYSUT1 DS NAME *// 15 | //* 8. REPLACE USER_SYSCOPY WITH YOUR SYSCOPY DS NAME *// 16 | //* 9. REPLACE USER_SORTOUT WITH YOUR SORTOUT DS NAME *// 17 | //* 18 | //REORG1 EXEC DSNUPROC,SYSTEM=SUBSYSTEM_NAME, 19 | // LIB='DB2_SDSNLOAD', 20 | // UID='' 21 | //SYSPUNCH DD DSN=USER_SYSPUNCH, 22 | // DISP=(MOD,CATLG), 23 | // SPACE=(TRK,(5,5),RLSE), 24 | // UNIT=SYSDA 25 | //SYSREC DD DSN=USER_SYSREC, 26 | // DISP=(MOD,CATLG), 27 | // SPACE=(TRK,(15,5),RLSE), 28 | // UNIT=SYSDA 29 | //SYSUT1 DD DSN=USER_SYSUT1, 30 | // DISP=(MOD,DELETE,CATLG), 31 | // SPACE=(TRK,(5,5),RLSE), 32 | // UNIT=SYSDA 33 | //SYSCOPY DD DSN=USER_SYSCOPY, 34 | // DISP=(NEW,CATLG), 35 | // SPACE=(TRK,(5,5),RLSE), 36 | // UNIT=SYSDA 37 | //SORTOUT DD DSN=USER_SORTOUT, 38 | // DISP=(MOD,DELETE,CATLG), 39 | // SPACE=(TRK,(5,5),RLSE), 40 | // UNIT=SYSDA 41 | //SYSIN DD * 42 | REORG TABLESPACE DATABASE_NAME.TABLESPACE_NAME 43 | SCOPE PENDING 44 | ``` 45 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/DB2/JCL/How to reorganize DB2 tablespace.md: -------------------------------------------------------------------------------- 1 | # Reorganize DB2 Tablespace 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE DB2_SDSNLOAD WITH YOUR SDSNLOAD DS *// 7 | //* 2. REPLACE SUBSYSTEM_NAME WITH YOUR DB2 SUBSYSTEM *// 8 | //* NAME *// 9 | //* 3. REPLACE DATABASE_NAME WITH YOUR DATABASE NAME *// 10 | //* 4. REPLACE TABLESPACE_NAME WITH YOUR TABLESPACE *// 11 | //* NAME *// 12 | //* 5. REPLACE USER_SYSPUNCH WITH YOUR SYSPUNCH DS NAM*// 13 | //* 6. REPLACE USER_SYSREC WITH YOUR SYSREC DS NAME *// 14 | //* 7. REPLACE USER_SYSUT1 WITH YOUR SYSUT1 DS NAME *// 15 | //* 8. REPLACE USER_SORTOUT WITH YOUR SORTOUT DS NAME *// 16 | //* 17 | //REORG1 EXEC DSNUPROC,SYSTEM=SUBSYSTEM_NAME, 18 | // LIB='DB2_SDSNLOAD', 19 | // UID='' 20 | //SYSPUNCH DD DSN=USER_SYSPUNCH, 21 | // DISP=(MOD,CATLG), 22 | // SPACE=(TRK,(5,5),RLSE), 23 | // UNIT=SYSDA 24 | //SYSREC DD DSN=USER_SYSREC, 25 | // DISP=(MOD,CATLG), 26 | // SPACE=(TRK,(15,5),RLSE), 27 | // UNIT=SYSDA 28 | //SYSUT1 DD DSN=USER_SYSUT1, 29 | // DISP=(MOD,DELETE,CATLG), 30 | // SPACE=(TRK,(5,5),RLSE), 31 | // UNIT=SYSDA 32 | //SORTOUT DD DSN=USER_SORTOUT, 33 | // DISP=(MOD,DELETE,CATLG), 34 | // SPACE=(TRK,(5,5),RLSE), 35 | // UNIT=SYSDA 36 | //SYSIN DD * 37 | REORG TABLESPACE DATABASE_NAME.TABLESPACE_NAME 38 | LOG YES 39 | SORTDATA 40 | SORTDEVT SYSDA 41 | SORTNUM 4 42 | ``` 43 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/DB2/JCL/How to repair DB2 tablespace from CHECK PENDING status.md: -------------------------------------------------------------------------------- 1 | # Repair DB2 Tablespace from CHKP status 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE DB2_SDSNLOAD WITH YOUR SDSNLOAD DS *// 7 | //* 2. REPLACE SUBSYSTEM_NAME WITH YOUR DB2 SUBSYSTEM *// 8 | //* NAME *// 9 | //* 3. REPLACE DATABASE_NAME WITH YOUR DATABASE NAME *// 10 | //* 4. REPLACE TABLESPACE_NAME WITH YOUR TABLESPACE *// 11 | //* 12 | //REPAIR EXEC DSNUPROC,SYSTEM=SUBSYSTEM_NAME, 13 | // LIB='DB2_SDSNLOAD', 14 | // UID='' 15 | //SYSIN DD * 16 | REPAIR SET TABLESPACE DATABASE_NAME.TABLESPACE_NAME NOCHECKPEND 17 | ``` 18 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/DB2/JCL/How to repair DB2 tablespace from COPY status.md: -------------------------------------------------------------------------------- 1 | # Repair DB2 Tablespace from COPY status 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE DB2_SDSNLOAD WITH YOUR SDSNLOAD DS *// 7 | //* 2. REPLACE SUBSYSTEM_NAME WITH YOUR DB2 SUBSYSTEM *// 8 | //* NAME *// 9 | //* 3. REPLACE DATABASE_NAME WITH YOUR DATABASE NAME *// 10 | //* 4. REPLACE TABLESPACE_NAME WITH YOUR TABLESPACE *// 11 | //* 12 | //REPAIR EXEC DSNUPROC,SYSTEM=SUBSYSTEM_NAME, 13 | // LIB='DB2_SDSNLOAD', 14 | // UID='' 15 | //SYSIN DD * 16 | REPAIR SET TABLESPACE DATABASE_NAME.TABLESPACE_NAME NOCOPYPEND 17 | ``` 18 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/DB2/JCL/How to repair DB2 tablespace from RECP status.md: -------------------------------------------------------------------------------- 1 | # Repair DB2 Tablespace from RECP status 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE DB2_SDSNLOAD WITH YOUR SDSNLOAD DS *// 7 | //* 2. REPLACE SUBSYSTEM_NAME WITH YOUR DB2 SUBSYSTEM *// 8 | //* NAME *// 9 | //* 3. REPLACE DATABASE_NAME WITH YOUR DATABASE NAME *// 10 | //* 4. REPLACE TABLESPACE_NAME WITH YOUR TABLESPACE *// 11 | //* 12 | //RECOVER EXEC DSNUPROC,SYSTEM=SUBSYSTEM_NAME, 13 | // LIB='DB2_SDSNLOAD', 14 | // UID='' 15 | //SYSIN DD * 16 | REPAIR SET TABLESPACE DATABASE_NAME.TABLESPACE_NAME NORCVRPEND 17 | ``` 18 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/DB2/JCL/How to start DB2 address space.md: -------------------------------------------------------------------------------- 1 | # Start DB2 Address space 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE ADDRESS_SPACE WITH YOUR ADDRESS SPACE *// 7 | //* NAME. *// 8 | //* 9 | //SDSF EXEC PGM=SDSF 10 | //ISFOUT DD SYSOUT=* 11 | //CMDOUT DD SYSOUT=* 12 | //ISFIN DD * 13 | SET CONSOLE BATCH 14 | /S ADDRESS_SPACE 15 | ``` 16 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/DB2/JCL/How to start DB2 database with RW access.md: -------------------------------------------------------------------------------- 1 | # Start DB2 Database with RW access 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE DB2_SDSNLOAD WITH YOUR SDSNLOAD DS *// 7 | //* 2. REPLACE SUBSYSTEM_NAME WITH YOUR DB2 SUBSYSTEM *// 8 | //* NAME *// 9 | //* 3. REPLACE DATABASE_NAME WITH YOUR DATABASE NAME *// 10 | //* 11 | //START1 EXEC PGM=IKJEFT01,DYNAMNBR=20 12 | //SYSTSPRT DD SYSOUT=* 13 | //STEPLIB DD DSN=DB2_SDSNLOAD,DISP=SHR 14 | //SYSPRINT DD SYSOUT=* 15 | //SYSUDUMP DD SYSOUT=* 16 | //SYSOUT DD SYSOUT=* 17 | //SYSTSIN DD * 18 | DSN SYSTEM(SUBSYSTEM_NAME) 19 | -STA DB(DATABASE_NAME) ACCESS(RW) 20 | END 21 | //SYSIN DD DUMMY 22 | ``` 23 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/DB2/JCL/How to start DB2 stored procedure.md: -------------------------------------------------------------------------------- 1 | # Start DB2 Stored procedure 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE DB2_SDSNLOAD WITH YOUR SDSNLOAD DS *// 7 | //* 2. REPLACE SUBSYSTEM_NAME WITH YOUR DB2 SUBSYSTEM *// 8 | //* NAME *// 9 | //* 3. REPLACE USER_PROCEDURE WITH YOUR PROCEDURE NAME*// 10 | //* 11 | //START1 EXEC PGM=IKJEFT01,DYNAMNBR=20 12 | //SYSTSPRT DD SYSOUT=* 13 | //STEPLIB DD DSN=DB2_SDSNLOAD,DISP=SHR 14 | //SYSPRINT DD SYSOUT=* 15 | //SYSUDUMP DD SYSOUT=* 16 | //SYSOUT DD SYSOUT=* 17 | //SYSTSIN DD * 18 | DSN SYSTEM(SUBSYSTEM_NAME) 19 | -START PROCEDURE(USER_PROCEDURE) 20 | END 21 | //SYSIN DD DUMMY 22 | ``` 23 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/DB2/JCL/How to start DB2 tablespace with RW access.md: -------------------------------------------------------------------------------- 1 | # Start DB2 Tablespace with RW access 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE DB2_SDSNLOAD WITH YOUR SDSNLOAD DS *// 7 | //* 2. REPLACE SUBSYSTEM_NAME WITH YOUR DB2 SUBSYSTEM *// 8 | //* NAME *// 9 | //* 3. REPLACE DATABASE_NAME WITH YOUR DATABASE NAME *// 10 | //* 4. REPLACE TABLESPACE_NAME WITH YOUR TABLESPACE *// 11 | //* 12 | //START1 EXEC PGM=IKJEFT01,DYNAMNBR=20 13 | //SYSTSPRT DD SYSOUT=* 14 | //STEPLIB DD DSN=DB2_SDSNLOAD,DISP=SHR 15 | //SYSPRINT DD SYSOUT=* 16 | //SYSUDUMP DD SYSOUT=* 17 | //SYSOUT DD SYSOUT=* 18 | //SYSTSIN DD * 19 | DSN SYSTEM(SUBSYSTEM_NAME) 20 | -STA DB(DATABASE_NAME) SPACENAM(TABLESPACE_NAME) ACCESS(RW) 21 | END 22 | //SYSIN DD DUMMY 23 | ``` 24 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/DB2/JCL/How to terminate DB2 Utility.md: -------------------------------------------------------------------------------- 1 | # Terminate DB2 Utility 2 | 3 | ``` 4 | //* INSTRUCTIONS: *// 5 | //* 1. REPLACE DB2_SDSNLOAD WITH YOUR SDSNLOAD DS *// 6 | //* 2. REPLACE SUBSYSTEM_NAME WITH YOUR DB2 SUBSYSTEM *// 7 | //* NAME *// 8 | //* 3. REPLACE UTID WITH YOUR DB2 UTILITY ID *// 9 | //* 10 | //TERM1 EXEC PGM=IKJEFT01,DYNAMNBR=20 11 | //SYSTSPRT DD SYSOUT=* 12 | //STEPLIB DD DSN=DB2_SDSNLOAD,DISP=SHR 13 | //SYSPRINT DD SYSOUT=* 14 | //SYSUDUMP DD SYSOUT=* 15 | //SYSOUT DD SYSOUT=* 16 | //SYSTSIN DD * 17 | DSN SYSTEM(SUBSYSTEM_NAME) 18 | -TERM UTILITY (UTID) 19 | END 20 | //SYSIN DD DUMMY 21 | ``` 22 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/IMS/JCL/README.md: -------------------------------------------------------------------------------- 1 | # This directory contains various job templates for working with IMS 2 | 3 | | Description | Link | 4 | |-------------------|:-----------------| 5 | | Start IMS Address space | [link](./Start%20IMS%20Address%20space.md)| 6 | | Start IMS MPR Region | [link](./Start%20IMS%20MPR%20Region.md) | 7 | | Start IMS Program | [link](./Start%20IMS%20Program.md) | 8 | | Unlock IMS Transaction | [link](./Unlock%20IMS%20Transaction.md) | 9 | | Unlock and Start IMS Transaction | [link](./Unlock%20and%20Start%20IMS%20Transaction.md) | 10 | | Unlock IMS Database | [link](./Unlock%20IMS%20Database.md) | 11 | | Unlock IMS Program | [link](./Unlock%20IMS%20Program.md) | -------------------------------------------------------------------------------- /zOS Subsystem Operating/IMS/JCL/Start IMS Address space.md: -------------------------------------------------------------------------------- 1 | # How to Start IMS Adress space? 2 | 3 | Start IMS adress space through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_ACCOUNTING_INFO} 8 | * ${JOB_CLASS} 9 | * @{ADDRESS_SPACE} 10 | 11 | ``` 12 | //${USERID}D JOB (${JOB_ACCOUNTING_INFO}),'STA ADDR SPACE',REGION=2M, 13 | // MSGCLASS=H,CLASS=${JOB_CLASS} 14 | //******************************************************************* 15 | //* Before run specify: 16 | //* ${USERID} 17 | //* ${JOB_ACCOUNTING_INFO} 18 | //* ${JOB_CLASS} 19 | //* @{ADDRESS_SPACE} 20 | //******************************************************************* 21 | //SDSF EXEC PGM=SDSF 22 | //ISFOUT DD SYSOUT=* 23 | //CMDOUT DD SYSOUT=* 24 | //ISFIN DD * 25 | SET CONSOLE BATCH 26 | /S @{ADDRESS_SPACE} 27 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/IMS/JCL/Start IMS MPR Region.md: -------------------------------------------------------------------------------- 1 | # How to start IMS MPR Region? 2 | 3 | Start IMS MPR Region through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_ACCOUNTING_INFO} 8 | * ${JOB_CLASS} 9 | * ${IMS_PLEX} 10 | * ${IMS_RESLIB} 11 | * @{IMS_MPR} 12 | 13 | ``` 14 | //${USERID}S JOB (${JOB_ACCOUNTING_INFO}),'EXECUTE IMS CMD',REGION=2M, 15 | // MSGCLASS=H,CLASS=${JOB_CLASS} 16 | //******************************************************************* 17 | //* Before run specify: 18 | //* ${USERID} 19 | //* ${JOB_ACCOUNTING_INFO} 20 | //* ${JOB_CLASS} 21 | //* ${IMS_PLEX} 22 | //* ${IMS_RESLIB} 23 | //* @{IMS_MPR} 24 | //******************************************************************* 25 | //SPOC EXEC PGM=CSLUSPOC,PARM=('IMSPLEX=${IMS_PLEX}') 26 | //STEPLIB DD DISP=SHR,DSN=${IMS_RESLIB} 27 | //SYSPRINT DD SYSOUT=* 28 | //SYSIN DD * 29 | STA REG @{IMS_MPR} 30 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/IMS/JCL/Start IMS Program.md: -------------------------------------------------------------------------------- 1 | # How to start IMS Program? 2 | 3 | Start IMS Program through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_ACCOUNTING_INFO} 8 | * ${JOB_CLASS} 9 | * ${IMS_PLEX} 10 | * ${IMS_RESLIB} 11 | * @{IMS_PROGRAM} 12 | 13 | ``` 14 | //${USERID}S JOB (${JOB_ACCOUNTING_INFO}),'EXECUTE IMS CMD',REGION=2M, 15 | // MSGCLASS=H,CLASS=${JOB_CLASS} 16 | //******************************************************************* 17 | //* Before run specify: 18 | //* ${USERID} 19 | //* ${JOB_ACCOUNTING_INFO} 20 | //* ${JOB_CLASS} 21 | //* ${IMS_PLEX} 22 | //* ${IMS_RESLIB} 23 | //* @{IMS_PROGRAM} 24 | //******************************************************************* 25 | //SPOC EXEC PGM=CSLUSPOC,PARM=('IMSPLEX=${IMS_PLEX}') 26 | //STEPLIB DD DISP=SHR,DSN=${IMS_RESLIB} 27 | //SYSPRINT DD SYSOUT=* 28 | //SYSIN DD * 29 | STA PGM @{IMS_PROGRAM} 30 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/IMS/JCL/Unlock IMS Database.md: -------------------------------------------------------------------------------- 1 | # How to Unlock IMS Database? 2 | 3 | Unlock IMS Database through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_ACCOUNTING_INFO} 8 | * ${JOB_CLASS} 9 | * ${IMS_PLEX} 10 | * ${IMS_RESLIB} 11 | * @{IMS_DATABASE} 12 | 13 | ``` 14 | //${USERID}S JOB (${JOB_ACCOUNTING_INFO}),'EXECUTE IMS CMD',REGION=2M, 15 | // MSGCLASS=H,CLASS=${JOB_CLASS} 16 | //******************************************************************* 17 | //* Before run specify: 18 | //* ${USERID} 19 | //* ${JOB_ACCOUNTING_INFO} 20 | //* ${JOB_CLASS} 21 | //* ${IMS_PLEX} 22 | //* ${IMS_RESLIB} 23 | //* @{IMS_DATABASE} 24 | //******************************************************************* 25 | //SPOC EXEC PGM=CSLUSPOC,PARM=('IMSPLEX=${IMS_PLEX}') 26 | //STEPLIB DD DISP=SHR,DSN=${IMS_RESLIB} 27 | //SYSPRINT DD SYSOUT=* 28 | //SYSIN DD * 29 | /UNLOCK DB @{IMS_DATABASE} 30 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/IMS/JCL/Unlock IMS Program.md: -------------------------------------------------------------------------------- 1 | # How to Unlock IMS Program? 2 | 3 | Unlock IMS Program through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_ACCOUNTING_INFO} 8 | * ${JOB_CLASS} 9 | * ${IMS_PLEX} 10 | * ${IMS_RESLIB} 11 | * @{IMS_PROGRAM} 12 | 13 | ``` 14 | //${USERID}S JOB (${JOB_ACCOUNTING_INFO}),'EXECUTE IMS CMD',REGION=2M, 15 | // MSGCLASS=H,CLASS=${JOB_CLASS} 16 | //******************************************************************* 17 | //* Before run specify: 18 | //* ${USERID} 19 | //* ${JOB_ACCOUNTING_INFO} 20 | //* ${JOB_CLASS} 21 | //* ${IMS_PLEX} 22 | //* ${IMS_RESLIB} 23 | //* @{IMS_PROGRAM} 24 | //******************************************************************* 25 | //SPOC EXEC PGM=CSLUSPOC,PARM=('IMSPLEX=${IMS_PLEX}') 26 | //STEPLIB DD DISP=SHR,DSN=${IMS_RESLIB} 27 | //SYSPRINT DD SYSOUT=* 28 | //SYSIN DD * 29 | /UNLOCK PGM @{IMS_PROGRAM} 30 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/IMS/JCL/Unlock IMS Transaction.md: -------------------------------------------------------------------------------- 1 | # How to Unlock IMS Transaction? 2 | 3 | Unlock IMS Transaction through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_ACCOUNTING_INFO} 8 | * ${JOB_CLASS} 9 | * ${IMS_PLEX} 10 | * ${IMS_RESLIB} 11 | * @{IMS_TRANSACTION} 12 | 13 | ``` 14 | //${USERID}S JOB (${JOB_ACCOUNTING_INFO}),'EXECUTE IMS CMD',REGION=2M, 15 | // MSGCLASS=H,CLASS=${JOB_CLASS} 16 | //******************************************************************* 17 | //* Before run specify: 18 | //* ${USERID} 19 | //* ${JOB_ACCOUNTING_INFO} 20 | //* ${JOB_CLASS} 21 | //* ${IMS_PLEX} 22 | //* ${IMS_RESLIB} 23 | //* @{IMS_TRANSACTION} 24 | //******************************************************************* 25 | //SPOC EXEC PGM=CSLUSPOC,PARM=('IMSPLEX=${IMS_PLEX}') 26 | //STEPLIB DD DISP=SHR,DSN=${IMS_RESLIB} 27 | //SYSPRINT DD SYSOUT=* 28 | //SYSIN DD * 29 | UNLOCK TRAN @{IMS_TRANSACTION} 30 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/IMS/JCL/Unlock and Start IMS Transaction.md: -------------------------------------------------------------------------------- 1 | # How to Unlock and Start IMS Transaction? 2 | 3 | Unlock and Start IMS Transaction through JCL. 4 | 5 | Before run specify: 6 | * ${USERID} 7 | * ${JOB_ACCOUNTING_INFO} 8 | * ${JOB_CLASS} 9 | * ${IMS_PLEX} 10 | * ${IMS_RESLIB} 11 | * @{IMS_TRANSACTION} 12 | 13 | ``` 14 | //${USERID}S JOB (${JOB_ACCOUNTING_INFO}),'EXECUTE IMS CMD',REGION=2M, 15 | // MSGCLASS=H,CLASS=${JOB_CLASS} 16 | //******************************************************************* 17 | //* Before run specify: 18 | //* ${USERID} 19 | //* ${JOB_ACCOUNTING_INFO} 20 | //* ${JOB_CLASS} 21 | //* ${IMS_PLEX} 22 | //* ${IMS_RESLIB} 23 | //* @{IMS_TRANSACTION} 24 | //******************************************************************* 25 | //SPOC EXEC PGM=CSLUSPOC,PARM=('IMSPLEX=${IMS_PLEX}') 26 | //STEPLIB DD DISP=SHR,DSN=${IMS_RESLIB} 27 | //SYSPRINT DD SYSOUT=* 28 | //SYSIN DD * 29 | UNLOCK TRAN @{IMS_TRANSACTION} 30 | STA TRAN @{IMS_TRANSACTION} 31 | ``` -------------------------------------------------------------------------------- /zOS Subsystem Operating/MQ/JCL/How to copy and empty MQ queue.md: -------------------------------------------------------------------------------- 1 | # Copy and empty MQ queue 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE LOAD_DSNAME WITH YOUR LOAD DS NAME *// 7 | //* 2. REPLACE SUBSYSTEM_NAME WITH YOUR SUBSYSTEM NAME*// 8 | //* 3. REPLACE MQ_SCSQANLE WITH YOUR SCSQANL[E] *// 9 | //* 4. REPLACE MQ_SCSQAUTH WITH YOUR SCSQAUTH *// 10 | //* 5. REPLACE MQ_QUEUE WITH YOUR QUEUE NAME *// 11 | //* 12 | //DELLIB EXEC PGM=IKJEFT01 13 | //SYSEXEC DD DUMMY 14 | //SYSTSPRT DD SYSOUT=* 15 | //SYSPRINT DD SYSOUT=* 16 | //SYSTSIN DD * 17 | DELETE 'LOAD_DSNAME' 18 | /* 19 | //COPY EXEC PGM=CSQUTIL,PARM='SUBSYSTEM_NAME' 20 | //STEPLIB DD DISP=SHR,DSN=MQ_SCSQANLE 21 | // DD DISP=SHR,DSN=MQ_SCSQAUTH 22 | //OUTPUTA DD DSN=LOAD_DSNAME,DISP=(NEW,CATLG), 23 | // SPACE=(CYL,(5,1),RLSE),UNIT=SYSDA, 24 | // DCB=(RECFM=VBS,BLKSIZE=23200) 25 | //SYSPRINT DD SYSOUT=* 26 | //SYSIN DD * 27 | COPY QUEUE(MQ_QUEUE) DDNAME(OUTPUTA) 28 | EMPTY QUEUE(MQ_QUEUE) 29 | /* 30 | ``` 31 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/MQ/JCL/How to empty MQ queue.md: -------------------------------------------------------------------------------- 1 | # Empty MQ queue. 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE SUBSYSTEM_NAME WITH YOUR SUBSYSTEM NAME*// 7 | //* 2. REPLACE MQ_SCSQANLE WITH YOUR SCSQANL[E] *// 8 | //* 3. REPLACE MQ_SCSQAUTH WITH YOUR SCSQAUTH *// 9 | //* 4. REPLACE MQ_QUEUE WITH YOUR QUEUE NAME *// 10 | //* 11 | //EMPTQUE EXEC PGM=CSQUTIL,PARM='SUBSYSTEM_NAME' 12 | //STEPLIB DD DISP=SHR,DSN=MQ_SCSQANLE 13 | // DD DISP=SHR,DSN=MQ_SCSQAUTH 14 | //SYSPRINT DD SYSOUT=* 15 | //SYSIN DD * 16 | EMPTY QUEUE(MQ_QUEUE) 17 | /* 18 | ``` 19 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/MQ/JCL/How to start MQ address space.md: -------------------------------------------------------------------------------- 1 | # Start MQ address space. 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE ADDRESS_SPACE WITH YOUR ADDRESS SPACE *// 7 | //* 8 | //SDSF EXEC PGM=SDSF 9 | //ISFOUT DD SYSOUT=* 10 | //CMDOUT DD SYSOUT=* 11 | //ISFIN DD * 12 | SET CONSOLE BATCH 13 | /S ADDRESS_SPACE 14 | ``` 15 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/MQ/JCL/How to start MQ channel.md: -------------------------------------------------------------------------------- 1 | # Start MQ channel. 2 | 3 | ``` 4 | //******************************************************// 5 | //* INSTRUCTIONS: *// 6 | //* 1. REPLACE SUBSYSTEM_NAME WITH YOUR SUBSYSTEM NAME*// 7 | //* 2. REPLACE MQ_SCSQANLE WITH YOUR SCSQANL[E] *// 8 | //* 3. REPLACE MQ_SCSQAUTH WITH YOUR SCSQAUTH *// 9 | //* 4. REPLACE MQ_CHANNEL WITH YOUR CHANNEL NAME *// 10 | //* 11 | //START EXEC PGM=CSQUTIL,PARM='SUBSYSTEM_NAME' 12 | //STEPLIB DD DISP=SHR,DSN=MQ_SCSQANLE 13 | // DD DISP=SHR,DSN=MQ_SCSQAUTH 14 | //SYSPRINT DD SYSOUT=* 15 | //SYSIN DD * 16 | COMMAND DDNAME(CMDINP) 17 | /* 18 | //CMDINP DD * 19 | START CHANNEL(MQ_CHANNEL) 20 | /* 21 | ``` 22 | -------------------------------------------------------------------------------- /zOS Subsystem Operating/README.md: -------------------------------------------------------------------------------- 1 | # zOS Subsystem Operating 2 | 3 | **This repository contains various commands, templates, scenarios for working with z/OS Subsystem utilities and tools** 4 | 5 | **Repository content:** 6 | * DB2 7 | * [DB2 commands](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20Subsystem%20Operating/DB2/DB2%20commands.md) 8 | * [DB2 operating scenarios](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20Subsystem%20Operating/DB2/DB2%20operating%20scenarios.md) 9 | * CICS 10 | * [CICS operating](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20Subsystem%20Operating/CICS%20operating.md) 11 | * IMS 12 | * [IMS commands](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20Subsystem%20Operating/IMS%20commands.md) 13 | 14 | -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to automate checking for normal completion of a job.md: -------------------------------------------------------------------------------- 1 | ## How to automate checking for normal completion of a job (counting the number of lines)? 2 | 3 | * Suppose some z/OS program and/or Batch Job, upon normal completion, generates a strictly defined number of lines in the report 4 | * If the completion is **NOT** normal, then the number of lines is always different. 5 | 6 | **SOLUTION** - using the `IDCAMS PRINT` command. In my case, the correct number of records was 999. These lines were previously saved in the `INDSN01 DD` dataset. 7 | 8 | The job will always return RC=00 if the number of records is 999. Any other number of records will end with RC=08 9 | 10 | ``` 11 | //* 12 | //* EXAMPLE: check whether ?DATASET.TO.CHECK? 13 | //* has 999 records 14 | //* 15 | //PRINT01  EXEC PGM=IDCAMS                                   16 | //INDSN01  DD DISP=SHR,DSN=?DATASET.TO.CHECK? 17 | //SYSPRINT DD SYSOUT=*                                       18 | //SYSIN    DD *                                              19 |   PRINT IFILE(INDSN01) SKIP(999) COUNT(1) CHAR               20 |                                                               21 |   IF LASTCC>0 THEN DO                                        22 |        SET LASTCC=0                                          23 |        SET MAXCC=0                                           24 |                                                               25 |        PRINT IFILE(INDSN01) SKIP(998) COUNT(1) CHAR          26 |        IF LASTCC>0 THEN DO                                   27 |        SET LASTCC=8                                          28 |        SET MAXCC=8                                           29 |     END                                                       30 |   END                                                        31 |   ELSE DO                                                    32 |     SET LASTCC=8                                             33 |     SET MAXCC=8                                               34 |   END                                                        35 | /*   36 | ``` 37 | *Note:* if you check any other number of records (for instance, **N**), then instead of the values **999**, **998**, insert your values **N** and **N-1**, respectively. -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to compress a Partitioned Data Set.md: -------------------------------------------------------------------------------- 1 | # How to compress a Partitioned Data Set PDS? 2 | Specify value for `#input_pds` 3 | ``` 4 | //STEP1 EXEC PGM=IEBCOPY 5 | //SYSPRINT DD SYSOUT=* 6 | //SYSUT1 DD DSN='input_pds',DISP=SHR 7 | //SYSIN DD * 8 | COPY OUTDD=SYSUT1,INDD=SYSUT1 9 | ``` -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to convert a Partitioned Data Set to Partitioned Data Set Extended and vice versa.md: -------------------------------------------------------------------------------- 1 | # How to convert Partitioned Data Set PDS to Partitioned Data Set Extended PDSE and vice versa? 2 | ### PDS to PDSE 3 | Specify values for `#input_pds` and `#output_pdse`; change `SPACE` if needed; 4 | ``` 5 | //STEP1 EXEC PGM=IEBCOPY 6 | //SYSPRINT DD SYSOUT=* 7 | //SYSIN DD DUMMY 8 | //SYSUT1 DD DSN=#input_pds,DISP=SHR 9 | //SYSUT2 DD DSN=#output_pdse,DISP=(NEW,CATLG), 10 | // DCB=*.SYSUT1,SPACE=(CYL,(5,5,5)),DSNTYPE=LIBRARY 11 | ``` 12 | *Note: the original `#input_pds` dataset will not be removed.* 13 | ### PDSE to PDS 14 | Specify values for `#input_pdse` and `#output_pds`; change `SPACE` if needed; 15 | ``` 16 | //STEP1 EXEC PGM=IEBCOPY 17 | //SYSPRINT DD SYSOUT=* 18 | //SYSIN DD DUMMY 19 | //SYSUT1 DD DSN=#input_pdse,DISP=SHR 20 | //SYSUT2 DD DSN=#output_pds,DISP=(NEW,CATLG), 21 | // DCB=*.SYSUT1,SPACE=(CYL,(5,5,5)),DSNTYPE=PDS 22 | ``` 23 | *Note: the original `#input_pdse` dataset will not be removed.* -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to copy a Data Set or a Data Set member/Copy a PDS member to new Sequential Data Set and vice versa.md: -------------------------------------------------------------------------------- 1 | # How to copy a PDS member to new Sequential Data Set and vice versa? 2 | 3 | ## Copy a member to new Sequential Data Set 4 | 5 | Note: It is good practice to use Referback (Backward Reference) in DCB parameter. You will ensure data set compatibility this way. 6 | 7 | ``` 8 | //JCLLIB06 JOB NOTIFY=&SYSUID,MSGLEVEL=(1,1) 9 | //COPYMEM EXEC PGM=IEBGENER 10 | //SYSPRINT DD SYSOUT=* 11 | //SYSIN DD DUMMY 12 | //SYSUT1 DD DSN=[Data set name]([Member name]),DISP=SHR 13 | //SYSUT2 DD DSN=[Data set name],DISP=(NEW,CATLG), 14 | // DCB=*.SYSUT1,SPACE=(TRK,(1,1)) 15 | ``` 16 | 17 | ## Copy a Sequential Data Set into member of newly created PDS 18 | 19 | ``` 20 | //JCLLIB07 JOB NOTIFY=&SYSUID,MSGLEVEL=(1,1) 21 | //COPYMEM EXEC PGM=IEBGENER 22 | //SYSPRINT DD SYSOUT=* 23 | //SYSIN DD DUMMY 24 | //SYSUT1 DD DSN=[Data set name],DISP=SHR 25 | //SYSUT2 DD DSN=[Data set name]([Member name]),DISP=(NEW,CATLG), 26 | // DCB=*.SYSUT1,SPACE=(TRK,(1,1,5)) 27 | ``` -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to copy a Data Set or a Data Set member/Copy a Partitioned Data Set PDS.md: -------------------------------------------------------------------------------- 1 | # How to copy a Partitioned Data Set PDS? 2 | ### To a new PDS 3 | Specify values for `#input_pds`,`#output_pds`, `#unit` and `#volume`; change `SPACE` and `DCB` if needed; 4 | ``` 5 | //STEP1 EXEC PGM=IEBCOPY 6 | //SYSPRINT DD SYSOUT=* 7 | //SYSIN DD DUMMY 8 | //SYSUT1 DD DSN=#input_pds,DISP=SHR 9 | //SYSUT2 DD DSN=#output_pds,DISP=(NEW,CATLG), 10 | // DCB=(LRECL=80,RECFM=FB,BLKSIZE=6160), 11 | // SPACE=(CYL,(5,5,5)), 12 | // UNIT=#unit, 13 | // VOL=SER=#volume 14 | ``` 15 | *Note: the original `#input_pdse` dataset will not be removed.* 16 | ### To an already existing PDS without members replacement 17 | Specify values for `#input_pds`,`#output_pds`. 18 | ``` 19 | //STEP1 EXEC PGM=IEBCOPY 20 | //SYSPRINT DD SYSOUT=* 21 | //SYSUT1 DD DSN=#input_pds,DISP=SHR 22 | //SYSUT2 DD DSN=#output_pds,DISP=OLD 23 | //SYSIN DD * 24 | COPY INDD=SYSUT1,OUTDD=SYSUT2 25 | /* 26 | ``` 27 | *Note: the original `#input_pdse` dataset will not be removed.* 28 | ### To an already existing PDS with members replacement 29 | Specify values for `#input_pds`,`#output_pds`. 30 | ``` 31 | //STEP1 EXEC PGM=IEBCOPY 32 | //SYSPRINT DD SYSOUT=* 33 | //SYSUT1 DD DSN=#input_pds,DISP=SHR 34 | //SYSUT2 DD DSN=#output_pds,DISP=OLD 35 | //SYSIN DD * 36 | COPY INDD=((SYSUT1,R)),OUTDD=SYSUT2,LIST=YES 37 | /* 38 | ``` 39 | *Note: the original `#input_pdse` dataset will not be removed.* -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to copy a Data Set or a Data Set member/Copy selected members from partitioned data set PDS.md: -------------------------------------------------------------------------------- 1 | # How to copy selected members from partitioned data set PDS? 2 | Specify values for `#input_pds`,`#output_pds` and member names. 3 | ### With SELECT operator 4 | Copy selected members 5 | ``` 6 | //STEP1 EXEC PGM=IEBCOPY 7 | //SYSPRINT DD SYSOUT=* 8 | //SYSUT1 DD DSN=#input_pds,DISP=SHR 9 | //SYSUT2 DD DSN=#output_pds,DISP=OLD 10 | //SYSIN DD * 11 | COPY OUTDD=SYSUT2,INDD=SYSUT1 12 | SELECT MEMBER=(#mem_name1,#mem_name2, - 13 | #mem_name3) 14 | /* 15 | ``` 16 | *Note: be careful with the line continuation operator `-`* 17 | ### With EXCLUDE operator 18 | Copy everything except these members 19 | ``` 20 | //STEP1 EXEC PGM=IEBCOPY 21 | //SYSPRINT DD SYSOUT=* 22 | //SYSUT1 DD DSN=#input_pds,DISP=SHR 23 | //SYSUT2 DD DSN=#output_pds,DISP=OLD 24 | //SYSIN DD * 25 | COPY OUTDD=SYSUT2,INDD=SYSUT1 26 | EXCLUDE MEMBER=(#mem_name1,#mem_name2) 27 | /* 28 | ``` 29 | *Note: be careful with the line continuation operator `-`* -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to copy a Data Set or a Data Set member/Join multiple Sequential Data Sets into one.md: -------------------------------------------------------------------------------- 1 | # How to join multiple Sequential Data Sets into one? 2 | 3 | Specify values for `#input_ds*` and `#output_ds`; change `SPACE` and `DCB` if needed. 4 | 5 | ``` 6 | //STEP1 EXEC PGM=IEBGENER 7 | //SYSUT1 DD DISP=SHR,DSN=#input_ds1 8 | // DD DISP=SHR,DSN=#input_ds2 9 | // DD DISP=SHR,DSN=#input_ds3 10 | //* 11 | //* append more datasets if needed 12 | //* 13 | //SYSUT2 DD DISP=(NEW,CATLG,DELETE), 14 | // SPACE=(CYL,(500,500),RLSE), 15 | // DCB=*.SYSUT1, 16 | // DSN=#output_ds 17 | //SYSPRINT DD SYSOUT=* 18 | //SYSOUT DD SYSOUT=* 19 | //SYSIN DD DUMMY 20 | ``` 21 | -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to copy a Data Set or a Data Set member/Join several PDSs into one PDS.md: -------------------------------------------------------------------------------- 1 | # How to join several Partitioned Data Sets PDSs into one Partitioned Data Set PDS? 2 | Suppose you have 3 PDSs and you want to join them into one PDS. 3 | 4 | Specify values for `#input_pds*` and `#output_pds`; change `SPACE` and `DCB` if needed. 5 | ``` 6 | //STEP1 EXEC PGM=IEBCOPY 7 | //SYSPRINT DD SYSOUT=* 8 | //IN1 DD DSN=#input_pds1,DISP=SHR 9 | //IN2 DD DSN=#input_pds2,DISP=SHR 10 | //IN3 DD DSN=#input_pds3,DISP=SHR 11 | //*you can add more IN* here 12 | //OUT DD DSN=#output_pds,DISP=(NEW,CATLG,DELETE), 13 | // DCB=*.IN1,SPACE=(CYL,(5,5,5)) 14 | //SYSIN DD * 15 | COPY OUTDD=OUT,INDD=(IN1,IN2,IN3) 16 | /* 17 | ``` -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to copy first n records of Sequential Data Set or PDS member.md: -------------------------------------------------------------------------------- 1 | # How to copy first `n` records of Sequential Data Set or PDS member? 2 | Specify values for `n`, `#input_ds` and `#output_ds` 3 | ``` 4 | //STEP1 EXEC PGM=IDCAMS,REGION=5M 5 | //SYSPRINT DD SYSOUT=* 6 | //IN DD DSN=#input_ds,DISP=SHR 7 | //OUT DD DSN=#output_ds,DISP=SHR 8 | //SYSIN DD * 9 | REPRO IFILE(IN) OFILE(OUT) COUNT(n) 10 | /* 11 | ``` -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to create a Data Set or a Data Set member/Create a Partitioned Data Set.md: -------------------------------------------------------------------------------- 1 | # How to create a Partitioned Data Set? 2 | 3 | Create PDS with following parameters: 4 | - Record length: 80 5 | - Record format: Fixed Blocked 6 | - Optimal Block Size 7 | - Space: 2 cylinder for both primary and secondary allocation 8 | - Directory blocks: 10 9 | 10 | ``` 11 | //JCLLIB03 JOB NOTIFY=&SYSUID,MSGLEVEL=(1,1) 12 | //STEP1 EXEC PGM=IEFBR14 13 | //ALLOC DD DSN=[Data set name],DISP=(NEW,CATLG), 14 | // RECFM=FB,LRECL=80,BLKSIZE=27920,SPACE=(CYL,(2,2,10)) 15 | ``` 16 | -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to create a Data Set or a Data Set member/Create a Physical Sequential Large (PS-L) Data Set.md: -------------------------------------------------------------------------------- 1 | # How to create a Physical Sequential Large (PS-L) Data Set? 2 | 3 | PS-L or Physical Sequential Large Data Set. 4 | Standard PS also called Basic PS data set can have maximum 65 535 tracks per volume and can use 59 volumes. In total maximum size of Basic PS is: 5 | 59 * 65535 * 55996 = 201.64 GB 6 | 7 | PS-L can have 16 777 215 tracks per volume: 8 | 59 * 16777215 * 55996 = 51.41 TB 9 | 10 | Of course those are approximate calculations, in reality it depends on many data set characteristics for example record format or block size. 11 | 12 | Both PS and PS-L can have the same amount of extends. If you need more than 16 extends per volume you must allocate PS-E - Physical Sequential Extended Data Set. 13 | 14 | ``` 15 | //JCLLIB11 JOB NOTIFY=&SYSUID,MSGLEVEL=(1,1) 16 | //STEP1 EXEC PGM=IEFBR14 17 | //ALLOC DD DSN=STV.ALLOC.TASK11,DISP=(NEW,CATLG), 18 | // SPACE=(TRK,1),RECFM=FB,BLKSIZE=27920,LRECL=80, 19 | // DSNTYPE=LARGE 20 | ``` 21 | -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to create a Data Set or a Data Set member/Create a VSAM Data set.md: -------------------------------------------------------------------------------- 1 | # Create a VSAM Data set 2 | 3 | ## Creating a KSDS VSAM Data set 4 | 5 | Specify `#ds_name` and `#volume`; change parameters if needed 6 | ``` 7 | //DEFVSAM EXEC PGM=IDCAMS 8 | //SYSPRINT DD SYSOUT=* 9 | //SYSIN DD * 10 | DEF CLUSTER(NAME(#ds_name) - 11 | VOL(#volume) TRK(1,1) SHR(1 3)) - 12 | DATA(NAME(#ds_name.DATA) - 13 | CISZ(4096) KEYS(10 0) RECORDSIZE(80 80)) - 14 | INDEX(NAME(#ds_name.INDEX) - 15 | CISZ(2048)) 16 | /* 17 | ``` 18 | 19 | ## Creating a ESDS VSAM Data set 20 | 21 | Specify `#ds_name` and `#volume`; change parameters if needed 22 | ``` 23 | //DEFVSAM EXEC PGM=IDCAMS 24 | //SYSPRINT DD SYSOUT=* 25 | //SYSIN DD * 26 | DEF CLUSTER(NAME(#ds_name) - 27 | VOLUMES(#volume) CYLINDERS(1 1) - 28 | NONINDEXED) - 29 | DATA(NAME(#ds_name.DATA) - 30 | CISZ(4096) RECORDSIZE(354 354)) 31 | /* 32 | ``` 33 | 34 | ## Creating a RRDS VSAM Data set 35 | 36 | Specify `#ds_name` and `#volume`; change parameters if needed 37 | ``` 38 | //DEFVSAM EXEC PGM=IDCAMS 39 | //SYSPRINT DD SYSOUT=* 40 | //SYSIN DD * 41 | DEF CLUSTER(NAME(#ds_name) - 42 | VOLUMES(#volume) CYLINDERS(1 1) - 43 | RECORDSIZE(354 354) - 44 | NUMBERED) 45 | /* 46 | ``` 47 | 48 | ## Related topics 49 | 50 | * [Delete a Data set]() 51 | * [Fill a VSAM Data set with records]() 52 | -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to create a Data Set or a Data Set member/Create a new member in a Data Set.md: -------------------------------------------------------------------------------- 1 | # How do I create a new member in a Data Set? 2 | 3 | If you leave new member file without modifying it, it won't be saved. 4 | This why you can't just use `PGM=IEFBR14` with `DSN=USER.LIBRARY(MEMBER),DISP=SHR`. It will not be saved because it wasn't modified in any way. 5 | You need to use **IEBGENER**. You want to create data set without writing any data into it so you can use empty in-stream DD statement `'//SYSUT1 DD *'`. In such case end-of-file mark is written to member but it is enough to create it. 6 | 7 | ``` 8 | //JCLLIB05 JOB NOTIFY=&SYSUID,MSGLEVEL=(1,1) 9 | //COPYMEM EXEC PGM=IEBGENER 10 | //SYSPRINT DD SYSOUT=* 11 | //SYSIN DD DUMMY 12 | //SYSUT1 DD * 13 | //SYSUT2 DD DSN=[Data set name]([Member name]),DISP=SHR 14 | ``` 15 | -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to create a Data Set or a Data Set member/Create an Extented Partitioned Data Set.md: -------------------------------------------------------------------------------- 1 | # How to create an Extented Partitioned Data Set? 2 | 3 | Create PDS/E with following parameters: 4 | - Record length: 80 5 | - Record format: Fixed Blocked 6 | - Optimal Block Size 7 | - Space: 1 cylinder for both primary and secondary allocation 8 | 9 | ``` 10 | //JCLLIB04 JOB NOTIFY=&SYSUID,MSGLEVEL=(1,1) 11 | //STEP1 EXEC PGM=IEFBR14 12 | //ALLOC DD DSN=[Data set name],DISP=(NEW,CATLG),DSNTYPE=LIBRARY, 13 | // RECFM=FB,LRECL=80,BLKSIZE=27920,SPACE=(CYL,(1,1,5)) 14 | ``` -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to delete a Data Set or a Data Set member.md: -------------------------------------------------------------------------------- 1 | # How to delete a Data Set or a Data Set member? 2 | 3 | ## How to delete a Data Set in batch? 4 | Specify value for `#ds_name` 5 | ``` 6 | //STEP1 EXEC PGM=IDCAMS 7 | //SYSPRINT DD SYSOUT=* 8 | //SYSOUT DD SYSOUT=* 9 | //SYSIN DD * 10 | DELETE #ds_name PURGE 11 | /* 12 | ``` 13 | 14 | ## How to delete a Data Set member in batch? 15 | Specify values for `#input_pds` and` #member` 16 | ``` 17 | //STEP1 EXEC PGM=IDCAMS 18 | //SYSPRINT DD SYSOUT=* 19 | //SYSOUT DD SYSOUT=* 20 | //DD1 DD DSN=#input_pds ,DISP=SHR 21 | //SYSIN DD * 22 | DELETE #input_pds(#member) FILE(DD1) 23 | /* 24 | ``` 25 | 26 | ## How to delete a VSAM Data Set in batch? 27 | Specify value for `#ds_name` 28 | ``` 29 | //STEP1 EXEC PGM=IDCAMS 30 | //SYSPRINT DD SYSOUT=* 31 | //SYSOUT DD SYSOUT=* 32 | //SYSIN DD * 33 | DELETE #vsam_ds_name 34 | SET MAXCC=0 35 | /* 36 | ``` 37 | or delete a VSAM using mask: `DEL MY.VSAM.** MASK` 38 | 39 | ## How to delete Data Sets using mask? 40 | Specify value for `#ds_with_mask` 41 | ``` 42 | //STEP1 EXEC PGM=IDCAMS 43 | //SYSPRINT DD SYSOUT=* 44 | //SYSIN DD * 45 | DELETE #ds_with_mask MASK NONVSAM 46 | SET MAXCC = 0 47 | /* 48 | ``` 49 | 50 | ## Related topics 51 | 52 | * [Create a VSAM Data set]() 53 | * [Fill a VSAM Data set with records]() 54 | -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to fill VSAM with records.md: -------------------------------------------------------------------------------- 1 | # Fill VSAM Data sets with record from `REPRO.DATA` 2 | 3 | The job shows how to fill different types of VSAM Data sets with records 4 | 5 | ``` 6 | //FILLVSAM EXEC PGM=IDCAMS 7 | //SYSPRINT DD SYSOUT=* 8 | //KSDSOUT DD DSN=USER.VSAM.KSDS,DISP=OLD 9 | //ESDSOUT DD DSN=USER.VSAM.ESDS,DISP=OLD 10 | //INDD DD DSN=REPRO.DATA(VSAM0000),DISP=SHR 11 | // DD DSN=REPRO.DATA(VSAM0100),DISP=SHR 12 | // DD DSN=REPRO.DATA(VSAM0200),DISP=SHR 13 | // DD DSN=REPRO.DATA(VSAM0300),DISP=SHR 14 | // DD DSN=REPRO.DATA(VSAM0400),DISP=SHR 15 | //INDD00 DD DSN=REPRO.DATA(VSAM0000),DISP=SHR 16 | //SYSIN DD * 17 | REPRO IFILE(INDD00) OFILE(ESDSOUT) 18 | 19 | REPRO IFILE(INDD) OFILE(KSDSOUT) 20 | 21 | DEF ALTERNATEINDEX(NAME(USER.VSAM.KSDS.AIX) - 22 | RELATE(USER.VSAM.KSDS) - 23 | VOL(VOL101) TRK(1,1) SHR(1 3) - 24 | KEYS(5 11)) 25 | 26 | BLDINDEX INDATASET(USER.VSAM.KSDS) - 27 | OUTDATASET(USER.VSAM.KSDS.AIX) 28 | 29 | DEFINE PATH (NAME(USER.VSAM.KSDS.PATH) - 30 | PATHENTRY(USER.VSAM.KSDS.AIX)) 31 | /* 32 | ``` 33 | 34 | ## Related topics 35 | 36 | * [Create a VSAM Data set]() 37 | * [Delete a Data set]() -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/How to rename a Data Set in batch.md: -------------------------------------------------------------------------------- 1 | # How to rename a Data Set or a Data Set member? 2 | 3 | # How to rename a Data Set in batch? 4 | Specify values for `#old_name` and `#new_name` 5 | ``` 6 | //STEP1 EXEC PGM=IDCAMS 7 | //SYSPRINT DD SYSOUT=* 8 | //SYSIN DD * 9 | ALTER '#old_name' NEWNAME('#new_name') 10 | /* 11 | ``` 12 | 13 | # How to rename a Data Set member in batch? 14 | Specify values for `#ds_name`, `#old_name` and `#new_name` 15 | ``` 16 | //STEP1 EXEC PGM=IDCAMS 17 | //SYSPRINT DD SYSOUT=* 18 | //SYSIN DD * 19 | ALTER - 20 | #ds_name(#old_name) - 21 | NEWNAME(#ds_name(#new_name)) 22 | /* 23 | ``` -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/JCL job template for evenly dividing the dataset into parts/JCL job template for split a dataset by an equal number of records: -------------------------------------------------------------------------------- 1 | //S1 EXEC PGM=ICETOOL 2 | //TOOLMSG DD SYSOUT=* 3 | //DFSMSG DD SYSOUT=* 4 | //IN DD DSN=#INPUT DATASET# 5 | //T1 DD DSN=&&T1,UNIT=SYSDA,SPACE=(TRK,(1,1)),DISP=(,PASS) 6 | //C1 DD DSN=&&C1,UNIT=SYSDA,SPACE=(TRK,(1,1)),DISP=(,PASS) 7 | //CTL3CNTL DD * 8 | OUTFIL FNAMES=(#OUT01,OUT02,...,OUTnn#), 9 | // DD DSN=*.C1,VOL=REF=*.C1,DISP=(OLD,PASS) 10 | //OUT01 DD DSN=#Output file01# 11 | //OUT02 DD DSN=#Output file02# 12 | //* ... 13 | //OUTnn DD DSN=#Output filenn# 14 | //TOOLIN DD * 15 | //* Get the record count. 16 | COPY FROM(IN) USING(CTL1) 17 | //* Generate: 18 | //* SPLIT1R=x where x = count/nn. 19 | //* nn is the number of output files. 20 | COPY FROM(T1) TO(C1) USING(CTL2) 21 | //* Use SPLIT1R=x to split records contiguously among 22 | //* the nn output files. 23 | COPY FROM(IN) USING(CTL3) 24 | /* 25 | //CTL1CNTL DD * 26 | OUTFIL FNAMES=T1,REMOVECC,NODETAIL, 27 | TRAILER1=(COUNT=(M11,LENGTH=8)) 28 | /* 29 | //CTL2CNTL DD * 30 | OUTREC IFOUTLEN=80, 31 | IFTHEN=(WHEN=INIT,BUILD=(1:1,8,ZD,DIV,#Set number of divided datasets#, 32 | TO=ZD,LENGTH=8)), 33 | IFTHEN=(WHEN=(1,8,ZD,GT,+0), 34 | BUILD=(2X,C'SPLIT1R=',1,8)), 35 | IFTHEN=(WHEN=NONE, 36 | BUILD=(2X,C'SPLIT1R=1')) 37 | / -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/JCL job template for evenly dividing the dataset into parts/README.md: -------------------------------------------------------------------------------- 1 | # JCL job template for split a file in n files containing equal number of records 2 | 3 | **This JCL job template allows to divide one large input dataset into a uniform subset of separate datasets.** 4 | 5 | [Link to clone/download from the repository](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/Batch%20jobs%20(JCLs)/JCL%20job%20template%20for%20evenly%20dividing%20the%20dataset%20into%20parts/JCL%20job%20template%20for%20split%20a%20dataset%20by%20an%20equal%20number%20of%20records) 6 | 7 | **Be sure to change the following settings before starting the job:** 8 | * `#INPUT DATASET#` - Input dataset that contains a large number of records 9 | * `#OUT01,OUT02,...,OUTnn#` - How many datasets do you want to divide input dataset? 10 | * `//OUT01 DD DSN=#Output file01#` - Output file01 11 | 12 | `//OUT02 DD DSN=#Output file02#` - Output file02 13 | 14 | `//* ...` 15 | 16 | `//OUTnn DD DSN=#Output filenn#` - Output filenn 17 | * `IFTHEN=(WHEN=INIT,BUILD=(1:1,8,ZD,DIV,#Set number of divided datasets#,` - Set number of divided datasets 18 | 19 | ``` 20 | //S1 EXEC PGM=ICETOOL 21 | //TOOLMSG DD SYSOUT=* 22 | //DFSMSG DD SYSOUT=* 23 | //IN DD DSN=#INPUT DATASET# 24 | //T1 DD DSN=&&T1,UNIT=SYSDA,SPACE=(TRK,(1,1)),DISP=(,PASS) 25 | //C1 DD DSN=&&C1,UNIT=SYSDA,SPACE=(TRK,(1,1)),DISP=(,PASS) 26 | //CTL3CNTL DD * 27 | OUTFIL FNAMES=(#OUT01,OUT02,...,OUTnn#), 28 | // DD DSN=*.C1,VOL=REF=*.C1,DISP=(OLD,PASS) 29 | //OUT01 DD DSN=#Output file01# 30 | //OUT02 DD DSN=#Output file02# 31 | //* ... 32 | //OUTnn DD DSN=#Output filenn# 33 | //TOOLIN DD * 34 | //* Get the record count. 35 | COPY FROM(IN) USING(CTL1) 36 | //* Generate: 37 | //* SPLIT1R=x where x = count/nn. 38 | //* nn is the number of output files. 39 | COPY FROM(T1) TO(C1) USING(CTL2) 40 | //* Use SPLIT1R=x to split records contiguously among 41 | //* the nn output files. 42 | COPY FROM(IN) USING(CTL3) 43 | /* 44 | //CTL1CNTL DD * 45 | OUTFIL FNAMES=T1,REMOVECC,NODETAIL, 46 | TRAILER1=(COUNT=(M11,LENGTH=8)) 47 | /* 48 | //CTL2CNTL DD * 49 | OUTREC IFOUTLEN=80, 50 | IFTHEN=(WHEN=INIT,BUILD=(1:1,8,ZD,DIV,#Set number of divided datasets#, 51 | TO=ZD,LENGTH=8)), 52 | IFTHEN=(WHEN=(1,8,ZD,GT,+0), 53 | BUILD=(2X,C'SPLIT1R=',1,8)), 54 | IFTHEN=(WHEN=NONE, 55 | BUILD=(2X,C'SPLIT1R=1')) 56 | /* 57 | ``` 58 | -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/Sample solution for transferring datasets using XMIT and ADRDSSU/README.md: -------------------------------------------------------------------------------- 1 | # This solution solves the issue of packing and transferring data sets from one system to another in an automatic mode, using XMIT and ADRDSSU with return code checking via simple REXX script 2 | 3 | **Steps for implementation:** 4 | 1. Allocate in your first system two JCL jobs and one REXX script with the appropriate content from the below datasets: 5 | * [JCL job - USER01.SAMPLE.JCL(SENDLIBS)](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/Batch%20jobs%20(JCLs)/Sample%20solution%20for%20transferring%20datasets%20using%20XMIT%20and%20ADRDSSU/USER01.SAMPLE.JCL/SENDLIBS.jcl) 6 | * [JCL job - USER01.SAMPLE.JCL(RECVLIBS)](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/Batch%20jobs%20(JCLs)/Sample%20solution%20for%20transferring%20datasets%20using%20XMIT%20and%20ADRDSSU/USER01.SAMPLE.JCL/RECVLIBS.jcl) 7 | * [REXX script - USER01.SAMPLE.EXEC(CHECKRC)](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/Batch%20jobs%20(JCLs)/Sample%20solution%20for%20transferring%20datasets%20using%20XMIT%20and%20ADRDSSU/USER01.SAMPLE.EXEC/CHECKRC.rexx) 8 | 9 | **Description:** 10 | * SENDLIBS JCL job - for preparing and packing datasets for transferring and sending them to a remote system. 11 | * RECVLIBS JCL job - for receiving datasets on a remote system and unpacking them. 12 | * CHECKRC REXX script - for checking the return code from remote system job output. 13 | 14 | 2. After creating jobs, you need to replace the following places in the code: 15 | * All values enclosed in hashtags (example: `#value to change#`) 16 | * Change the job card to suit your system settings (an example of a job header that was used to launch is in the "INSTRUCTIONS" block, at the beginning of the code listing) 17 | 18 | 3. After changing all values in the code, execute USER01.SAMPLE.JCL(SENDLIBS) JCL job and check the execution result. 19 | -------------------------------------------------------------------------------- /zOS System operating/Batch jobs (JCLs)/Sample solution for transferring datasets using XMIT and ADRDSSU/USER01.SAMPLE.EXEC/CHECKRC.rexx: -------------------------------------------------------------------------------- 1 | /**************************** REXX *********************************/ 2 | trace off 3 | parse arg parms 4 | 5 | parms = translate(parms,' ',',') 6 | parse var parms inputFile 7 | "ALLOC F(INP1) DA('"inputFile"') SHR REUSE" 8 | "EXECIO * DISKR INP1 (STEM IN1. FINIS)" 9 | "FREE F(INP1)" 10 | do i=1 to IN1.0 11 | if POS('ENDED - RC=',IN1.i)>0 then 12 | line=IN1.i 13 | else NOP 14 | end 15 | line1=substr(line,index(line,'=')+1,length(line)) 16 | if abs(strip(line1))<>0 then do 17 | say 'Job failed on remote side' 18 | exit 12 19 | end 20 | exit -------------------------------------------------------------------------------- /zOS System operating/HSM/HSM system commands.md: -------------------------------------------------------------------------------- 1 | # This document contains useful day-to-day HSM system commands 2 | 3 | ## QUERY commands 4 | | Description | Command | 5 | |--------------------|:------------| 6 | | List out running processes and the statuses of the HSM components | `QUERY ACTIVE` | 7 | | List out all waiting for resource commands | `QUERY WAITING` | 8 | | List out what is happening with HSM's automatic functions | `QUERY AUTOPROGRESS` | 9 | | List out the users who are running active or queued commands | `QUERY USER` | 10 | | Query active processes | `QUERY PROCESS` | 11 | | List out the name of the HSM started task | `QUERY IMAGE` | 12 | | List out all automatic processes running at this time | `QUERY AUTOP` | 13 | | List out all ABARS parameters | `QUERY ABARS` | 14 | | List out all aggregate recovery volumes | `QUERY ARPOOL` | 15 | | List out all the recall pools | `QUERY POOL` | 16 | | List out all current backup parameters | `QUERY BACKUP` | 17 | | List out CDS backup information | `QUERY CDSV` | 18 | | List out information about the CDS files | `QUERY CDS` | 19 | | List out ML2 volumes, including info about volumes that are currently in use | `QUERY ML2` | 20 | | List out all HSM information for the specified dataset | `QUERY DATASETNAME(dataset.name)` | 21 | | List out space information for a specified volume | `QUERY SPACE(volume_here)` | 22 | | List out the HSM startup parameters | `QUERY STAR` | 23 | | List out all files that are excluded from migration by SETMIG commands | `QUERY RETAIN` | 24 | | List out the CSA or memory limit parameters for HSM | `QUERY CSALIMITS` | 25 | | List out DFHSM settings | `QUERY SETSYS` | 26 | 27 | 28 | ## HOLD, RELEASE and CANCEL commands 29 | | Description | Command | 30 | |--------------------|:------------| 31 | | Hold backup. Optionally (AUTO DCCOMMAND(TAPE) | `HOLD BACKUP` | 32 | | Hold recall. Optionally (TAPE) | `HOLD RECALL` | 33 | | Hold migration | `HOLD MIGRATION` | 34 | | Hold fast replication recover. Optionally (TAPE) | `HOLD FRRECOV` | 35 | | Hold dump | `HOLD DUMP` | 36 | | Hold aggregate backup | `HOLD ABACKUP` | 37 | | Hold aggregate recovery | `HOLD ARECOVER` | 38 | | Hold tape recycling | `HOLD RECYCLE` | 39 | | Hold tape copy | `HOLD TAPECOPY` | 40 | | Hold tape replication | `HOLD TAPEREPL` | 41 | | Hold common recall queue (CRQ) | `HOLD COMMONQUEUE` | 42 | | Hold recover. Optionally (TAPEDATASET) | `HOLD RECOVER` | 43 | | Release function | `RELEASE function_name` | 44 | | Cancel request | `CANCEL REQUEST(request_number)` | 45 | | Cancel all user processes | `CANCEL USER(userid)` | 46 | 47 | -------------------------------------------------------------------------------- /zOS System operating/IPL and maintenance.md: -------------------------------------------------------------------------------- 1 | # IPL and maintenance 2 | 3 | To start initializing the system, enter from the console: 4 | ```haskell 5 | IPL xxxx LOADPARM aaaabbcd 6 | ``` 7 | where 8 | * **xxxx** - device address from which to initialize the system (it is also called system residense volume - SYSRES) 9 | * **аааа** - device address where the IODF config is located 10 | * **bb** - LOAD member number 11 | * **c** - IMSI (initialization message suppression indicator) - the prompting and message suppression characteristics 12 | * **d** - nucleus data set number - IEANUC0d и IEANUC2d 13 | 14 | If the LOADPARM keyword is not specified, by default: 15 | * the search for the IODF file will be performed on the SYSRES volume 16 | * LOAD00 will be selected 17 | * IMSI - blank - suppresses most informational messages and does not prompt for system parameters; will use the LOAD member values 18 | * if NUCLEUS parameter is not specified in LOAD00, nucleus data set number - 1 (IEANUC01 и IEANUC21) 19 | 20 | ## LOADyy parameters 21 | 22 | During IPL, the system looks for LOADyy member in the following order: 23 | 1. SYS0.IPLPARM through SYS9.IPLPARM on the IODF volume 24 | 2. SYS1.PARMLIB on the IODF volume 25 | 3. SYS1.PARMLIB on the SYSRES volume 26 | 27 | LOAD contains many initialization parameters. As an example, a LOAD member might look like this: 28 | ``` 29 | IODF 00 SYS1 30 | SYSCAT VOL001113CCATALOG.Z23D.MASTER 31 | SYSPARM AL 32 | IEASYM 00 33 | NUCLST 00 34 | PARMLIB DSN1.PARMLIB VOL002 35 | PARMLIB DSN2.PARMLIB VOL003 36 | PARMLIB SYS1.PARMLIB VOL005 37 | NUCLEUS 1 38 | ``` 39 | where 40 | * `IODF` - **SYS1.IODF00** will be used as a configuration file 41 | * **SYS1** - high level qualifier 42 | * **00** - IODF id 43 | * `SYSCAT` - identifies the master catalog 44 | * `SYSPARM` - identifies **IEASYSAL** member from PARMLIB concatenation. 45 | * `IEASYM` - identifies **IEASYM00** member where static system symbols defined 46 | * `NUCLST` - identifies **NUCLST00** that system will use 47 | * `PARMLIB` - the following data sets will be included 48 | * `DSN1.PARMLIB` 49 | * `DSN2.PARMLIB` 50 | * `SYS1.PARMLIB` on VOL005 51 | * system automatically concatenates `SYS1.PARMLIB` from master catalog 52 | * `NUCLEUS` - nucleus data set number - **IEANUC01** и **IEANUC21** 53 | 54 | To display information about your system IPL, enter 55 | ``` 56 | /D IPLINFO 57 | ``` 58 | -------------------------------------------------------------------------------- /zOS System operating/ISPF personalization tips.md: -------------------------------------------------------------------------------- 1 | # ISPF personalization tips 2 | 3 | ## `SWAPBAR` - multi-tabs for logical screens 4 | `SWAPBAR` will display all the active logical session names at bottom of the screen. To run, type in the command line: 5 | ```haskell 6 | SWAPBAR ON 7 | ``` 8 | ![](images/swap-bar.png) 9 | 10 | Usage tips: 11 | * Enter `START` in any ISPF screen to start a new logical session. You can `START` up to 8 screens. 12 | * Entry for your current session will have an asterisk (*) at the first character’s position 13 | * To navigate between sessions use the **PF9** key 14 | * You can enter the number of a specific session in the command line (for example, 3) and press **PF9**. 15 | * You can type `LIST` at the command line and press **PF9**. A list of sessions will be displayed. To go to a specific session, type `S` in front of it 16 | * All sessions are point-and-shoot. So that you can simply point your cursor to the session name which you want to pull up and then press the **Enter key** 17 | ![](images/swap-list.png) 18 | * To close a logical session, enter `=X` 19 | 20 | ## Home button takes the cursor to start of command line 21 | 1. On the PRIMARY OPTION MENU (main ISPF screen) select **Option 0 (Settings)**. 22 | 2. If the "**Command line at bottom**" line has a "/" in front of it, remove the "/". 23 | 2. Here there is an option "**Tab to action bar choices**". Deselect that option. 24 | 25 | ## Pointer to cursor position 26 | ![](images/cursor-pointer.png) 27 | 28 | Depends on the installed emulator: 29 | * for BlueZone 30 | 31 | ![](images/blue-zone-cursor.png) 32 | * for PComm: try pressing the **Ctrl + Home key** combination 33 | 34 | ## Built-in emulator capabilities 35 | Emulators usually provide users with customization abilities like fonts, colors, etc. 36 | 37 | ## Related topic 38 | * [How to use 3270 emulators with larger screensize?](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20use%203270%20emulators%20with%20larger%20screensize/README.MD) 39 | -------------------------------------------------------------------------------- /zOS System operating/ISPF/ISPF commands.md: -------------------------------------------------------------------------------- 1 | # This document contains various day-to-day and rare ISPF commands. 2 | 3 | ## How to find a string 4 | 5 | | Command | Description | 6 | |---------|:------------| 7 | |Find string |```F Str``` | 8 | |Change all strings to another|```F Str NEXT``` | 9 | |Find string (previous match)|```F Str PREV``` | 10 | |Find string (first match) |```F Str FIRST``` | 11 | |Find string (last match)|```F Str LAST``` | 12 | |Find string (all matches)|```F Str ALL``` | 13 | 14 | ## How to change a string 15 | 16 | | Command | Description | 17 | |---------|:------------| 18 | |Change string Str1 to string Str2 |```C Str1 Str2``` | 19 | |Change all strings Str1 to another strings Str2|```C ALL Str1 Str2``` | 20 | |Repeat the action of the previous CHANGE command (change one character string to another) (Edit and View only)|```RCHANGE``` | 21 | 22 | ## How to create a member 23 | 24 | | Command | Description | 25 | |---------|:------------| 26 | |Create another member from the one you are editing| ```CRE MEMBER_NAME``` | 27 | 28 | ## Dataset management 29 | 30 | | Command | Description | 31 | |---------|:------------| 32 | |Refresh a data-list. You can try this command for inside a PDS, PDS member, PS file, Dataset list etc.|```REF``` | 33 | |Browse a file. Give ‘B’ in front of a dataset in DSLIST|```B``` | 34 | |View a dataset. Give ‘V’ in front of a dataset in DSLIST|```V``` | 35 | |Edit a dataset. Give ‘E’ in front of a dataset in DSLIST.|```E``` | 36 | |Delete the lines from the files you are editing |```DEL``` | 37 | |Cancel changes made to the dataset|```CANCEL``` | 38 | |Scroll to the bottom of the data| ```BOTTOM``` | 39 | 40 | ## Switch to utilities or other workplaces 41 | 42 | | Command | Description | 43 | |---------|:------------| 44 | |Invoke the ISPF DTL Conversion Utility|```ISPDTLC``` | 45 | |Start the ISPF Workplace|```ISPFWORK``` | 46 | |Invoke the LIBDEF Display Utility|```ISPLIBD``` | 47 | |Create preprocessed panels, those for which ISPF has partially processed the panel definition before it is stored in the panel data set, either interactively or in batch mode|```ISPPREP``` | 48 | 49 | ## Info 50 | 51 | | Command | Description | 52 | |---------|:------------| 53 | |Change the default colors on seven-color display devices.|```COLOR``` | 54 | |Provide general information about the contents of a panel|```XHELP``` | 55 | |Display the PF Key Definitions. Change the ZPF variable settings (ZPFVARs).|```KEYS``` | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /zOS System operating/ISPF/img/retp-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/ISPF/img/retp-panel.png -------------------------------------------------------------------------------- /zOS System operating/ISPF/img/whois.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/ISPF/img/whois.png -------------------------------------------------------------------------------- /zOS System operating/JES commands.md: -------------------------------------------------------------------------------- 1 | # This document contains various day-to-day and rare JES commands. 2 | 3 | ## How to display JES2 info 4 | 5 | | Description | Command | 6 | |-------------------|:-----------------| 7 | |Display active jobs|`/$D A`| 8 | |Display all jobs, including TSU and STC|`/$D A,X`| 9 | |Display tasks running under JES2|`/$D JES2`| 10 | |Display information about JES2 devices|`/$D U`| 11 | |Display Number of Queued Jobs|`/$D Q`| 12 | |Display initialization command and parmlib|`/$D INITINFO`| 13 | |Display SPOOL data set characteristics|`/$D SPOOLDEF`| 14 | |Display how full is the SPOOL|`/$D SPOOL`| 15 | |Display which jobs are using more than 1% of the SPOOL|`/$D JQ,SPL=(%>1)`| 16 | 17 | 18 | ## How to purge a job 19 | 20 | | Description | Command | 21 | |-------------------|:-----------------| 22 | |Purge `job-name` from the system|`/$P J'job-name'`| 23 | |Purge jobs that match `job-mask`|`/$P JQ,JM=job-mask`| 24 | |Purge the output of all Jobs belonging to classes "A,B and C" that are older than a day|`/$P OJOBQ,Q=ABC,DAYS>1`| 25 | |Purge all Jobs that are more than 3 days old|`/$P OJOBQ,ALL,PROTECTED,DAYS>3`| 26 | 27 | ## JES2 Automatic commands 28 | 29 | When you code this command, JES2 establishes a starting point `T(hhh.mm)` (when to begin issuing a command), and an interval `I(sssss)` (when to repeat a command). 30 | 31 | | Description | Command | 32 | |-------------------|:-----------------| 33 | |Display automatic commands you are authorized to see|`/$T A,ALL`| 34 | |Issue `$jes-command` every 90 seconds|`/$T A,I=90,'$jes-command'`| 35 | |Issue `$d u` every 24 hours from starting point 12:30 AM|`/$T A,T=00.30,I=86400,'$d u'`| 36 | |Issue MVS command `SEND 'message-text'` every 20 seconds|`/$T A,I=20,'$VS,''SEND ''message-text'''''`| 37 | |Cancel all automatic commands|`/$C A,ALL`| 38 | |Cancel automatic command with ID = 2|`/$C A2`| 39 | -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Azure DevOps with MF/images/Linux_agent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Azure DevOps with MF/images/Linux_agent.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Azure DevOps with MF/images/MS_Azure_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Azure DevOps with MF/images/MS_Azure_Logo.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Azure DevOps with MF/images/Pipeline_examples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Azure DevOps with MF/images/Pipeline_examples.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Jenkins plug-in solution for running JCL jobs on mainframes/README.md: -------------------------------------------------------------------------------- 1 | # IBM z/OS Connector Jenkins plugin 2 | 3 | **About** 4 | 5 | This plugin provides its functions via FTP connection to IBM z/OS LPAR. The main and most frequent function is to run JCL jobs on z/OS. Also, you can configure your SCLM project on z/OS and then check for the changes via Jenkins. 6 | 7 | **Plugin features:** 8 | * Submission of user JCL job (with optional log collected upon finish) 9 | * Introduction of SCLM as SCM for your projects allowing to checkout SCLM changes 10 | * The ability to build SCLM projects currently can be performed only via 'Submit zOS Job' build action 11 | 12 | **Link to official z/OS Connector plugin Jenkins hub:** https://plugins.jenkins.io/zos-connector/ 13 | 14 | **Installation** 15 | 16 | To install this plugin by [using our modified .hpi (source) file](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/Mainframe%20automation%20solutions%20and%20best%20practices/Jenkins%20plug-in%20solution%20(IBM%20zOS%20Connector)%20for%20running%20JCL%20jobs%20and%20manage%20SCLM%20on%20mainframes/zos-connector.hpi) from this repository, in Jenkins you need to switch to "Manage Jenkins" tab, then "Manage Plugins" (System Configuration) -> "Advanced" tab -> "Upload Plugin" section. 17 | 18 | **Configuration** 19 | 20 | `JESINTERFACELEVEL` differences. 21 | Job Name must be configured accordingly to your FTP server configuration: 22 | 23 | If ```JESINTERFACELEVEL=1``` is configured, only a job named ```USERIDx``` (```USERID``` - your z/OS user ID, ```x``` - strictly 1 character) can be processed correctly (when you are waiting for the job to end). 24 | If ```JESINTERFACELEVEL=2``` is configured, no additional considerations are required. 25 | 26 | **User guide (execution example)** 27 | 28 | To use this plugin, you don't need to pre-configure it in "Configure System" tab (System Configuration), except ```SCLM job header``` and ```SCLM job step``` settings. 29 | To get started, create Jenkins Freestyle job and in ```Build``` section, choose "Submit z/OS job". 30 | 31 | **Note:** Be sure to check JESINTERFACELEVEL, as well as in which ftp mode (active or passive) the plugin should work to communicate with your mainframe. To enable active ftp mode, select checkbox, next to the corresponding option. 32 | 33 | An example of filling in job fields and settings is below: 34 | 35 | ![alt text](img/1.png "Jenkins job example") 36 | 37 | Below is an example of a successful execution of "Helloworld" job: 38 | 39 | ![alt text](img/2.png "Jenkins job execution log example") -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Jenkins plug-in solution for running JCL jobs on mainframes/img/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Jenkins plug-in solution for running JCL jobs on mainframes/img/1.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Jenkins plug-in solution for running JCL jobs on mainframes/img/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Jenkins plug-in solution for running JCL jobs on mainframes/img/2.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Jenkins plug-in solution for running JCL jobs on mainframes/zos-connector.hpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Jenkins plug-in solution for running JCL jobs on mainframes/zos-connector.hpi -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Jira/Shell script to add a comment to a Jira issue/README.md: -------------------------------------------------------------------------------- 1 | # Shell script to add a comment to a Jira issue 2 | 3 | `addCommentToJira.sh` is intended to add a comment to a Jira issue. 4 | 5 | Please, make sure that the user has all the required access. 6 | 7 | **Instructions:** 8 | 9 | Execution format:: 10 | ``` 11 | >./addCommentToJira.sh [baseJiraURL] [jiraProjectKey] [issueID] [comment] [JiraUser] [JiraPassword] 12 | ``` 13 | ``` 14 | baseJiraURL host name of the Jira server. For example: jira.test.by 15 | jiraProjectKey Jira project key. For example: TEST 16 | issueID key and number of the issue. For example: TEST-19 17 | comment comment Json format to be added to Jira issue. For example 18 | '{"body":"test comment"}' 19 | JiraUser/JiraPassword auth information to connect to Jira 20 | ``` 21 | 22 | Example: 23 | ``` 24 | >./addCommentToJira.sh jira.test.by TEST TEST-19 '{"body":"test comment"}' jiraUser JiraPwd 25 | ``` 26 | 27 | [Link to shell script sources (addCommentToJira.sh)](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/tree/master/zOS%20System%20operating/Mainframe%20automation%20solutions%20and%20best%20practices/Jira/Shell%20script%20to%20add%20a%20comment%20to%20a%20Jira%20issue/addCommentToJira.sh) 28 | 29 | **`addCommentToJira.sh`** 30 | ```sh 31 | echo "reading input parameters" 32 | baseJiraURL=$1 33 | jiraProjectKey=$2 34 | issueID=$3 35 | comment=$4 36 | JiraUser=$5 37 | JiraPassword=$6 38 | 39 | PROJECT_PATH=${PWD} 40 | mkdir -p "${PROJECT_PATH}/$jiraProjectKey/$issueID" 41 | 42 | echo "baseJiraURL=${baseJiraURL}" 43 | echo "jiraProjectKey=${jiraProjectKey}" 44 | echo "issueID=${issueID}" 45 | 46 | curl -L --post301 -D- -u ${JiraUser}:${JiraPassword} -X POST --data "${comment}" -H "Content-type: application/json" -H "X-Atlassian-Token: nocheck" http://${baseJiraURL}/rest/api/2/issue/${issueID}/comment > ${PROJECT_PATH}/${jiraProjectKey}/${issueID}/comment.txt 47 | 48 | cd "${PROJECT_PATH}/${jiraProjectKey}" 49 | rm -r "${issueID}" 50 | ``` 51 | -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Jira/Shell script to add a comment to a Jira issue/addCommentToJira.sh: -------------------------------------------------------------------------------- 1 | echo "reading input parameters" 2 | baseJiraURL=$1 3 | jiraProjectKey=$2 4 | issueID=$3 5 | comment=$4 6 | JiraUser=$5 7 | JiraPassword=$6 8 | 9 | PROJECT_PATH=${PWD} 10 | mkdir -p "${PROJECT_PATH}/$jiraProjectKey/$issueID" 11 | 12 | echo "baseJiraURL=${baseJiraURL}" 13 | echo "jiraProjectKey=${jiraProjectKey}" 14 | echo "issueID=${issueID}" 15 | 16 | curl -L --post301 -D- -u ${JiraUser}:${JiraPassword} -X POST --data "${comment}" -H "Content-type: application/json" -H "X-Atlassian-Token: nocheck" http://${baseJiraURL}/rest/api/2/issue/${issueID}/comment > ${PROJECT_PATH}/${jiraProjectKey}/${issueID}/comment.txt 17 | 18 | cd "${PROJECT_PATH}/${jiraProjectKey}" 19 | rm -r "${issueID}" -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Jira/Shell script to add a file to the attachment area of a Jira issue/README.md: -------------------------------------------------------------------------------- 1 | # Shell script to add a file to the attachment area of a Jira issue 2 | 3 | `attachFileToJira.sh` is intended to add a file from the Linux machine to the attachment area of a Jira issue. 4 | 5 | **Instructions:** 6 | 7 | Execution format:: 8 | ``` 9 | $ sh attachFileToJira.sh [baseJiraURL] [issueID] [pathToFile] [jiraUser] [jiraPassword] 10 | ``` 11 | ``` 12 | baseJiraURL host name of the Jira server. For example: jira.test.by 13 | issueID key and number ofthe issue. For example: TEST-22 14 | pathToFile absolute or relative path to the file on the machine to be sent to Jira. 15 | jiraUser username to access to Jira 16 | jiraPassword password to access to Jira 17 | Do not use spaces in the file path 18 | ``` 19 | 20 | Example: 21 | ``` 22 | $ sh attachFileToJira.sh jira.test.by TEST-22 ..\README.txt 23 | ``` 24 | 25 | Output: 26 | 27 | In the log you will recieve the response from Jira server with the response code and JSON object, that describes the attachment. 28 | 29 | OK code is 200. 30 | 31 | JSON object should be not empty. 32 | 33 | [Link to shell script sources (attachFileToJira.sh)](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/tree/master/zOS%20System%20operating/Mainframe%20automation%20solutions%20and%20best%20practices/Jira/Shell%20script%20to%20add%20a%20file%20to%20the%20attachment%20area%20of%20a%20Jira%20issue/attachFileToJira.sh) 34 | 35 | **`attachFileToJira.sh`** 36 | ```sh 37 | #! /bin/bash 38 | 39 | echo reading parameters 40 | baseJiraURL=$1 41 | issueID=$2 42 | pathToFile=$3 43 | jiraUser=$4 44 | jiraPassword=$5 45 | 46 | echo $baseJiraURL 47 | echo $issueID 48 | echo $pathToFile 49 | 50 | echo sending post request to jira to attach a file to the issue 51 | # -L = redirection from IBM authoritation services 52 | # --post301 = keep sending the same post request after each redirection 53 | # -H "X-Atlassian-Token: nocheck" = to avoid Atlassian XSRF check failure 54 | 55 | curl -L --post301 -D- -u $jiraUser:$jiraPassword -X POST -H "X-Atlassian-Token: nocheck" -F "file=@$pathToFile" http://$baseJiraURL/rest/api/2/issue/$issueID/attachments 56 | 57 | ``` -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Jira/Shell script to add a file to the attachment area of a Jira issue/attachFileToJira.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo reading parameters 4 | baseJiraURL=$1 5 | issueID=$2 6 | pathToFile=$3 7 | jiraUser=$4 8 | jiraPassword=$5 9 | 10 | echo $baseJiraURL 11 | echo $issueID 12 | echo $pathToFile 13 | 14 | echo sending post request to jira to attach a file to the issue 15 | # -L = redirection from IBM authoritation services 16 | # --post301 = keep sending the same post request after each redirection 17 | # -H "X-Atlassian-Token: nocheck" = to avoid Atlassian XSRF check failure 18 | 19 | curl -L --post301 -D- -u $jiraUser:$jiraPassword -X POST -H "X-Atlassian-Token: nocheck" -F "file=@$pathToFile" http://$baseJiraURL/rest/api/2/issue/$issueID/attachments -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Jira/Shell script to change a Jira ticket status/README.md: -------------------------------------------------------------------------------- 1 | # Shell script to change a Jira ticket status 2 | 3 | `changeJiraTicketStatus.sh` is intended to change status to a Jira issue. 4 | 5 | Please, make sure that the user has all the required access. 6 | 7 | **Instructions:** 8 | 9 | Execution format:: 10 | ``` 11 | >./changeJiraTicketStatus.sh [baseJiraURL] [issueID] [newStatus] [JiraUser] [JiraPassword] 12 | ``` 13 | 14 | ``` 15 | baseJiraURL host name of the Jira server. For example: jira.test.by 16 | issueID key and number of the issue. For example: TEST-17 17 | newStatus ID of new status (in different Jira’s ID’s differ) 18 | JiraUser/JiraPassword auth information to connect to Jira 19 | ``` 20 | 21 | Example: 22 | ``` 23 | >./changeJiraTicketStatus.sh jira.test.by TEST-17 31 jiraUser JiraPwd 24 | ``` 25 | 26 | [Link to shell script sources (changeJiraTicketStatus.sh)](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/tree/master/zOS%20System%20operating/Mainframe%20automation%20solutions%20and%20best%20practices/Jira/Shell%20script%20to%20change%20a%20Jira%20ticket%20status/changeJiraTicketStatus.sh) 27 | 28 | **`changeJiraTicketStatus.sh`** 29 | ```sh 30 | echo "reading input parameters" 31 | baseJiraURL=$1 32 | issueID=$2 33 | newStatus=$3 34 | JiraUser=$4 35 | JiraPassword=$5 36 | resolvedStatus='{"transition": { "id": "'${newStatus}'" } }' 37 | 38 | echo "baseJiraURL=${baseJiraURL}" 39 | echo "issueID=${issueID}" 40 | 41 | curl -L --post301 -D- -u ${JiraUser}:${JiraPassword} -X POST --data "${resolvedStatus}" -H "Content-Type: application/json" http://${baseJiraURL}/rest/api/2/issue/${issueID}/transitions 42 | ``` 43 | 44 | ## Example: Сhange Jira ticket status from `TO DO` to `IN PROGRESS` 45 | 46 | The ID of each status, including the custom one, can be determined by viewing the html code of the Jira ticket page when selecting statuses. Because in different Jira’s ID’s differ, including for standard statuses. This is the fastest way to find them. 47 | 48 | ![ web developer console ](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/tree/master/zOS%20System%20operating/images/jira_ticket_statuses.png) 49 | 50 | We can save them in advance because they don't change: 51 | ``` 52 | def transitionToDo = [ transition: [ id: '11' ] ] 53 | def transitionInProgress = [ transition: [ id: '21' ] ] 54 | def transitionDone = [ transition: [ id: '31' ] ] 55 | ``` 56 | To change a ticket status from `TO DO` to `IN PROGRESS` 57 | ``` 58 | >./changeJiraTicketStatus.sh jira.test.by TEST-17 21 jiraUser JiraPwd 59 | ``` -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Jira/Shell script to change a Jira ticket status/changeJiraTicketStatus.sh: -------------------------------------------------------------------------------- 1 | echo "reading input parameters" 2 | baseJiraURL=$1 3 | issueID=$2 4 | newStatus=$3 5 | JiraUser=$4 6 | JiraPassword=$5 7 | resolvedStatus='{"transition": { "id": "'${newStatus}'" } }' 8 | 9 | echo "baseJiraURL=${baseJiraURL}" 10 | echo "issueID=${issueID}" 11 | 12 | curl -L --post301 -D- -u ${JiraUser}:${JiraPassword} -X POST --data "${resolvedStatus}" -H "Content-Type: application/json" http://${baseJiraURL}/rest/api/2/issue/${issueID}/transitions -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Jira/Shell script to track Jira ticket status/script.sh: -------------------------------------------------------------------------------- 1 | baseJiraURL=$1 2 | jiraUser=$2 3 | jiraPassword=$3 4 | issueID=$4 5 | path=$5 6 | optionSendMail=$6 7 | to=$7 8 | 9 | from=**EMAIL ADDRESS** 10 | emailPasswordForSendMail=**PASSWORD** 11 | 12 | function curlFunction { 13 | curl -L -D- -u $jiraUser:$jiraPassword -X GET -H "X-Atlassian-Token: nocheck" https://$baseJiraURL/rest/api/2/issue/$issueID?fields=status > /$path/result.txt 14 | value=`cat result.txt` 15 | } 16 | 17 | function parsingFunctionFirstMethod { 18 | value=`echo $value | sed 's/ /№/g'` 19 | my_arr=($(echo $value | tr "," "\n")) 20 | IFS='"' read -ra my_arr <<< "${my_arr[22]}" 21 | a=`echo "${my_arr[3]}"` 22 | status=`echo "${my_arr[3]}" | sed 's/№/ /g'` 23 | } 24 | 25 | function parsingFunctionSecondMethod { 26 | if grep -q "To Do" <<< "$value"; then 27 | status="To Do" 28 | elif grep -q "In Progress" <<< "$value"; then 29 | status="In Progress" 30 | elif grep -q "Done" <<< "$value"; then 31 | status="Done" 32 | fi 33 | } 34 | 35 | function sendMailToSlack { 36 | curl -X POST -H 'Content-type:application/json' --data "{\"text\":\"$msg\"}" https://hooks.slack.com/services/$to 37 | } 38 | 39 | function sendMailToEmail { 40 | { 41 | echo "From: \"Bot\" $from" 42 | echo "To: \"Alex\" $to" 43 | echo "Subject: Status has been changed" 44 | echo 45 | echo "$msg" 46 | } > mail.txt 47 | curl --ssl-reqd --url 'smtps://smtp.gmail.com:465' --user "$from:$emailPasswordForSendMail" --mail-from "$from" --mail-rcpt "$to" --upload-file mail.txt --insecure 48 | 49 | } 50 | 51 | function startApplication { 52 | echo `bash "$to" "$msg"` 53 | 54 | # Also it's possible to start different applications 55 | # `libreoffice --writer` 56 | } 57 | 58 | for((;;)) 59 | do 60 | curlFunction 61 | parsingFunctionSecondMethod 62 | previosSt="$status" 63 | 64 | sleep 10 65 | 66 | curlFunction 67 | parsingFunctionSecondMethod 68 | 69 | if [[ "$previosSt" != "$status" ]]; then 70 | msg="Status of $issueID ticket was changed from '$previosSt' to '$status'" 71 | # echo "$msg" 72 | if [[ "$optionSendMail" == slack ]]; then 73 | sendMailToSlack 74 | elif [[ "$optionSendMail" == email ]]; then 75 | sendMailToEmail 76 | elif [[ "$optionSendMail" == app ]]; then 77 | startApplication 78 | fi 79 | fi 80 | done -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Mainframe integration with Jenkins using USS agent/images/Fully automatic process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Mainframe integration with Jenkins using USS agent/images/Fully automatic process.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Mainframe integration with Jenkins using USS agent/images/Semi-automatic_process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Mainframe integration with Jenkins using USS agent/images/Semi-automatic_process.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Mainframe integration with Jenkins using USS agent/images/jenkins_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Mainframe integration with Jenkins using USS agent/images/jenkins_logo.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Mainframe troubleshooting platform - APPULSE/README.md: -------------------------------------------------------------------------------- 1 | # Mainframe troubleshooting platform - APPULSE 2 | 3 | 4 | **APPULSE** is a centralized support platform for business applications that run on z/OS servers. Designed for Level 5 | 1 and Level 2 support, APPULSE provides uninterrupted operation of critical business applications, resulting from 6 | proactive problem identification and resolution. 7 | 8 | [Link to official APPULSE page](https://appulse.info/) 9 | 10 | **Using APPULSE, you can:** 11 | * Digitize, accumulate, and share experience of your support team 12 | * Monitor distributed business applications from one entry point 13 | * Reuse previous solutions to resolve similar problems 14 | * Identify and classify operational problems in business applications at an early stage 15 | * Automatically create and assign tickets on problems for relevant support 16 | * Assess how a problem may impact your business 17 | 18 | ![](img/appulse-home-page.png) 19 | 20 | **APPULSE provides the implementation of the following features:** 21 | * Centralized support platform for users (L1/L2 Support), business applications, z/OS servers, LPARs, and 22 | subsystems 23 | * Flexibly configurable monitoring for operational problems in critical z/OS subsystems, including IMS, CI 24 | DB2, MQ, TWSz, and NetView FTP 25 | * Problem management, including 26 | * Automatic creation and assignment (Jira, Redmine, RTC, Gitlab, and Youtrack) 27 | * Mail and messenger notification (Slack, Telegram, and Viber) 28 | * Chat creation (Slack and Sametime) 29 | * Constant status feedback and prioritizing 30 | * AI module for solution generation with an option to execute on z/OS server 31 | * Business impact information 32 | * Easy mainframe business application support without using 3270 session 33 | 34 | ![](img/appulse-template.png) 35 | -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Mainframe troubleshooting platform - APPULSE/img/appulse-home-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Mainframe troubleshooting platform - APPULSE/img/appulse-home-page.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Mainframe troubleshooting platform - APPULSE/img/appulse-template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Mainframe troubleshooting platform - APPULSE/img/appulse-template.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Mainframe troubleshooting platform - APPULSE/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Mainframe troubleshooting platform - APPULSE/img/logo.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/README.md: -------------------------------------------------------------------------------- 1 | # Mainframe automation solutions and best practices 2 | 3 | **This repository contains information and examples of various automation solutions for modernizing z/OS workflows using best practices** 4 | 5 | **Repository content:** 6 | * [Jenkins plug-in solution for running JCL jobs](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/wiki/Jenkins-plug-in-solution-(IBM-zOS-Connector)-for-running-JCL-jobs-and-manage-SCLM-on-mainframes) 7 | * [SCLM to Git for zOS migration (COMING SOON, STAY TUNED)]() 8 | * [Zigi](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/wiki/Zigi) 9 | -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/SCLM to Git for zOS migration (COMING SOON, STAY TUNED)/Installing and configuring ANTz.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/SCLM to Git for zOS migration (COMING SOON, STAY TUNED)/Installing and configuring ANTz.md -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/SCLM to Git for zOS migration (COMING SOON, STAY TUNED)/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/SCLM to Git for zOS migration (COMING SOON, STAY TUNED)/README.md -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/SonarQube/img/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/SonarQube/img/img1.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/SonarQube/img/img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/SonarQube/img/img2.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Zigi/README.md: -------------------------------------------------------------------------------- 1 | # Zigi 2 | 3 | ## About 4 | 5 | Zigi is a freeware ISPF front-end tool for z/OS Git client. 6 | Written in REXX, provides user-friendly ISPF interface and transparent usage of native z/OS filesystem 7 | for handling local repositories. 8 | 9 | Using Git with configured webhooks and zigi as ISPF Git client allows automate the code development process 10 | for mainframes and include it to CI/CD. 11 | 12 | **Link to Zigi github repository:** [https://github.com/wizardofzos/zigi](https://github.com/wizardofzos/zigi) 13 | 14 | ## Installation 15 | 16 | 1. Install GIT on z/OS: download and install the Git package from Rocket Software. 17 | Go to [https://www.rocketsoftware.com/product-categories/mainframe/git-for-zos](https://www.rocketsoftware.com/product-categories/mainframe/git-for-zos) to get started. 18 | 2. From USS run the command to clone zigi-repository: 19 | 20 | ``` 21 | git clone git://github.com/wizardofzos/zigi.git 22 | ``` 23 | 24 | 3. Run the script 25 | 26 | ``` 27 | cd zigi 28 | ./zginstall.rex 29 | ``` 30 | 31 | ## Usage 32 | 1. Execute REXX-script ZIGI from ZIGI.EXEC to start working: 33 | 34 | Run command 35 | 36 | ![alt text](img/zigi-exec1.png "Run ZIGI option1") 37 | 38 | Or using 3.4, browse to the PDS USR.ZIGI.EXEC and enter EX for the member ZIGI, press enter: 39 | 40 | ![alt text](img/zigi-exec2.png "Run ZIGI option2") 41 | 42 | 43 | 2. Clone Git-repository to z/Os 44 | 45 | Copy SSH-link from Git-repository and fill the fields in the panel: 46 | ![alt text](img/zigi-clone.png "Clone Git-repository") 47 | 48 | 49 | 3. Add to index 50 | 51 | ![alt text](img/zigi-add-to-index.png "Add to index") 52 | 53 | 54 | 4. Commit changes 55 | 56 | ![alt text](img/zigi-commit1.png "Commit1") 57 | 58 | ![alt text](img/zigi-commit2.png "Commit2") 59 | 60 | ![alt text](img/zigi-commit3.png "Commit3") 61 | 62 | 63 | 5. Push changes to remote repository 64 | 65 | ![alt text](img/zigi-push1.png "Push") 66 | 67 | 68 | 5. The list of commands for local repository: 69 | ![alt text](img/zigi-local.png "Commands for local") 70 | 71 | 6. The list of commands for remote repository: 72 | ![alt text](img/zigi-remote.png "Commands for remote") 73 | -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-add-to-index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-add-to-index.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-clone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-clone.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-commit1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-commit1.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-commit2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-commit2.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-commit3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-commit3.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-exec1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-exec1.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-exec2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-exec2.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-local.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-local.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-push1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-push1.png -------------------------------------------------------------------------------- /zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-remote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Mainframe automation solutions and best practices/Zigi/img/zigi-remote.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Db2.md: -------------------------------------------------------------------------------- 1 | # This document contains useful day-to-day Omegamon for Db2 commands and scripts 2 | 3 | ## SDSF Omegamon for Db2 useful commands 4 | | Description | Command | 5 | |--------------------|:------------| 6 | | Show PROCLIBs on the current LPAR| ```/$D PROCLIB ``` | 7 | | Start STC| ```/S XXXX01S ``` | 8 | | Stop STC| ```/P XXXX01S ``` | 9 | | To execute a command from one LPAR on the another one| ```/RO RS28,P XXXX02S ``` | 10 | | Change timeout for workloads| ```/F MODIFY SSIDIRLM,SET,TIMEOUT=180,SSID``` | 11 | | Stop instance| ```/F XXXX01S,F PESERVER,P SSID ``` | 12 | | Start NTH (Near Term History) with the new attributes| ```/F XXXX01S,S H2WLMGR,OPTION=COPTSSID ``` | 13 | 14 | ## Working with Batch Reporting useful JCL script 15 | ``` 16 | //P27021RP JOB (7949,SYS),'DB2PTF',CLASS=A,MSGCLASS=K, 17 | // MSGLEVEL=(1,1),REGION=0M,NOTIFY=&SYSUID 18 | //* 19 | //* OMPE - REPORT GENERATION 20 | //* 21 | //DB2PMJB EXEC PGM=DB2PM 22 | //* On MCEVS6 – OMPE V510 23 | //STEPLIB DD DISP=SHR,DSN=DB2TOOLS.OME510.VS6RTE.RKANMOD.D12012 24 | //* 25 | //* !-------INPUTDSN 26 | //* v 27 | //INPUTDD DD DISP=SHR,DCB=BUFNO=50, 28 | // DSN=ONTOP.GS300.P27021.C624.SMF12234 //* 29 | //SYSOUT DD SYSOUT=* 30 | //JOBSUMDD DD SYSOUT=*, 31 | // DCB=BLKSIZE=133 32 | //MSGRPTDD 33 | // DCB=BLKSIZE=133 34 | //SYSPRINT DD SYSOUT=*, 35 | // DCB=BLKSIZE=133 36 | //SYSIN DD * 37 | GLOBAL TIMEZONE (+7:00) 38 | FROM (04/21/01,22:01:00.00) 39 | TO (04/21/01,23:01:00.00) 40 | INCLUDE (DB2ID(DSN7)) 41 | //* -Accounting Report Set- 42 | //* Based on DB2 accounting records (IFCID 3, 239) 43 | //* Contains local and distributed DB2 activity associated with a thread 44 | //* Contains DBRM/package accounting information 45 | ACCOUNTING 46 | REPORT LAYOUT (LONG) 47 | ORDER (CONNTYPE) 48 | EXCLUDE (PACKAGE(*)) 49 | TRACE TOP (10 ONLY INAPPLET) 50 | LAYOUT (LONG) 51 | REPORT LAYOUT(LONG) 52 | ORDER(PLANNAME) 53 | //* -Statistics Report Set- 54 | //* Based on DB2 Statistics records (IFCID 1,2, 225) 55 | //* A prime indicator for subsystem-related problems 56 | STATISTICS 57 | REPORT LAYOUT (LONG) 58 | TRACE LAYOUT (LONG) 59 | //*-System Parameters Report Set- 60 | //* Show configuration information of subsystem (ZPARM's) 61 | SYSPARMS 62 | TRACE 63 | EXEC 64 | ``` 65 | -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/How to create user in TEP/README.md: -------------------------------------------------------------------------------- 1 | # How to create user in TEP? 2 | 3 | 1. For the first start use **sysadmin** for **Logon ID** field: 4 | 5 | 6 | 7 | 2. Select **Administer Users** 8 | 9 | 10 | 11 | 3. Select row with **sysadmin** and press **Create Another user** 12 | 13 | 14 | 15 | 4. Insert **User ID** which you have for LPAR for z/OS and press **Find** 16 | 17 | 18 | 19 | 5. Select your UID from list and press OK. Change **User Name**. 20 | 21 | 22 | 23 | 6. Press OK. New user is created. 24 | 25 | 26 | 27 | Now you can run TEP using `tso_userID`. Only with `tso_userID` you can create, delete and modify datasets from TEP. -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/How to create user in TEP/img/1-logon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/How to create user in TEP/img/1-logon.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/How to create user in TEP/img/2-enterprise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/How to create user in TEP/img/2-enterprise.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/How to create user in TEP/img/3-create-another-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/How to create user in TEP/img/3-create-another-user.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/How to create user in TEP/img/4-specify-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/How to create user in TEP/img/4-specify-name.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/How to create user in TEP/img/5-specify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/How to create user in TEP/img/5-specify.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/How to create user in TEP/img/6-is-created.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/How to create user in TEP/img/6-is-created.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/How to send email using jcl and TEP/README.md: -------------------------------------------------------------------------------- 1 | # How to send email using jcl and TEP? 2 | 3 | 1. Create jcl like the following: 4 | [http://planetmvs.com/mvsmail/](http://planetmvs.com/mvsmail/) 5 | ``` 6 | //* E-MAIL TEMPLATE FOR NOTIFICATIONS 7 | //EMAILJOB JOB (EMAIL),'EMAIL', 8 | // CLASS=A,MSGCLASS=F, 9 | // MSGLEVEL=(1,1),TIME=60, 10 | // NOTIFY=&SYSUID,REGION=0M 11 | //SEND EXEC PGM=IEBGENER 12 | //SYSIN DD DUMMY 13 | //SYSPRINT DD SYSOUT=* 14 | //SYSOUT DD DUMMY 15 | //SYSUT2 DD SYSOUT=(B,SMTP) 16 | //SYSUT1 DD * 17 | HELO MVSHOST 18 | MAIL FROM: 19 | RCPT TO: 20 | DATA 21 | FROM: USER@HOST.COM 22 | TO: USER@HOST.COM 23 | SUBJECT: EMAIL_FROM_LPAR1 24 | TEXT 25 | /* 26 | ``` 27 | If you submit it you will get an email. 28 | 29 | 2. Open TEP with `tso_userID` 30 | 31 | 32 | 33 | 3. Select LPAR > Storage Subsystem > AGENT:STORAGE > Dataset Group Summary 34 | 35 | Right click on any row and select **Create Batch Job** 36 | 37 | 38 | 39 | 4. Insert jcl location: 40 | 41 | 42 | 43 | 5. Press Edit JCL if you want to change it. 44 | 6. Press OK. It will be submitted. 45 | 7. The result will be placed to **Storage Toolkit** workspace. 46 | 47 | 48 | 49 | Also, you can specify a situation and use Storage Toolkit for an action for it. So jcl will be submitted every time when the situation is triggered. -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/How to send email using jcl and TEP/img/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/How to send email using jcl and TEP/img/1.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/How to send email using jcl and TEP/img/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/How to send email using jcl and TEP/img/2.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/How to send email using jcl and TEP/img/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/How to send email using jcl and TEP/img/3.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/How to send email using jcl and TEP/img/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/How to send email using jcl and TEP/img/4.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/Modify data sets from TEP/README.md: -------------------------------------------------------------------------------- 1 | # OMEGAMON for Storage - modify data sets from TEP 2 | 3 | Data sets can be created/deleted/modified from TEP using Storage Toolkit actions. 4 | 1. Run TEP using tso_userID. 5 | 2. Go to one of the following workspaces: 6 | 7 | Dataset Group Summary > Dataset Group Primary Datasets **or** 8 | 9 | Dataset Attributes System Summary > Dataset Attributes Group Summary > Dataset Attributes Group Details. 10 | 3. Select one of Dataset Actions for any data set: 11 | 12 | 13 | 14 | 4. Select some parameters for action: 15 | 16 | 17 | 18 | 5. Select Command Type 19 | 20 | 21 | 22 | 6. JCL for action will be created. Press OK and JCL will be submitted on LPAR where Storage agent is started. 23 | 24 | 25 | 26 | 7. The result will be placed in Storage Toolkit workspace. Also you can find it in SDSF. 27 | 28 | 29 | 30 | The same actions can be performed using RDM. 31 | 32 | RDM can be run from Dataset Attributes System Summary workspace after collection completed. 33 | 34 | 35 | 36 | Some of that actions can be performed for groups: 37 | 38 | -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/1.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/2.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/3.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/4.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/5.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/6.png -------------------------------------------------------------------------------- /zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/Omegamon for Storage/Modify data sets from TEP/img/7.png -------------------------------------------------------------------------------- /zOS System operating/REXX Scripts/README.md: -------------------------------------------------------------------------------- 1 | # REXX Scripts 2 | 3 | **This repository contains REXX scripts for working with z/OS System** 4 | 5 | **Repository content:** 6 | * [REXX script for changing parameters values in config file](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/wiki/REXX-script-for-changing-parameters-values-in-config-file) 7 | * [REXX script for replacing substring in some members of dataset](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/wiki/REXX-script-for-replacing-substring-in-some-members-of-dataset) 8 | -------------------------------------------------------------------------------- /zOS System operating/REXX Scripts/REXX script for changing parameters values in config file/CHNGPARM: -------------------------------------------------------------------------------- 1 | /**************************** REXX *********************************/ 2 | parse arg parms 3 | /*parms=USR01.USRHLQ.CONFIG(USRVAR),PARM1/NEWVAL1,PARM2/NEWVAL2,..*/ 4 | parse var parms dataset','pairs 5 | pairs=strip(pairs) 6 | pairs=translate(pairs,' ',',') 7 | do i=1 to words(pairs) 8 | pairToProcess=word(pairs,i) 9 | call processPairs(pairToProcess) 10 | end 11 | exit 12 | 13 | processPairs: 14 | arg pairToProcess 15 | parameter=substr(pairToProcess,1,index(pairToProcess,'/')-1) 16 | newValue=substr(pairToProcess,index(pairToProcess,'/')+1) 17 | call processFile dataset parameter newValue 18 | return 19 | 20 | processFile: 21 | parse arg fileName parameter newValue 22 | address TSO 23 | drop lines. 24 | "ALLOC F(UPDATEDD) DA('"fileName"') OLD" 25 | "EXECIO * DISKR UPDATEDD (STEM lines. FINIS" 26 | do ix = 1 to lines.0 27 | parse var lines.ix strPrefix (parameter) strSuffix 28 | if strSuffix <> '' 29 | then do 30 | newLine=lines.ix 31 | sub1=substr(newLine,1,index(newLine,'=')+1) 32 | if pos("'",sub1)==0 then 33 | lines.ix=substr(newLine,1,index(newLine,'='))||newValue 34 | else 35 | lines.ix=substr(newLine,1,index(newLine,'=')+1)||newValue||"'" 36 | end 37 | else lines.ix = strPrefix 38 | end 39 | "EXECIO * DISKW UPDATEDD (STEM lines. FINIS" 40 | "FREE F(UPDATEDD)" 41 | return 42 | -------------------------------------------------------------------------------- /zOS System operating/REXX Scripts/REXX script for changing parameters values in config file/README.md: -------------------------------------------------------------------------------- 1 | # REXX script for changing parameters values in config file 2 | 3 | ** CHNGPARM was created to change parameters values in config file on z/OS ** 4 | 5 | [**Link to REXX script sources (CHNGPARM)**](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/REXX%20Scripts/REXX%20script%20for%20changing%20parameters%20values%20in%20config%20file/CHNGPARM) 6 | 7 | ** Script configuration before execution ** 8 | 1. Create configuration file like USR01.USRHLQ.CONFIG(USRVAR): 9 | 10 | ``` 11 | // SET PARM1=OLDVAL1 12 | // SET PARM2=OLDVAL2 13 | ``` 14 | 2. Put the script to your REXX-library 15 | 16 | 17 | **Execution:** 18 | 19 | Run JCL job with step: 20 | 21 | ``` 22 | //RUNSCRPT EXEC PGM=IKJEFT01,DYNAMNBR=30,REGION=0M, 23 | // PARM='CHNGPARM USR01.USRHLQ.CONFIG(USRVAR),PARM1/NEW1, 24 | // PARM2/NEW2' 25 | //SYSEXEC DD DSN=USR01.USRHLQ.REXX,DISP=SHR 26 | //SYSTSPRT DD SYSOUT=* 27 | //SYSTSIN DD DUMMY 28 | ``` 29 | 30 | * `USR01.USRHLQ.CONFIG(USRVAR)` - configuration file to be changed 31 | 32 | * `PARMn/NEWn` - NEWn is a new value of parameter PARMn 33 | -------------------------------------------------------------------------------- /zOS System operating/REXX Scripts/REXX script for replacing substring in some members of dataset/MASSREPL: -------------------------------------------------------------------------------- 1 | /* REXX */ 2 | trace off 3 | parse arg parms 4 | parms = translate(parms,' ',',') 5 | 6 | /*parms = 'USR01.USRHLQ.USRLIB &HLQ1 &HLQ2'*/ 7 | parse var parms dataset oldString newString 8 | 9 | /* Globals */ 10 | membersToProcess='MEMBER1 MEMBER2 MEMBER3 MEMBER4' 11 | /* End of globals */ 12 | 13 | /**************/ 14 | /* Main loop */ 15 | /**************/ 16 | say 'Start replacing substring 'oldString' by 'newString 17 | say 'in members of library 'dataset 18 | say 19 | do i=1 to words(membersToProcess) 20 | member = word(membersToProcess,i) 21 | fullname = dataset'('member')' 22 | say 'Process member 'member 23 | call processFile fullname oldString newString 24 | end 25 | say 'Processing completed' 26 | 27 | Return 28 | /**************************/ 29 | /* Update member contents */ 30 | /**************************/ 31 | processFile: 32 | parse arg fileName oldSubstr newSubstr 33 | 34 | address TSO 35 | drop lines. 36 | "ALLOC F(UPDATEDD) DA('"fileName"') OLD" 37 | "EXECIO * DISKR UPDATEDD (STEM lines. FINIS" 38 | occ = 0 39 | do ix = 1 to lines.0 40 | parse var lines.ix strPrefix (oldSubstr) strSuffix 41 | if strSuffix <> '' 42 | then do 43 | lines.ix = strPrefix || newSubstr || strSuffix 44 | occ = occ + 1 45 | end 46 | else lines.ix = strPrefix 47 | end 48 | 49 | "EXECIO * DISKW UPDATEDD (STEM lines. FINIS" 50 | "FREE F(UPDATEDD)" 51 | say occ 'occurrences processed' 52 | 53 | return 54 | -------------------------------------------------------------------------------- /zOS System operating/REXX Scripts/REXX script for replacing substring in some members of dataset/README.md: -------------------------------------------------------------------------------- 1 | # REXX script for replacing substring in some members of dataset 2 | 3 | ** MASSREPL was created to replace substring with new one in some members of dataset on z/OS ** 4 | 5 | [**Link to REXX script sources (MASSREPL)**](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/REXX%20Scripts/REXX%20script%20for%20replacing%20substring%20in%20some%20members%20of%20dataset/MASSREPL) 6 | 7 | ** Script configuration before execution ** 8 | 1. Replace dataset's members names MEMBER1,MEMBER2,.. with members you need: 9 | * `membersToProcess='MEMBER1 MEMBER2 MEMBER3 MEMBER4'` 10 | 2. Put the script to your REXX-library 11 | 12 | 13 | **Execution:** 14 | 15 | Run JCL job with step: 16 | 17 | ``` 18 | //RUNSCRPT EXEC PGM=IKJEFT01,DYNAMNBR=30,REGION=0M, 19 | // PARM='MASSREPL USR01.USRHLQ.USRLIB HLQ1 HLQ2' 20 | //SYSEXEC DD DSN=USR01.USRHLQ.REXX,DISP=SHR 21 | //SYSTSPRT DD SYSOUT=* 22 | //SYSTSIN DD DUMMY 23 | ``` 24 | 25 | * `USR01.USRHLQ.USRLIB` - dataset with members to be changed 26 | 27 | * `HLQ1 HLQ2` - substring HLQ1 to be replaced with substring HLQ2 28 | -------------------------------------------------------------------------------- /zOS System operating/SDSF commands.md: -------------------------------------------------------------------------------- 1 | # This document contains various day-to-day and rare SDSF commands. 2 | 3 | ## Navigation commands and filtering 4 | 5 | | Description |Command| 6 | |---------|:------------| 7 | | Show all the jobs |``` PRE * ```| 8 | | Show all the jobs with a JOBNAME starting with JOB_NAME |``` PRE JOB_NAME* ``` | 9 | | Show all the jobs by starting with JOB and ending with NAME |```PRE JOB%%NAME``` | 10 | | Filter data by owning user ID | `OWNER userid%`| 11 | | Locate a line or column |```LOCATE COLUMN_NAME``` | 12 | | Find a string A |```FIND A``` | 13 | | View a SDSF user/Owner |```WHO``` | 14 | | Show abended jobs |```FILTER MAX AB*``` | 15 | | Show all jobs that ended with JCL error |```FILTER MAX ‘JCL ERROR’``` | 16 | | Show jobs with exceptional conditions |```FILTER MAX NE ‘RC 0000’``` | 17 | | Show successfully completed jobs |```FILTER MAX EQ ‘RC 0000’``` | 18 | | Cancel all filters and show all jobs |```FILTER OFF``` | 19 | 20 | ## Printing 21 | Issue a line command ‘XDC‘ against the Job you want to copy in a dataset. You need to give the name of the dataset where you want to store the information. 22 | Suppose, you do not want to capture the entire spool output of the JCL but wish to only store the information of JESYSMSG or JESJCL or JESMSGLG, then you can just give ‘XDC’ in front of JESYSMSG or JESJCL or JESMSGLG respectively. 23 | 24 | | Description |Command| 25 | |---------|:------------| 26 | | Prints to a data set and closes the print file when the printing is done. Write this command on the left of JOBNAME | ```XDC``` | 27 | | Prints the output that you are browsing. This command entered from within browse | ```PRINT``` | 28 | 29 | ## Control cursor placement 30 | 31 | | Description |Command| 32 | |---------|:------------| 33 | | Keep the cursor on the row you are working with | ```SET CURSOR ON``` | 34 | | Return cursor to thecommand line | ```SET CURSOR TOP``` | 35 | | Scroll the log to the bottom every 15 seconds | ```BOT &15``` | 36 | 37 | ## How to see the jobs in Input Queue? 38 | In order to check the jobs present in the Input queue, you need to give option ‘I’ in the command input 39 | 40 | | Description |Command| 41 | |---------|:------------| 42 | | Check for all the jobs with the class A and C in Input Queue which are on hold | ```IAC H``` | 43 | | Check for all the jobs with the class A in Input Queue which are not on hold in |```IA NH``` | 44 | 45 | ## How to run a JCL directly from SPOOL area? 46 | Issue a line command ‘SJ‘ against the job you wish to run. You can edit the JCL here and submit it. 47 | Please note that editing of JCL here does not save the changes in the member where your JCL is present so you cannot physically SAVE the changes but only logical editing can be done. 48 | 49 | | Description |Command| 50 | |---------|:------------| 51 | | Run a JCL directly from SPOOL area | ```SJ``` | 52 | -------------------------------------------------------------------------------- /zOS System operating/SMPe/Automated build PTF via JCL + REXX template/PTFBLD (IN PROGRESS): -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /zOS System operating/SMPe/Automated build PTF via JCL + REXX template/USER01.SAMPLE.REXX/PTFGEN (IN PROGRESS): -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /zOS System operating/SMPe/How to check if the APAR was installed/README.md: -------------------------------------------------------------------------------- 1 | # How to check if the APAR was installed? 2 | 3 | 1. From ISPF Primary Option Menu choose **SMP/E** SMP/E PRIMARY OPTION MENU 4 | 5 | 6 | 7 | 2. Select: **2** CROSS-ZONE QUERY 8 | 9 | 10 | 11 | The result: 12 | 13 | -------------------------------------------------------------------------------- /zOS System operating/SMPe/How to check if the APAR was installed/img/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/How to check if the APAR was installed/img/result.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/How to check if the APAR was installed/img/smpe-query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/How to check if the APAR was installed/img/smpe-query.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/How to check if the APAR was installed/img/specify-apar-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/How to check if the APAR was installed/img/specify-apar-name.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/JCL job for installing PTF in the SMPe distribution libraries/ACCPTPTF: -------------------------------------------------------------------------------- 1 | //ACCPTPTF JOB 2 | //*---------------------------------------------------- 3 | //* THIS JOB IS USED TO INSTALL PTF IN THE SMP/E 4 | //* DISTRIBUTION LIBRARIES 5 | //* 6 | //* INSTRUCTIONS: 7 | //* CHANGE SMPEHLQ TO THE HLQ YOU NEED 8 | //* CHANGE PTFNAME WITH YOUR PTF NAME 9 | //* 10 | //*---------------------------------------------------- 11 | //EX EXPORT SYMLIST=(SMPEHLQ,PTFNAME) 12 | // SET SMPEHLQ=#SMPE HLQ# 13 | // SET PTFNAME=#PTF NAME HERE# 14 | // SET SPACE3='UNIT=VIO,SPACE=(CYL,(5,1,8))' 15 | //* 16 | //*--------------------------------------------------------------------- 17 | //* THIS JOB ACCEPTS PTF 18 | //*--------------------------------------------------------------------- 19 | //ACPTPTF EXEC PGM=GIMSMP,REGION=0M 20 | //SMPLOG DD SYSOUT=* 21 | //SMPLOGA DD SYSOUT=* 22 | //SMPCSI DD DSN=&SMPEHLQ..GB.CSI,DISP=SHR 23 | //SYSUT1 DD &SPACE3 24 | //SYSUT2 DD &SPACE3 25 | //SYSUT3 DD &SPACE3 26 | //SYSUT4 DD &SPACE3 27 | //SMPWRK1 DD &SPACE3 28 | //SMPWRK2 DD &SPACE3 29 | //SMPWRK3 DD &SPACE3 30 | //SMPWRK4 DD &SPACE3 31 | //SMPWRK5 DD &SPACE3 32 | //SMPWRK6 DD &SPACE3 33 | //SMPOUT DD SYSOUT=* 34 | //SMPRPT DD SYSOUT=* 35 | //SMPLIST DD SYSOUT=* 36 | //SYSPRINT DD SYSOUT=* 37 | //SMPCNTL DD *,SYMBOLS=(JCLONLY,SUBST) 38 | SET BDY (DZONE). 39 | ACCEPT SELECT(&PTFNAME.) . 40 | /* -------------------------------------------------------------------------------- /zOS System operating/SMPe/JCL job for installing PTF in the SMPe distribution libraries/README.md: -------------------------------------------------------------------------------- 1 | # JCL job to install PTF in the SMP/e distribution libraries 2 | 3 | **`ACCPTPTF` - This JCL job is used to install PTF in the SMP/E `DISTRIBUTION libraries`** 4 | 5 | [**Link to clone/download from the repository**](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/SMPe/JCL%20job%20for%20installing%20PTF%20in%20the%20SMPe%20distribution%20libraries/ACCPTPTF) 6 | 7 | ``` 8 | //ACCPTPTF JOB 9 | //*---------------------------------------------------- 10 | //* THIS JOB IS USED TO INSTALL PTF IN THE SMP/E 11 | //* DISTRIBUTION LIBRARIES 12 | //* 13 | //* INSTRUCTIONS: 14 | //* CHANGE SMPEHLQ TO THE HLQ YOU NEED 15 | //* CHANGE PTFNAME WITH YOUR PTF NAME 16 | //* 17 | //*---------------------------------------------------- 18 | //EX EXPORT SYMLIST=(SMPEHLQ,PTFNAME,SPACE3) 19 | // SET SMPEHLQ=#SMPE HLQ# 20 | // SET PTFNAME=#PTF NAME HERE# 21 | // SET SPACE3='UNIT=VIO,SPACE=(CYL,(5,1,8))' 22 | //* 23 | //*--------------------------------------------------------------------- 24 | //* THIS JOB ACCEPTS PTF 25 | //*--------------------------------------------------------------------- 26 | //ACPTPTF EXEC PGM=GIMSMP,REGION=0M 27 | //SMPLOG DD SYSOUT=* 28 | //SMPLOGA DD SYSOUT=* 29 | //SMPCSI DD DSN=&SMPEHLQ..GB.CSI,DISP=SHR 30 | //SYSUT1 DD &SPACE3 31 | //SYSUT2 DD &SPACE3 32 | //SYSUT3 DD &SPACE3 33 | //SYSUT4 DD &SPACE3 34 | //SMPWRK1 DD &SPACE3 35 | //SMPWRK2 DD &SPACE3 36 | //SMPWRK3 DD &SPACE3 37 | //SMPWRK4 DD &SPACE3 38 | //SMPWRK5 DD &SPACE3 39 | //SMPWRK6 DD &SPACE3 40 | //SMPOUT DD SYSOUT=* 41 | //SMPRPT DD SYSOUT=* 42 | //SMPLIST DD SYSOUT=* 43 | //SYSPRINT DD SYSOUT=* 44 | //SMPCNTL DD *,SYMBOLS=(JCLONLY,SUBST) 45 | SET BDY (DZONE). 46 | ACCEPT CHECK SELECT(&PTFNAME.) . 47 | /* 48 | ``` -------------------------------------------------------------------------------- /zOS System operating/SMPe/JCL job for installing PTF in the SMPe target libraries/APPLYPTF: -------------------------------------------------------------------------------- 1 | //APPLYPTF JOB 2 | //*---------------------------------------------------- 3 | //* THIS JOB IS USED TO INSTALL PTF IN THE SMP/E 4 | //* TARGET LIBRARIES 5 | //* 6 | //* INSTRUCTIONS: 7 | //* CHANGE SMPEHLQ TO THE HLQ YOU NEED 8 | //* CHANGE PTFNAME WITH YOUR PTF NAME 9 | //* 10 | //*---------------------------------------------------- 11 | //EX EXPORT SYMLIST=(SMPEHLQ,PTFNAME) 12 | // SET SMPEHLQ=#SMPE HLQ# 13 | // SET PTFNAME=#PTF NAME HLQ# 14 | // SET SPACE3='UNIT=VIO,SPACE=(CYL,(5,1,8))' 15 | //* 16 | //*--------------------------------------------------------------------- 17 | //* THIS JOB APPLIES PTF 18 | //*--------------------------------------------------------------------- 19 | //APPLPTF EXEC PGM=GIMSMP,REGION=0M 20 | //SMPLOG DD SYSOUT=* 21 | //SMPLOGA DD SYSOUT=* 22 | //SMPCSI DD DSN=&SMPEHLQ..GB.CSI,DISP=SHR 23 | //SYSUT1 DD &SPACE3 24 | //SYSUT2 DD &SPACE3 25 | //SYSUT3 DD &SPACE3 26 | //SYSUT4 DD &SPACE3 27 | //SMPWRK1 DD &SPACE3 28 | //SMPWRK2 DD &SPACE3 29 | //SMPWRK3 DD &SPACE3 30 | //SMPWRK4 DD &SPACE3 31 | //SMPWRK5 DD &SPACE3 32 | //SMPWRK6 DD &SPACE3 33 | //SMPOUT DD SYSOUT=* 34 | //SMPRPT DD SYSOUT=* 35 | //SMPLIST DD SYSOUT=* 36 | //SYSPRINT DD SYSOUT=* 37 | //SMPCNTL DD *,SYMBOLS=(JCLONLY,SUBST) 38 | SET BDY (TZONE). 39 | APPLY SELECT(&PTFNAME.) . 40 | /* -------------------------------------------------------------------------------- /zOS System operating/SMPe/JCL job for installing PTF in the SMPe target libraries/README.md: -------------------------------------------------------------------------------- 1 | # JCL job to install PTF in the SMP/e target libraries 2 | 3 | **`APPLYPTF` - This JCL job is used to install PTF in the SMP/E `TARGET libraries`** 4 | 5 | [**Link to clone/download from the repository**](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/SMPe/JCL%20job%20for%20installing%20PTF%20in%20the%20SMPe%20target%20libraries/APPLYPTF) 6 | 7 | ``` 8 | //APPLYPTF JOB 9 | //*---------------------------------------------------- 10 | //* THIS JOB IS USED TO INSTALL PTF IN THE SMP/E 11 | //* TARGET LIBRARIES 12 | //* 13 | //* INSTRUCTIONS: 14 | //* CHANGE SMPEHLQ TO THE HLQ YOU NEED 15 | //* CHANGE PTFNAME WITH YOUR PTF NAME 16 | //* 17 | //*---------------------------------------------------- 18 | //EX EXPORT SYMLIST=(SMPEHLQ,PTFNAME,SPACE3) 19 | // SET SMPEHLQ=#SMPE HLQ# 20 | // SET PTFNAME=#PTF NAME HLQ# 21 | // SET SPACE3='UNIT=VIO,SPACE=(CYL,(5,1,8))' 22 | //* 23 | //*--------------------------------------------------------------------- 24 | //* THIS JOB APPLIES PTF 25 | //*--------------------------------------------------------------------- 26 | //APPLPTF EXEC PGM=GIMSMP,REGION=0M 27 | //SMPLOG DD SYSOUT=* 28 | //SMPLOGA DD SYSOUT=* 29 | //SMPCSI DD DSN=&SMPEHLQ..GB.CSI,DISP=SHR 30 | //SYSUT1 DD &SPACE3 31 | //SYSUT2 DD &SPACE3 32 | //SYSUT3 DD &SPACE3 33 | //SYSUT4 DD &SPACE3 34 | //SMPWRK1 DD &SPACE3 35 | //SMPWRK2 DD &SPACE3 36 | //SMPWRK3 DD &SPACE3 37 | //SMPWRK4 DD &SPACE3 38 | //SMPWRK5 DD &SPACE3 39 | //SMPWRK6 DD &SPACE3 40 | //SMPOUT DD SYSOUT=* 41 | //SMPRPT DD SYSOUT=* 42 | //SMPLIST DD SYSOUT=* 43 | //SYSPRINT DD SYSOUT=* 44 | //SMPCNTL DD *,SYMBOLS=(JCLONLY,SUBST) 45 | SET BDY (TZONE). 46 | APPLY SELECT(&PTFNAME.) . 47 | /* 48 | ``` -------------------------------------------------------------------------------- /zOS System operating/SMPe/JCL job for loading PTF information into global zone and SMPe datasets/RECVPTF: -------------------------------------------------------------------------------- 1 | //RECVPTF JOB 2 | //*---------------------------------------------------- 3 | //* THIS JOB IS USED TO LOAD PTF INFORMATION 4 | //* INTO GLOBAL ZONE AND SMP/E DATASETS 5 | //* 6 | //* INSTRUCTIONS: 7 | //* CHANGE SMPEHLQ TO THE HLQ YOU NEED 8 | //* CHANGE PTFNAME WITH YOUR PTF NAME 9 | //* CHANGE PTFHLQ TO THE PTF HLQ YOU NEED 10 | //*---------------------------------------------------- 11 | //EX EXPORT SYMLIST=(SMPEHLQ,PTFNAME,PTFHLQ) 12 | // SET SMPEHLQ=#SMPE HLQ# 13 | // SET PTFNAME=#PTF NAME HERE# 14 | // SET PTFHLQ=#PTF HLQ HERE# 15 | // SET SPACE3='UNIT=VIO,SPACE=(CYL,(5,1,8))' 16 | //* 17 | //*--------------------------------------------------------------------- 18 | //* THIS JOB RECEIVES PTF INTO GLOBAL ZONE 19 | //*--------------------------------------------------------------------- 20 | //RECVPTF EXEC PGM=GIMSMP,COND=(0,NE),REGION=0M 21 | //SMPLOG DD SYSOUT=* 22 | //SMPLOGA DD SYSOUT=* 23 | //SMPCSI DD DSN=&SMPEHLQ..GB.CSI,DISP=SHR 24 | //SYSUT1 DD &SPACE3 25 | //SYSUT2 DD &SPACE3 26 | //SYSUT3 DD &SPACE3 27 | //SYSUT4 DD &SPACE3 28 | //SMPWRK1 DD &SPACE3 29 | //SMPWRK2 DD &SPACE3 30 | //SMPWRK3 DD &SPACE3 31 | //SMPWRK4 DD &SPACE3 32 | //SMPWRK5 DD &SPACE3 33 | //SMPWRK6 DD &SPACE3 34 | //SMPOUT DD SYSOUT=* 35 | //SMPOUT DD SYSOUT=* 36 | //SMPRPT DD SYSOUT=* 37 | //SMPLIST DD SYSOUT=* 38 | //SYSPRINT DD SYSOUT=* 39 | //SUBST DD SYSOUT=* 40 | //SMPPTFIN DD DSN=&PTFHLQ..&PTFNAME.,DISP=SHR 41 | //SMPCNTL DD *,SYMBOLS=(JCLONLY,SUBST) 42 | SET BDY (GLOBAL). 43 | RECEIVE SYSMODS SELECT(&PTFNAME.) . 44 | /* -------------------------------------------------------------------------------- /zOS System operating/SMPe/JCL job for rejecting PTF to clean up the global zone/README.md: -------------------------------------------------------------------------------- 1 | # JCL job for rejecting PTF to clean up the global zone 2 | 3 | **`REJCTPTF` - This JCL job is used to reject PTF to clean up the `GLOBAL ZONE`** 4 | 5 | [**Link to clone/download from the repository**](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/SMPe/JCL%20job%20for%20rejecting%20PTF%20to%20clean%20up%20the%20global%20zone/REJCTPTF) 6 | 7 | ``` 8 | //REJCTPTF JOB 9 | //*---------------------------------------------------- 10 | //* THIS JOB IS USED TO REJECT PTF TO CLEAN UP 11 | //* THE GLOBAL ZONE 12 | //* 13 | //* INSTRUCTIONS: 14 | //* CHANGE SMPEHLQ TO THE HLQ YOU NEED 15 | //* CHANGE PTFNAME WITH YOUR PTF NAME 16 | //* 17 | //*---------------------------------------------------- 18 | //EX EXPORT SYMLIST=(SMPEHLQ,PTFNAME,SPACE3) 19 | // SET SMPEHLQ=#SMPE HLQ# 20 | // SET PTFNAME=#PTF NAME HERE# 21 | // SET SPACE3='UNIT=VIO,SPACE=(CYL,(5,1,8))' 22 | //* 23 | //*--------------------------------------------------------------------- 24 | //* THIS JOB REJECTS PTF FROM GLOBAL ZONE 25 | //*--------------------------------------------------------------------- 26 | //REJPTF EXEC PGM=GIMSMP,COND=(0,NE),REGION=0M 27 | //SMPLOG DD SYSOUT=* 28 | //SMPLOGA DD SYSOUT=* 29 | //SMPCSI DD DSN=&SMPEHLQ..GB.CSI,DISP=SHR 30 | //SMPPTS DD DSN=&SMPEHLQ..SMPPTS,DISP=SHR 31 | //SYSUT1 DD &SPACE3 32 | //SMPOUT DD SYSOUT=* 33 | //SMPRPT DD SYSOUT=* 34 | //SYSPRINT DD SYSOUT=* 35 | //SMPCNTL DD *,SYMBOLS=(JCLONLY,SUBST) 36 | SET BDY (GLOBAL). 37 | REJECT S(&PTFNAME.) BYPASS(APPLYCHECK) . 38 | /* 39 | ``` -------------------------------------------------------------------------------- /zOS System operating/SMPe/JCL job for rejecting PTF to clean up the global zone/REJCTPTF: -------------------------------------------------------------------------------- 1 | //REJCTPTF JOB 2 | //*---------------------------------------------------- 3 | //* THIS JOB IS USED TO REJECT PTF TO CLEAN UP 4 | //* THE GLOBAL ZONE 5 | //* 6 | //* INSTRUCTIONS: 7 | //* CHANGE SMPEHLQ TO THE HLQ YOU NEED 8 | //* CHANGE PTFNAME WITH YOUR PTF NAME 9 | //* 10 | //*---------------------------------------------------- 11 | //EX EXPORT SYMLIST=(SMPEHLQ,PTFNAME) 12 | // SET SMPEHLQ=#SMPE HLQ# 13 | // SET PTFNAME=#PTF NAME HERE# 14 | // SET SPACE3='UNIT=VIO,SPACE=(CYL,(5,1,8))' 15 | //* 16 | //*--------------------------------------------------------------------- 17 | //* THIS JOB REJECTS PTF FROM GLOBAL ZONE 18 | //*--------------------------------------------------------------------- 19 | //REJPTF EXEC PGM=GIMSMP,COND=(0,NE),REGION=0M 20 | //SMPLOG DD SYSOUT=* 21 | //SMPLOGA DD SYSOUT=* 22 | //SMPCSI DD DSN=&SMPEHLQ..GB.CSI,DISP=SHR 23 | //SMPPTS DD DSN=&SMPEHLQ..SMPPTS,DISP=SHR 24 | //SYSUT1 DD &SPACE3 25 | //SMPOUT DD SYSOUT=* 26 | //SMPRPT DD SYSOUT=* 27 | //SYSPRINT DD SYSOUT=* 28 | //SMPCNTL DD *,SYMBOLS=(JCLONLY,SUBST) 29 | SET BDY (GLOBAL). 30 | REJECT S(&PTFNAME.) BYPASS(APPLYCHECK) . 31 | /* -------------------------------------------------------------------------------- /zOS System operating/SMPe/JCL job for restoring PTF to clean up the target zone/RESTRPTF: -------------------------------------------------------------------------------- 1 | //RESTRPTF JOB 2 | //*---------------------------------------------------- 3 | //* THIS JOB IS USED TO RESTORE PTF TO CLEAN UP 4 | //* THE TARGET ZONE 5 | //* 6 | //* INSTRUCTIONS: 7 | //* CHANGE SMPEHLQ TO THE HLQ YOU NEED 8 | //* CHANGE PTFNAME WITH YOUR PTF NAME 9 | //* 10 | //*---------------------------------------------------- 11 | //EX EXPORT SYMLIST=(SMPEHLQ,PTFNAME) 12 | // SET SMPEHLQ=#SMPE HLQ# 13 | // SET PTFNAME=#PTF NAME HLQ# 14 | // SET SPACE3='UNIT=VIO,SPACE=(CYL,(5,1,8))' 15 | //* 16 | //*--------------------------------------------------------------------- 17 | //* THIS JOB RESTORES PTF 18 | //*--------------------------------------------------------------------- 19 | //RESTPTF EXEC PGM=GIMSMP,COND=(0,NE),REGION=0M 20 | //SMPLOG DD SYSOUT=* 21 | //SMPLOGA DD SYSOUT=* 22 | //SMPCSI DD DSN=&SMPEHLQ..GB.CSI,DISP=SHR 23 | //SMPMTS DD DSN=&SMPEHLQ..SMPMTS,DISP=SHR 24 | //SMPPTS DD DSN=&SMPEHLQ..SMPPTS,DISP=SHR 25 | //SMPSCDS DD DSN=&SMPEHLQ..SMPSCDS,DISP=SHR 26 | //SMPSTS DD DSN=&SMPEHLQ..SMPSTS,DISP=SHR 27 | //SYSUT1 DD &SPACE3 28 | //SYSUT2 DD &SPACE3 29 | //SYSUT3 DD &SPACE3 30 | //SYSUT4 DD &SPACE3 31 | //SMPWRK1 DD &SPACE3 32 | //SMPWRK2 DD &SPACE3 33 | //SMPWRK3 DD &SPACE3 34 | //SMPWRK4 DD &SPACE3 35 | //SMPOUT DD SYSOUT=* 36 | //SMPRPT DD SYSOUT=* 37 | //SMPLIST DD SYSOUT=* 38 | //SYSPRINT DD SYSOUT=* 39 | //SMPCNTL DD *,SYMBOLS=(JCLONLY,SUBST) 40 | SET BDY (TZONE). 41 | RESTORE S(&PTFNAME.). 42 | /* -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/README.md: -------------------------------------------------------------------------------- 1 | # What should you do if RECEIVE ends with RC=12? 2 | 3 | Sometimes during SMP/e installing RECEIVE step can end with RC=12 and the following message: 4 | ``` 5 | GIM44013I SYSTEM ABENO E37 OCCURRED WITH A REASON CODE OF '00000004'x AFTER S 6 | SMPPTS LIBRARY RAN OUT OF SPACE. THE LIBRARY IS NOT ELIGIBLE FOR RE 7 | GIM48300S ** SYSMOD sysmod COULD NOT BE SAVED IN THE SMPPTS LIBRARY BECAUSE IT 8 | GIM24801W NO SYSMODS SATISFIED THE OPERANDS SPECIFIED ON THE RECEIVE COMMAND. 9 | GIM20501I RECEIVE PROCESSING IS COMPLETE. THZ HIGHEST RETURN CODE WAS 12. 10 | 11 | GIM20502I SMP/E PROCESSING IS COMPLETE. THE HIGHEST RETURN COOE WAS 12 12 | ``` 13 | 14 | This happens because SMPPTS library ran out of space. So, you need to recreate it with grater space. 15 | 16 | ## Step 1. Find out SMPPTS library name 17 | 18 | Go to **3.4** (DSLIST utility) and select your CSI 19 | 20 | 21 | 22 | Now you know SMPPTS library name 23 | 24 | 25 | 26 | ## Step 2. Create new SMPPTS library 27 | 28 | Use **3.2** option (Data Set utility) 29 | 30 | 31 | 32 | Enter current SMPPTS name 33 | 34 | 35 | 36 | Press Enter and you will see Data Set Information 37 | 38 | 39 | 40 | Press F3 and then enter new name and select “A” for allocate option 41 | 42 | 43 | 44 | You will see the same parameters for new library. You need to change **Primary quantity** and **Secondary quantity** to do they bigger. 45 | 46 | 47 | 48 | ## Step 3. Copy members from the current library to the new library 49 | 50 | * 51 | 52 | * 53 | 54 | * 55 | 56 | * 57 | 58 | ## Step 4. Rename libraries 59 | 60 | 61 | 62 | Now, you have SMPPTS library with the same name but bigger space. So, RECEIVE should end with RC=0. 63 | -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/copy-members.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/copy-members.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/copy-to-your-new-smppts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/copy-to-your-new-smppts.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/create-new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/create-new.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/csi-ds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/csi-ds.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/find-old-smppts-lib.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/find-old-smppts-lib.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/primary-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/primary-menu.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/rename-libs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/rename-libs.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/select-all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/select-all.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/smppts-ds-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/smppts-ds-info.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/smppts-lib-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/smppts-lib-name.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/specify-ds-parms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/specify-ds-parms.png -------------------------------------------------------------------------------- /zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/specify-smppts-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/SMPe/What should you do if RECEIVE ends with RC=12/img/specify-smppts-name.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How do I automate the submission of a job at regular intervals.md: -------------------------------------------------------------------------------- 1 | # How do I automate the submission of a job at regular intervals? 2 | 3 | 1. Create the `SUBJOB` member in your PROCLIB library (for instance, `SYS1.PROCLIB`) 4 | 5 | *Note:* You can call it any name you like. We will need this name in the next steps. 6 | 7 | 2. Write the following JCL into it: 8 | ``` 9 | //SUBJOB PROC CLASS='A', <- default input job class 10 | // LIST='*', <- default SYSPRINT class 11 | // LIB='USER01.JCLLIB', <- default JCL library name 12 | // MEM=SMFCLEAR <- default member name 13 | //* 14 | //IEFPROC EXEC PGM=IEBEDIT 15 | //SYSPRINT DD SYSOUT=&LIST 16 | //SYSUT1 DD DDNAME=IEFRDER 17 | //SYSUT2 DD SYSOUT=(&CLASS,INTRDR),DCB=BLKSIZE=80 18 | //SYSIN DD DUMMY 19 | //IEFRDER DD DISP=SHR,DSN=&LIB.(&MEM.) 20 | ``` 21 | The SUBJOB procedure will read the library name and the member name given and pass the content of that library member to the jcl internal reader. Thus, the job can be submitted for execution. 22 | 23 | 3. Now let's prepare a command to submit the job from a library. 24 | ``` 25 | S SUBJOB,LIB=#jcl_lib,MEM=#lib_member 26 | ``` 27 | *Note*: 28 | * `SUBJOB` is the proclib member name we specified in the first step 29 | * `#jcl_lib` is the name of the JCL library 30 | * `#lib_member` is the name of the library member where the job is placed 31 | * The parameters can be omitted if we are going to submit the job that was set by default 32 | 33 | 4. Now we can use the automatic JES commands to schedule job submitting. For instance, submit a job every 20 seconds. 34 | ``` 35 | /$T A,I=20,'$VS,''S SUBJOB,LIB=''#jcl_lib'',MEM=#lib_member'' ' 36 | ``` 37 | 38 | ### How to use the automatic JES commands 39 | 40 | When you code this command, JES2 establishes a starting point `T(hhh.mm)` (when to begin issuing a command), and an interval `I(sssss)` (when to repeat a command). 41 | 42 | | Description | Command | 43 | |-------------------|:-----------------| 44 | |Display automatic commands you are authorized to see|`/$T A,ALL`| 45 | |Issue `$jes-command` every 90 seconds|`/$T A,I=90,'$jes-command'`| 46 | |Issue `$d u` every 24 hours from starting point 12:30 AM|`/$T A,T=00.30,I=86400,'$d u'`| 47 | |Issue MVS command `SEND 'message-text'` every 20 seconds|`/$T A,I=20,'$VS,''SEND ''message-text'''''`| 48 | |Cancel all automatic commands|`/$C A,ALL`| 49 | |Cancel automatic command with ID = 2|`/$C A2`| 50 | 51 | For more information on the automatic JES commands - [IBM documentation](https://www.ibm.com/docs/en/zos/2.3.0?topic=section-t-display-specify-modify-automatic-commands) -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How do I dynamically authorize a library (APF).md: -------------------------------------------------------------------------------- 1 | # How do I dynamically authorize a library (APF)? 2 | 3 | To authorize a library use the following commands from SDSF: 4 | 5 | 1. For open “System Command Extension” use: `/+` 6 | 7 | 8 | 9 | Now a very long command can be entered. It is useful if the library name is too long. 10 | 11 | 2. `SETPROG APF,add,library=LIBNAME.QA.MODL,volume=VOLNAME` 12 | -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to compare two data sets interactively/README.MD: -------------------------------------------------------------------------------- 1 | # How to compare two data sets interactively? 2 | It is possible to compare two non-VSAM datasets interactively. 3 | 4 | 1. Go to one of the datasets in `edit` or `view` mode 5 | 2. Enter the command: 6 | 7 | ``` 8 | comp '#name of another dataset' excluded 9 | ``` 10 | 11 | For instance, there are two datasets that differ in only one record. 12 | 13 | 14 | 15 | ![member1](images/compare-member1.png) 16 | 17 | Enter the command 18 | 19 | ![command](images/compare-command.png) 20 | 21 | We get the result 22 | 23 | ![result](images/compare-result.png) -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to compare two data sets interactively/images/compare-command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to compare two data sets interactively/images/compare-command.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to compare two data sets interactively/images/compare-member1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to compare two data sets interactively/images/compare-member1.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to compare two data sets interactively/images/compare-member2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to compare two data sets interactively/images/compare-member2.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to compare two data sets interactively/images/compare-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to compare two data sets interactively/images/compare-result.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to convert hexadecimal date to a readable date on zOS.md: -------------------------------------------------------------------------------- 1 | # How to convert hexadecimal date to a readable date on z/OS? 2 | If you need to convert hexadecimal time to regular format, you can use the REXX exec in the TOD member of the SYS1.SBLSCLI0 data set, which belongs to the MVS Interactive Problem Control System (IPCS) 3 | 4 | Command syntax: 5 | ``` 6 | TOD STCK_TIME {, TIME_ZONE} 7 | STCK_TIME: A STRING OF HEXADECMIAL DIGITS 8 | TIME_ZONE: NUMBER OF HOURS EAST(-)/WEST(+) OF GMT 9 | ``` 10 | For instance, the following exec statement converts the value of 7A273F: 11 | ``` 12 | TSO TOD 7A273F 13 | or 14 | TSO EXEC ‘SYS1.SBLSCLI0(TOD)’ ‘7A273F’ 15 | ``` 16 | The result will be: 17 | ``` 18 | 7A273F00 00000000 : 1968/02/06 00:47:48.445184 TIMEZONE: 0000000000000000 19 | ``` 20 | Note: library SBLSCLI0 may have a different high level qualifier (HLQ) 21 | -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to copy RTE to other LPAR/DNSVFTP: -------------------------------------------------------------------------------- 1 | //JCLNAME1 JOB (ACCT#),COPY FTP ',CLASS=A, 2 | // MSGCLASS=X,REGION=0M,NOTIFY=&SYSUID 3 | //********************************************************************* 4 | //* THIS JOB WILL CREATE A DUMP FOR YOUR.DATA.** 5 | //* AND SEND IT TO SS0X SYSTEM. 6 | //* NOTE: BE SURE THAT DATASET.TRS1 DATA SET 7 | //* IS NOT EXIST ON SS0X SYSTEM 8 | //* 9 | //********************************************************************* 10 | //* 11 | //* BR14: THIS STEP DELETES DATASET.TRS1 12 | //* DATA SET ON CURRENT SYSTEM. 13 | //* RESULTS: RC=0 14 | //* 15 | //********************************************************************* 16 | //BR14 EXEC PGM=IEFBR14 17 | //SYSPRINT DD SYSOUT=* 18 | //TRSOUT DD DSN= DATASET.TRS1, 19 | // DISP=(MOD,DELETE),SPACE=(TRK,(1,1)),UNIT=SYSDA 20 | //* 21 | //********************************************************************* 22 | //* 23 | //* HSM: THIS STEP RECALLS ALL YOUR.DATA.** DATA SETS FROM MIGRATING 24 | //* RESULTS: RC=0 25 | //* 26 | //********************************************************************* 27 | //HSM EXEC PGM=IKJEFT1B,DYNAMNBR=175 28 | //SYSTSPRT DD SYSOUT=* 29 | //SYSTSIN DD * 30 | HRECALL 'YOUR.DATA.**' WAIT 31 | /* 32 | //********************************************************************** 33 | //* 34 | //* DSS: THIS STEP CREATE DUMP FILE DATASET.TRS1 35 | //* WITH ALL YOUR.DATA.** DATA SETS 36 | //* RESULTS: RC=0 37 | //* NOTE: IF THIS STEP ENDS WITH RC=16, IT CAN BE BACAUSE OF B37 38 | //* IN THIS CASE ADD SOME SPACE TO DATA SET ALLOCATION 39 | //* SPACE=(CYL,(500,120),RLSE)--->SPACE=(CYL,(700,150),RLSE) 40 | //* 41 | //********************************************************************** 42 | //DSS EXEC PGM=ADRDSSU PARM='TYPRUN=NORUN' 43 | //SYSPRINT DD SYSOUT=* 44 | //TAPE DD DSN= DATASET.TRS1, 45 | // DISP=(NEW,CATLG,DELETE), 46 | // DATACLAS=EFCOMP5, 47 | // SPACE=(CYL,(500,120),RLSE) 48 | //SYSIN DD * 49 | DUMP OUTDDNAME(TAPE) - 50 | DATASET(INCLUDE( - 51 | YOUR.DATA.** - 52 | ) - 53 | ) - 54 | ALLDATA(*) ALLEXCP SHARE CONCURRENT 55 | /* 56 | //********************************************************************* 57 | //* 58 | //* FTP: THIS STEP SENDS DUMP FILE TO SS0X SYSTEM 59 | //* RESULT: RC=0 60 | //* 61 | //********************************************************************* 62 | //FTP EXEC PGM=FTP,PARM='(EXIT',COND=(04,LT) 63 | //SYSPRINT DD SYSOUT=* 64 | //OUTPUT DD SYSOUT=* 65 | //INPUT DD * 66 | SS0X 67 | USERID 68 | PASW 69 | MODE B 70 | SITE DATACLAS=EFCOMP5 71 | EBCDIC 72 | MVSPUT 'DATASET.TRS1' + 73 | 'DATASET.TRS1' 74 | QUIT 75 | /* -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to copy RTE to other LPAR/RESTOR: -------------------------------------------------------------------------------- 1 | //RESTOR JOB (ACCT#),'RST ',CLASS=A, 2 | // REGION=0M,MSGCLASS=X,NOTIFY=&SYSUID 3 | //******************************************************************* 4 | //* 5 | //* NOTE: DFDSS RESTORE STEP HAS 'REPLACE' PARAMETER 6 | //* 7 | //******************************************************************* 8 | //RESTORE2 EXEC PGM=ADRDSSU,REGION=0M 9 | //SYSPRINT DD SYSOUT=* 10 | //INPUT DD DISP=SHR, 11 | // DSN=DATASET.TRS1 12 | //* 13 | //SYSIN DD * 14 | RESTORE INDD(INPUT) - 15 | DATASET(INCLUDE( YOUR.DATA.** - 16 | )) - 17 | CATALOG - 18 | REPLACE - 19 | NULLMGMTCLAS - 20 | NULLSTORCLAS 21 | /* 22 | // -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to do some changes in each member of PDS/README.md: -------------------------------------------------------------------------------- 1 | # How to do some changes in each member of PDS? 2 | 3 | For example we have some PDS with members like this: 4 | 5 | 6 | 7 | And we need to change `CLASS=A` to `CLASS=E` in each of them. 8 | 9 | 10 | 11 | From ISPF Primary Option Menu select **FMN** (File manager) and then **3.6** 12 | 13 | Specify PDS and members: 14 | 15 | 16 | 17 | In the command line type: 18 | ``` 19 | c 'CLASS=A' 'CLASS=E' 20 | ``` 21 | 22 | Press **Enter**. You will see all changes: 23 | 24 | 25 | 26 | Press **F3** 27 | 28 | 29 | 30 | Press **Enter** to complete 31 | 32 | 33 | 34 | The result: 35 | 36 | -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/changes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/changes.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/members-to-change.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/members-to-change.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/pds-to-change.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/pds-to-change.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/result.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/save-changes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/save-changes.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/saved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/saved.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/string-to-change.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to do some changes in each member of PDS/img/string-to-change.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/README.MD: -------------------------------------------------------------------------------- 1 | # How to find out which data sets have used the most amount of space? 2 | 3 | Suppose you want to find large objects. We will do this in 2 ways: 4 | - In standard ISPF Data Set List panel (displayed with ISPF option 3.4) 5 | - Using the standard utility ISMF (Integrated Storage Management Facility) 6 | 7 | ## With ISPF: 8 | 9 | In ISPF DSLIST panel (in our example panel `DSLIST - Data Sets Matching USCIT.USCFOC`), in ISPF command line 10 | enter command 11 | ``` 12 | sort tracks 13 | ``` 14 | ![ISMF interface](images/image_ISPF1.jpg) 15 | 16 | You will see all your USCIT.USCFOC... datasets sorted descending by space allocated, together with percentage of currently used space in this allocation, and number of extents allocated for every displayed dataset. 17 | 18 | ![ISMF interface](images/image_ISPF2.jpg) 19 | 20 | ## With ISMF: 21 | 22 | 1. Open ISMF 23 | 2. Select the "Data set" menu item 24 | 25 | ![ISMF interface](images/1.jpg) 26 | 27 | 3. Here set the following parameters: 28 | * Data Set Name - **\*\*** 29 | * Source of the new list – **1** (VTOC) 30 | * Storage Group Name – your Storage Group 31 | 32 | ![ISMF interface](images/2.jpg) 33 | 34 | 4. Above, in the action bar, select List – 8 (Sort) 35 | 36 | ![ISMF interface](images/3.jpg) 37 | 38 | 5. Set the following parameters: 39 | * Major Field – **3** (Allocated space) 40 | * Major Field – **D** (In descending order) 41 | 42 | ![ISMF interface](images/4.jpg) 43 | 44 | 6. You can now see the data sets that are consuming the most amount of space 45 | -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/images/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/images/1.jpg -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/images/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/images/2.jpg -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/images/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/images/3.jpg -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/images/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/images/4.jpg -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/images/image_ISPF1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/images/image_ISPF1.jpg -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/images/image_ISPF2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to find out which data sets have used the most amount of space/images/image_ISPF2.jpg -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to include library to current LOGON session.md: -------------------------------------------------------------------------------- 1 | # Dynamic library inclusion to current LOGON session 2 | 3 | *"How to concatenate my datasets to ISPPLIB, ISPEXEC etc."* 4 | 1. Open "Current Data Set Allocations" page (Type it in command line at any ISPF page): 5 | ``` 6 | TSO ISRDDN 7 | ``` 8 | 2. Save current list of data set allocations into \.ISRDDN.CLIST: 9 | ``` 10 | CLIST 11 | ``` 12 | 3. Open \.ISRDDN.CLIST and concatenate your libraries to allocation command of specific DD. 13 | 4. Go to READY page and execute command: 14 | ``` 15 | EXEC '.ISRDDN.CLIST' 16 | ``` -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to make IBM Java work for TEP file _tep.jnlp_.md: -------------------------------------------------------------------------------- 1 | # How to make IBM Java work for TEP file tep.jnlp 2 | 3 | 1. Copy tep.jnlp into the lib, where javaws.exe is stored for IBM Java 4 | 2. Execute command: 5 | ``` 6 | javaws -verbose tep.jnlp 7 | ``` -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to pack or unpack a dataset with TERSE.md: -------------------------------------------------------------------------------- 1 | # How to pack or unpack a dataset with TERSE 2 | 3 | Tersed (packed) datasets are usually used to send/receive z/OS sequential or partitioned datasets across network. 4 | Tersed datasets need to be uploaded as binary files in the following format: 5 | * LRECL: 1024 6 | * RECFM: FB 7 | * BLOCKSIZE: 1024 8 | 9 | ## Terse (pack) a PDS 10 | 11 | Packing a PDS is exactly the same as packing a “normal” sequential dataset so we will show only JCL used to pack a PDS. 12 | ``` 13 | //TERSEPDS JOB (,),REGION=0M,NOTIFY=&SYSUID,CLASS=A 14 | //*------------------------------------------------- 15 | //DEL EXEC PGM=IEFBR14 16 | //D1 DD DSN=IBMUSER.DATA.PDS.TERSED, 17 | // UNIT=SYSDA,SPACE=(TRK,1), 18 | // DISP=(MOD,DELETE) 19 | //* 20 | //TERSE EXEC PGM=TRSMAIN,PARM=PACK 21 | //SYSPRINT DD SYSOUT=* 22 | //INFILE DD DISP=SHR,DSN=IBMUSER.DATA.PDS, 23 | //OUTFILE DD DISP=(NEW,CATLG),UNIT=SYSDA, 24 | // SPACE=(TRK,(10,10),RLSE), 25 | // DSN=IBMUSER.DATA.PDS.TERSED 26 | //* DCB=(DSORG=PS,RECFM=FB,LRECL=1024) 27 | ``` 28 | 29 | ## Unterse (unpack) a PDS 30 | 31 | To unpack a PDS is, as with packing, very similar to unpacking a sequential dataset. The only difference is that you need to be careful to allocate a PDS for the output and specify a directory size on the space parameter: 32 | ``` 33 | //UNTERPDS JOB (,),REGION=0M,NOTIFY=&SYSUID,CLASS=A 34 | //*----------------------------------------------------------- 35 | //UNTERPDS EXEC PGM=TRSMAIN,PARM=UNPACK 36 | //SYSPRINT DD SYSOUT=* 37 | //INFILE DD DSN=IBMUSER.DATA.PDS.TERSED, 38 | // DISP=SHR 39 | //OUTFILE DD DSN=IBMUSER.DATA.PDS.UNTERSED, 40 | // DISP=(NEW,CATLG), 41 | // SPACE=(CYL,(1,1,1)) 42 | ``` 43 | The only difference with the unpack job for sequential dataset is the extra parameter to allocate directory block on last line of shown JCL 44 | -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to transfer file from Windows to zOS with command line ftp.md: -------------------------------------------------------------------------------- 1 | # How to transfer file from Windows to zOS with command line ftp? 2 | 3 |

To transfer files from Windows to z/OS (especially when z/OS file must be created with specific LRECL , RECFM, size, etc) - good way is to use ftp line command, entered in command prompt (Run->cmd ) window.

4 |

Below highlighted are few commands used to transfer character(not binary !) Windows file d:\downloads\USC.WRK.NOINTER.APFDBU.ACCESS2 to z/OS dataset USC.WRKTISH.NOINTER.APFDBU.ACCESS2

5 | 6 |
7 |

C:\Users\shaklein_ia>ftp stutvs13.megacenter.by.iba.com
8 | Connected to STUTVS13.megacenter.by.iba.com.
9 | 220-TCPFTPH1 IBM FTP CS V2R4 at STUTVS13.megacenter.by.iba.com, 09:03:04 on 2021-04-12.
10 | 220 Connection will close if idle for more than 5 minutes.
11 | 501 command OPTS aborted -- no options supported for UTF8
12 | User (STUTVS13.megacenter.by.iba.com:(none)): e544271
13 | 331 Send password please.
14 | Password: _______
15 | 230 E544271 is logged on. Working directory is "E544271.".
16 | ftp> ascii
17 | 200 Representation type is Ascii NonPrint
18 | ftp> quote site lrecl=146 recfm=fb prim=20 sec=20 cyl
19 | 200-BLOCKSIZE must be a multiple of LRECL for RECFM FB
20 | 200-BLOCKSIZE being set to 6132
21 | 200 SITE command was accepted
22 | ftp> put d:\downloads\USC.WRK.NOINTER.APFDBU.ACCESS2 'usc.wrktish.nointer.apfdbu.access2'
23 | 200 Port request OK.
24 | 125 Storing data set USC.WRKTISH.NOINTER.APFDBU.ACCESS2
25 | 250 Transfer completed successfully.
26 | ftp: 16364508 bytes sent in 8.56Seconds 1911.52Kbytes/sec.
27 | ftp> quit
28 | 221 Quit command received. Goodbye.

29 |
30 | -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to use 3270 emulators with larger screensize/README.MD: -------------------------------------------------------------------------------- 1 | # How to use 3270 emulators with larger screensize? 2 | 3 | **Be careful**: This instruction is for the **IBM Personal Communications emulator** 4 | 5 | 1. Open ***.WS** file and update: 6 | * in [Telnet3270] section **add** 7 | ``` 8 | TerminalTypeString=IBM-DYNAMIC 9 | ``` 10 | 11 | * In [3270] section **modify** 12 | ``` 13 | ScreenSize=43x142 14 | ``` 15 | 2. Run your session and enter ISPF 16 | 3. Enter option Terminal and user parameters (option 0) 17 | * Set Screen format 3 (Max) 18 | 19 | ![ispf-settings](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20use%203270%20emulators%20with%20larger%20screensize/images/ispf-settings.png) 20 | 21 | 4. The screen should be 22 | ![result](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20use%203270%20emulators%20with%20larger%20screensize/images/result.png) 23 | 24 | -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to use 3270 emulators with larger screensize/images/ispf-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to use 3270 emulators with larger screensize/images/ispf-settings.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/How to use 3270 emulators with larger screensize/images/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/System operating scenarios/How to use 3270 emulators with larger screensize/images/result.png -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/Migrate one or more data sets to migration volumes.md: -------------------------------------------------------------------------------- 1 | # How to migrate one or more data sets to migration volumes 2 | 3 | In ISPF -> 3.4, and issue against the name of dataset the command: 4 | ``` 5 | hmig (or) ml2 6 | ``` 7 | And the dataset will be migrated directly to "MIGRAT2" (command 'hmigrate' in the same way gives MIGRAT1) -------------------------------------------------------------------------------- /zOS System operating/System operating scenarios/README.md: -------------------------------------------------------------------------------- 1 | # This directory contains various z/OS system work scenarios 2 | 3 | **List of scenarios:** 4 | * [Migrate one or more data sets to migration volumes](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/System%20operating%20scenarios/Migrate%20one%20or%20more%20data%20sets%20to%20migration%20volumes.md) 5 | * [How to include library to current LOGON session](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20include%20library%20to%20current%20LOGON%20session.md) 6 | * [How to make IBM Java work for TEP file "tep.jnlp"](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20make%20IBM%20Java%20work%20for%20TEP%20file%20_tep.jnlp_.md) 7 | * [How to find out which data sets have used the most amount of space?](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20find%20out%20which%20data%20sets%20have%20used%20the%20most%20amount%20of%20space/README.MD) 8 | * [How to convert hexadecimal date to a readable date on z/OS?](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20convert%20hexadecimal%20date%20to%20a%20readable%20date%20on%20zOS.md) 9 | * [How do I compare two data sets interactively?](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20compare%20two%20data%20sets%20interactively/README.MD) 10 | * [How do I use 3270 emulators with a larger screen size?](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20use%203270%20emulators%20with%20larger%20screensize/README.MD) 11 | * [How do I make some changes in each member of PDS?](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/tree/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20do%20some%20changes%20in%20each%20member%20of%20PDS) 12 | * [How to transfer file from Windows to zOS with command line ftp?](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20transfer%20file%20from%20Windows%20to%20zOS%20with%20command%20line%20ftp.md) 13 | * [How do I copy RTE to another LPAR?](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/tree/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20copy%20RTE%20to%20other%20LPAR) 14 | -------------------------------------------------------------------------------- /zOS System operating/XMIT/How to fix non working XMIT (enable NJE connection between two systems).md: -------------------------------------------------------------------------------- 1 | # How to fix non working XMIT (enable NJE connection between two systems (for example - connection from `````` to ``````)) 2 | 3 | On `````` you need to define and start a NJE connection to ???RSPLEX01??? with the following commands: 4 | 5 | 1. ```$add socket(???boston???),ipaddr=(???rs22.rocketsoftware.com???),port=(??175??),node=21``` 6 | 2. ```$add line(21),node=21,unit=tcpip``` 7 | 3. ```$sline(21)``` 8 | 9 | On `````` (the system in RSPLEX01 which handles NJE work) you need to define and start a connection to `````` with the following commands: 10 | 11 | 1. ```$add socket(),ipaddr=rs53.rocketsoftware.com,port=175,node=``` 12 | 2. ```$add line(zzz),node=zzz,unit=tcpip``` 13 | 3. ```$sline(zzz)``` 14 | 4. ```$sn,n=rsplexi1``` 15 | 16 | You could display ownnode value on by following command: 17 | ```$DNJEDEF,OWNNAME,OWNNODE``` 18 | -------------------------------------------------------------------------------- /zOS System operating/XMIT/XMIT commands.md: -------------------------------------------------------------------------------- 1 | # This document contains various day-to-day and rare XMIT commands 2 | 3 | ## How to transmit a data set? 4 | Specify `#node`, `#userid` and `#dsname` 5 | ``` 6 | TSO XMIT #node.#userid DSN('#dsname') OUTDSN('#dsname.XMIT') 7 | ``` 8 | 9 | **Or transmit members:** 10 | 11 | Specify `#dsname`, `#mem_names` 12 | ``` 13 | TSO XMIT #node.#userid DSN('#dsname') MEMBERS(#mem_names) OUTDSN('#dsname.XMIT') 14 | ``` 15 | 16 | ## How to receive a data set? 17 | 18 | When you're receiving a data set, the system asks for additional parameters. Here you can specify `DA(name.of.your.library)`, `UNIT(unit)`, `VOLUME(volume)`. You can skip it if you want 19 | 20 | Specify `#dsname` 21 | ``` 22 | TSO RECEIVE INDSN('#dsname.XMIT') 23 | ``` 24 | 25 | ## How to receive another user's data set? 26 | You need to use `RECEIVE USER(#userid)` to specify whose files you want to 27 | receive (and that's a restricted command - you need **OPER** authority to do 28 | that) 29 | ``` 30 | TSO RECEIVE USER(#userid) INDSN('#dsname.XMIT') 31 | ``` 32 | 33 | ## TRANSREC parameters 34 | 35 | Check what class is used for the XMIT. Check the `SYS1.PARMLIB` 36 | member `IKJTSO00` for any `TRANSREC` parameters, particularly SPOOLCL, which 37 | defines the class for the outgoing data. 38 | 39 | ## Related topics 40 | 41 | * [How to copy RTE to other LPAR?](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/tree/master/zOS%20System%20operating/System%20operating%20scenarios/How%20to%20copy%20RTE%20to%20other%20LPAR) -------------------------------------------------------------------------------- /zOS System operating/images/Contributing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/Contributing.png -------------------------------------------------------------------------------- /zOS System operating/images/GRMD_main_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/GRMD_main_logo.jpg -------------------------------------------------------------------------------- /zOS System operating/images/Logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/Logo.jpg -------------------------------------------------------------------------------- /zOS System operating/images/blue-zone-cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/blue-zone-cursor.png -------------------------------------------------------------------------------- /zOS System operating/images/commit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/commit.png -------------------------------------------------------------------------------- /zOS System operating/images/contibute2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/contibute2.jpg -------------------------------------------------------------------------------- /zOS System operating/images/create-new-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/create-new-file.png -------------------------------------------------------------------------------- /zOS System operating/images/create-pull-req.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/create-pull-req.png -------------------------------------------------------------------------------- /zOS System operating/images/cursor-pointer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/cursor-pointer.png -------------------------------------------------------------------------------- /zOS System operating/images/download-repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/download-repo.png -------------------------------------------------------------------------------- /zOS System operating/images/file-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/file-name.png -------------------------------------------------------------------------------- /zOS System operating/images/fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/fork.png -------------------------------------------------------------------------------- /zOS System operating/images/jira_ticket_statuses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/jira_ticket_statuses.png -------------------------------------------------------------------------------- /zOS System operating/images/logo-jenkins.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/logo-jenkins.jpg -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/Pipeline stages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/Pipeline stages.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/Tests Results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/Tests Results.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/Tests execution logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/Tests execution logs.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image1.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image10.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image11.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image12.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image13.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image14.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image2.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image3.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image4.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image5.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image6.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image7.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image8.png -------------------------------------------------------------------------------- /zOS System operating/images/mfarticleimages/image9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/mfarticleimages/image9.png -------------------------------------------------------------------------------- /zOS System operating/images/new-pull-req.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/new-pull-req.png -------------------------------------------------------------------------------- /zOS System operating/images/pull-reqs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/pull-reqs.png -------------------------------------------------------------------------------- /zOS System operating/images/sdsf-command-extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/sdsf-command-extension.png -------------------------------------------------------------------------------- /zOS System operating/images/swap-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/swap-bar.png -------------------------------------------------------------------------------- /zOS System operating/images/swap-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/6b710e28ec672702e6e06c12bf100327b1a97882/zOS System operating/images/swap-list.png -------------------------------------------------------------------------------- /zOS System operating/zOS DevOps Scripts/README.md: -------------------------------------------------------------------------------- 1 | # zOS DevOps scripts 2 | 3 | **This repository contains various scripts and templates for working with z/OS System** 4 | 5 | **Repository content:** 6 | * [Shell script for running JCL jobs on the mainframe via ftp](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/wiki/Shell-script-for-running-JCL-jobs-on-the-mainframe-via-ftp) 7 | * [Shell script for datasets transfering from UNIX to the mainframe via ftp](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/wiki/Shell-script-for-datasets-transfering-from-UNIX-to-the-mainframe-via-ftp) 8 | * [Shell script for transferring changed sources in git to the mainframe via ftp](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/wiki/Shell-script-for-transferring-changed-sources-in-git-to-the-mainframe-via-ftp) -------------------------------------------------------------------------------- /zOS System operating/zOS DevOps Scripts/Shell script for datasets transfering from UNIX to the mainframe via ftp/README.md: -------------------------------------------------------------------------------- 1 | # Shell script for datasets transfering from UNIX to the mainframe via ftp 2 | 3 | **sendLIBS.sh was created to send source datasets to z/OS via ftp.** 4 | 5 | [**Link to shell script sources (sendLIBS.sh)**](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/zOS%20DevOps%20Scripts/Shell%20script%20for%20datasets%20transfering%20from%20UNIX%20to%20the%20mainframe%20via%20ftp/sendLIBS.sh) 6 | 7 | **Script configuration before execution** 8 | 1. Prepare file which contains list of datasets LLQ (HLQ should be specified in the shell script parameters at startup) to be sent to z/OS. 9 | Each dataset name is located in separate line, for example datasetsList file contains: 10 | ``` 11 | TEST 12 | SAMPLIB 13 | JCL 14 | COBOL 15 | PLI 16 | ASM 17 | ``` 18 | All libraries should be located in the current directory 19 | 2. Replace the following values in the script: 20 | * `HOST=#Mainframe IP-address here#` 21 | * `USERID=#MF User#` 22 | * `PASSWD=#User password#` 23 | * `DSQ='#Script default HLQ qualifiers#'` 24 | 25 | **Sequence of script actions:** 26 | * Script receives an input file with list of datasets, required for transfering 27 | * Sends datasets to z/OS 28 | 29 | **Execution format:** 30 | ``` 31 | >./sendLIBS.sh [ds_list] [ds_qualifier] 32 | ``` 33 | * `ds_qualifiers` - HLQ and MLQ datasets on z/OS 34 | default: USER01.TEST 35 | 36 | * `ds_list` - file which contains list of datasets to be sent to z/OS 37 | each dataset name is located in separate line, for example: 38 | TEST 39 | ASM 40 | COBOL 41 | all libraries should be located in the current directory 42 | 43 | 44 | Script returns 1 if at least one directory/file was not found or dir/file transfer was unsuccessful. 45 | 46 | **Execution examples:** 47 | ``` 48 | >./sendLIBS.sh dsList USER01.TEST 49 | ``` -------------------------------------------------------------------------------- /zOS System operating/zOS DevOps Scripts/Shell script for datasets transfering from UNIX to the mainframe via ftp/dsList: -------------------------------------------------------------------------------- 1 | EXEC 2 | INCLUDES 3 | JCL 4 | PLI 5 | SAMPLIB 6 | TEST -------------------------------------------------------------------------------- /zOS System operating/zOS DevOps Scripts/Shell script for datasets transfering from UNIX to the mainframe via ftp/sendLIBS.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #echo reading input parameters 3 | INPUTFILE=$1 4 | DSQ=$2 5 | echo Input jcl: $INPUTFILE 6 | TMPFILE=tmp.txt 7 | 8 | HOST=#Mainframe IP-address here# 9 | USERID=#MF User# 10 | PASSWD=#User password# 11 | input="$PWD" 12 | 13 | if [ ! -f "$INPUTFILE" ] 14 | then 15 | echo Error: Input file $INPUTFILE not found 16 | exit 1 17 | fi 18 | 19 | if [ -z "$DSQ" ] 20 | then 21 | echo use default qualifiers 22 | DSQ='USER01.TEST' 23 | fi 24 | 25 | echo datasets qualifiers: $DSQ 26 | 27 | while read line 28 | do 29 | if [ -d "$input/$line" ] 30 | then 31 | PARAMS='LR=80 BLOCKSIZE=32720 REC=FB TR PRI=10 SEC=100 DIR=20' 32 | echo copy "$line" lib to z/OS 33 | echo " 34 | open $HOST 35 | quote USER $USERID 36 | quote PASS $PASSWD 37 | quote site $PARAMS 38 | mkdir '$DSQ.$line' 39 | cd '$DSQ.$line' 40 | lcd $input/$line 41 | mput * 42 | ls 43 | bye 44 | " | ftp -inv > $TMPFILE 45 | echo --------------- 46 | cat $TMPFILE 47 | echo --------------- 48 | else 49 | if [ -f "$input/$line" ] 50 | then 51 | PARAMS='LR=80 BLOCKSIZE=32720 REC=FB TR PRI=5 SEC=100' 52 | echo copy "$line" dataset to z/OS 53 | echo " 54 | open $HOST 55 | quote USER $USERID 56 | quote PASS $PASSWD 57 | quote site $PARAMS 58 | put $input/$line '$DSQ.$line' 59 | bye 60 | " | ftp -inv > $TMPFILE 61 | echo --------------- 62 | cat $TMPFILE 63 | echo --------------- 64 | else 65 | echo Error: $input/$line does not exist 66 | res="error" 67 | continue 68 | fi 69 | fi 70 | ERROR=$(grep -i 'Error' $TMPFILE) 71 | if [ -n "$ERROR" ] 72 | then 73 | echo Error occurred: $ERROR 74 | res="error" 75 | fi 76 | done < $INPUTFILE 77 | 78 | rm $TMPFILE 79 | 80 | if [ "$res" = "error" ] 81 | then 82 | echo Sending libs completed with errors 83 | exit 1 84 | fi -------------------------------------------------------------------------------- /zOS System operating/zOS DevOps Scripts/Shell script for running JCL jobs on the mainframe via ftp/README.md: -------------------------------------------------------------------------------- 1 | # Shell script for running JCL jobs on the mainframe via ftp 2 | 3 | **runZosJcl.sh script is intended to execute job from z/OS dataset via ftp** 4 | 5 | **Also, this Shell script template can be used as part of the Jenkins pipeline to automate the launch of JCL jobs.** 6 | 7 | [**Link to shell script sources (runZosJcl.sh)**](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/zOS%20DevOps%20Scripts/Shell%20script%20for%20running%20JCL%20jobs%20on%20the%20mainframe%20via%20ftp/runZosJcl.sh) 8 | 9 | **Instructions:** 10 | 11 | Execution format:: 12 | ``` 13 | >./runZosJcl.sh [job] [output_file] 14 | ``` 15 | 16 | * `job` - fully-qualified job name in quotation marks 17 | * `output_file` - file where job output log will be saved 18 | 19 | Script returns 1 if dataset with JCL was not found or job failed (completed with error or RC>04) 20 | 21 | Example: 22 | ``` 23 | >./runZosJcl.sh 'USER01.TESTPROG.JCL(TEST)' build_output.txt 24 | ``` -------------------------------------------------------------------------------- /zOS System operating/zOS DevOps Scripts/Shell script for running JCL jobs on the mainframe via ftp/runZosJcl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | HOST=#Mainframe IP-address here# 3 | USERID=#MF User# 4 | USERPSW=#User password# 5 | 6 | echo reading input parameters 7 | INPUTJOB=$1 8 | OUTPUT=$2 9 | echo JCL: $INPUTJOB 10 | echo Output file: $OUTPUT 11 | 12 | TMPFILE=tmp.txt 13 | 14 | echo run JCL from z/OS 15 | echo " 16 | open ${HOST} 17 | quote USER ${USERID} 18 | quote PASS ${USERPSW} 19 | quote SITE FILE=JES NOJESGETBYDSN 20 | quote SITE JESOWNER=* 21 | quote site jesjobname=* 22 | get '$INPUTJOB' $OUTPUT 23 | bye 24 | " | ftp -nv > $TMPFILE 25 | 26 | echo --------------- 27 | cat $TMPFILE 28 | echo --------------- 29 | 30 | JOB_ID=$( grep -o "JOB[0-9][0-9]*" $TMPFILE | head -1 ) 31 | if [ -z "$JOB_ID" ] 32 | then 33 | echo Error: job was not submitted 34 | exit 1 35 | else 36 | echo Job $JOB_ID was submitted 37 | fi 38 | sleep 5s 39 | 40 | echo check rc code 41 | echo " 42 | open ${HOST} 43 | quote USER ${USERID} 44 | quote PASS ${USERPSW} 45 | quote site file=jes 46 | quote site jesjobname=* 47 | ls 48 | bye 49 | " | ftp -nv > $TMPFILE 50 | 51 | #echo --------------- 52 | #cat $TMPFILE 53 | #echo --------------- 54 | 55 | grep $JOB_ID $TMPFILE 56 | RC_CODE=$(grep $JOB_ID $TMPFILE | grep -o "RC=[0-9]*") 57 | if [ -n "$RC_CODE" ] 58 | then 59 | RC_CODE=$(echo "$RC_CODE" | cut -d "=" -f 2) 60 | fi 61 | if [ -n "$RC_CODE" ] && [ "$RC_CODE" \< "0008" ] 62 | then 63 | echo Job completed successfully 64 | else 65 | echo Error: job failed 66 | res="failed" 67 | fi 68 | rm $TMPFILE 69 | 70 | if [ "$res" = "failed" ] 71 | then exit 1 72 | fi -------------------------------------------------------------------------------- /zOS System operating/zOS DevOps Scripts/Shell script for transferring changed sources in git to the mainframe via ftp/README.md: -------------------------------------------------------------------------------- 1 | # Shell script for transferring changed sources in git to the mainframe via ftp 2 | 3 | ** sendChangedScr.sh was created to send changed sources to z/OS via ftp ** 4 | 5 | [**Link to shell script sources (sendChangedSrc.sh)**](https://github.com/IBA-mainframe-dev/Global-Repository-for-Mainframe-Developers/blob/master/zOS%20System%20operating/zOS%20DevOps%20Scripts/Shell%20script%20for%20transferring%20changed%20sources%20in%20git%20to%20the%20mainframe%20via%20ftp/sendChangedSrc.sh) 6 | 7 | ** Script configuration before execution ** 8 | 1. Prepare configuration file `vardefs` by replacing the following values: 9 | * `HOST=#Mainframe IP-address here#` 10 | * `USERID=#MF User#` 11 | * `USERPSW=#User password#` 12 | * `defaultHLQ='#HLQ of datasets#'` 13 | * `masterBranch=#master branch name#` 14 | * `developBranch=#develop branch name#` 15 | 16 | 2. Replace the path to the configuration file in the script: 17 | * `VAR_PATH="/$PWD/#PATH TO CONFIG#/vardefs"` 18 | 19 | **Sequence of script actions:** 20 | * Script retrieves list of modified modules from git 21 | * Sends modules to z/OS 22 | * Puts list of modified modules in [HLQ].DIFF dataset on z/OS 23 | 24 | **Execution format:** 25 | ``` 26 | >./sendChangedSrc.sh [HLQ] [restore] 27 | ``` 28 | * `HLQ` - datasets qualifiers, required parameter 29 | 30 | * `restore` - constant value which must be specified to restore changed modules from master branch in case of errors 31 | 32 | Script returns 1 if HLQ was not specified, changed modules list is empty or file transfer was unsuccessful. 33 | 34 | **Execution examples:** 35 | ``` 36 | >./sendChangedScr.sh USER01.TEST 37 | 38 | >./"$PWD"/scripts/zOS/sendChangedScr.sh USER01.TEST restore 39 | ``` 40 | -------------------------------------------------------------------------------- /zOS System operating/zOS DevOps Scripts/Shell script for transferring changed sources in git to the mainframe via ftp/vardefs: -------------------------------------------------------------------------------- 1 | #ZOS variables 2 | HOST=#Mainframe IP-address here# 3 | USERID=#MF User# 4 | USERPSW=#User password# 5 | defaultHLQ='#HLQ of datasets#' 6 | #Git variables 7 | masterBranch=#master branch name# 8 | developBranch=#develop branch name# 9 | --------------------------------------------------------------------------------