62
© 2015 IBM Corporation IBM Systems Technical Event Series 2015 zSM2818 Small z/OS Enhancements Over the Past Several Releases Marna WALLE, [email protected] z/OS System Installation Member of the IBM Academy of Technology IBM z Systems, Poughkeepsie NY USA 1

z/OS Small Enhancements - Episode 2015B

Embed Size (px)

Citation preview

© 2015 IBM Corporation

IBM Systems Technical Event Series 2015

zSM2818

Small z/OS Enhancements Over the Past Several

Releases

Marna WALLE, [email protected]

z/OS System Installation

Member of the IBM Academy of Technology

IBM z Systems, Poughkeepsie NY USA

1

© 2015 IBM Corporation2

TrademarksThe following are trademarks of the International Business Machines Corporation in the United States, other countries, or both.

The following are trademarks or registered trademarks of other companies.

* All other products may be trademarks or registered trademarks of their respective companies.

Notes:

Performance is in Internal Throughput Rate (ITR) ratio based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput that any user will experience will vary depending upon considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve throughput improvements equivalent to the performance ratios stated here.

IBM hardware products are manufactured from new parts, or new and serviceable used parts. Regardless, our warranty terms apply.

All customer examples cited or described in this presentation are presented as illustrations of the manner in which some customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics will vary depending on individual customer configurations and conditions.

This publication was produced in the United States. IBM may not offer the products, services or features discussed in this document in other countries, and the information may be subject to change without notice. Consult your local IBM business contact for information on the product or services available in your area.

All statements regarding IBM's future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only.

Information about non-IBM products is obtained from the manufacturers of those products or their published announcements. IBM has not tested those products and cannot confirm the performance, compatibility, or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.

Prices subject to change without notice. Contact your IBM representative or Business Partner for the most current pricing in your geography.

Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.

Cell Broadband Engine is a trademark of Sony Computer Entertainment, Inc. in the United States, other countries, or both and is used under license therefrom.

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.

Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.

Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel

Corporation or its subsidiaries in the United States and other countries.

UNIX is a registered trademark of The Open Group in the United States and other countries.

Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.

ITIL is a registered trademark, and a registered community trademark of the Office of Government Commerce, and is registered in the U.S. Patent and Trademark Office.

IT Infrastructure Library is a registered trademark of the Central Computer and Telecommunications Agency, which is now part of the Office of Government Commerce.

For a complete list of IBM Trademarks, see www.ibm.com/legal/copytrade.shtml:

*, AS/400®, e business(logo)®, DBE, ESCO, eServer, FICON, IBM®, IBM (logo)®, iSeries®, MVS, OS/390®, pSeries®, RS/6000®, S/30, VM/ESA®, VSE/ESA, WebSphere®, xSeries®, z/OS®, zSeries®, z/VM®, System i, System i5, System p, System p5, System x, System z, System z9®, BladeCenter®

Not all common law marks used by IBM are listed on this page. Failure of a mark to appear does not mean that IBM does not use the mark nor does it mean that the product is not

actively marketed or is not significant within its relevant market.

Those trademarks followed by ® are registered trademarks of IBM in the United States; all others are trademarks or common law marks of IBM in the United States.

Notice Regarding Specialty Engines (e.g., zIIPs, zAAPs and IFLs):

Any information contained in this document regarding Specialty Engines ("SEs") and SE eligible workloads provides only general descriptions of the

types and portions of workloads that are eligible for execution on Specialty Engines (e.g., zIIPs, zAAPs, and IFLs). IBM authorizes customers to use

IBM SE only to execute the processing of Eligible Workloads of specific Programs expressly authorized by IBM as specified in the “Authorized Use

Table for IBM Machines” provided at www.ibm.com/systems/support/machine_warranties/machine_code/aut.html (“AUT”).

No other workload processing is authorized for execution on an SE.

IBM offers SEs at a lower price than General Processors/Central Processors because customers are authorized to use SEs only to process certain

types and/or amounts of workloads as specified by IBM in the AUT.

© 2015 IBM Corporation3

• z/OS V2.2:

•DFSMS: GDG Extended (GDGE)

• z/OS V2.1:

BCP: Logon allocation message

DFSMS: PDSE V2 member generations

SDSF: System symbols on Filter

ISPF: Configuration Utility new option for keyword file

• z/OS V1.13:

DFSMS: PDSE handy commands

BCP and DFSMS: Verbose message control

BCP: COPYCNT= for printing a lot of copies

z/OS UNIX: script command

• z/OS V1.12:

•DFSMS: IDCAMS VERIFY with RECOVER

•BCP: ALLOCxx for unique temp data set names

• Older than the hills:

•RACF: Logon statistics suppression

•z/OS UNIX: skulker

Small z/OS Enhancements - Edition 2015B

© 2015 IBM Corporation4

= Sysprog

= Sysprog & Users© 2007 IBM Corporation

z/OS V2R2

Little Enhancements

DFSMS: GDG Extended (GDGE)

© 2015 IBM Corporation5

What: Today, the limit on number of GDGs is 255 (1 byte catalog field GDGLIMIT): “classic GDG”. Now, you can indicate you want to use

GDGE, which supports 999 generations.

– A new 2 byte catalog field name GDGLIMTE is used to hold the new maximum, 1 to 999.

– Can have one generation for every day of the year, for more than 2 years!

How to use:

1. Position for exploitation of GDGE.

2. Ensure capability is enabled.

3. Define a GDGE and use at will!

Considerations:

–Use when you are confident there will be no fall back from z/OS V2.2.

–GDGEs are not allowed to be accessed pre-z/OS V2.2.

–PDSEs can be GDGs since z/OS V2.1 (and GDGEs)

z/OS V2R2 Enhancements

DFSMS: GDG Extended (GDGE)

© 2015 IBM Corporation6

How to use: 1. Position for exploitation of GDGE.

• For applications that may have referred to GDGLIMIT they now should

understand to look at GDGLIMTE when GDGEs are in use (or even not

in use).

• Query GDGATTR bit (new bit, existing field)*:

• If set, use GDGLIMTE as you have a GDGE. (GDGLIMIT will have

no value).

• If not set, use GDGLIMIT or GDGLIMTE.

• Generic Tracker can help! Turn it on, and look for instances of using GDGLIMIT and not using GDGLIMTE on a Catalog Management call.

• Might indicate that the program cannot understand GDGEs.

• Instances of interest are those starting with “GDGLIMIT”, owner is

”IBMDFSMS” .

z/OS V2R2 Enhancements

DFSMS: GDG Extended (GDGE)

* GDGATTR fields are documented in z/OS DFSMS Managing Catalogs.

© 2015 IBM Corporation7

How to use: 2. Ensure capability is enabled.

• GDGE use is controlled in IGGCATxx with GDGEXTENDED(YES|NO)

• F CATALOG,REPORT

Considerations:

– If you want to dynamically enable GDGE, update your IGGCATxx with GDGEXTENDED(YES)then F CATALOG,RESTART

z/OS V2R2 Enhancements

DFSMS: GDG Extended (GDGE)

© 2015 IBM Corporation8

How to use: 3. Define a GDGE and use at will!

• GDGE has to be defined as EXTENDED

–Use a GDGE as you would a classic GDG, but more of them now!

z/OS V2R2 Enhancements

DFSMS: GDG Extended (GDGE)

© 2015 IBM Corporation9

More usage: Convert from GDG to GDGE?

• Not straightforward. (Requirements might be entertained here.)

• You cannot simply IDCAMS ALTER EXTENDED LIMIT() for a

GDG to make it a GDGE:

• However, you can manually step through a conversion…but only

for SMS-managed GDGs.• Note: I prefer IDCAMS ALTER over ADRDSSU COPY, as ALTER can process migrated data sets.

z/OS V2R2 Enhancements

DFSMS: GDG Extended (GDGE)

© 2015 IBM Corporation10

1. Define a temp GDGE. – DEFINE GENERATIONDATAGROUP (NAME(MWALLE.TPS.TEMP) -

EMPTY EXTENDED NOSCRATCH LIMIT(999))

2. Rename the old GDGs with the name of the temp GDGE.– ALTER MWALLE.TPS.REPORTS.* NEWNAME(MWALLE.TPS.TEMP.*)

– Now, your “real” GDG is a GDGE, however the name isn’t “final”.

3. Delete your original GDG base.– DELETE MWALLE.TPS.REPORTS GDG

– Only the base was deleted, as all the data sets have the temporary name.

4. (Re-)define your original GDG, as a GDGE.– DEFINE GENERATIONDATAGROUP (NAME(MWALLE.TPS.REPORTS) -

EMPTY EXTENDED NOSCRATCH LIMIT(999))

5. Rename the temp GDGs with the “final” name of the GDGE.– ALTER MWALLE.TPS.TEMP.* NEWNAME(MWALLE.TPS.REPORTS.*)

– Now, your “real” GDG is a GDGE, with the name that you originally had!

6. Delete your temp GDGE base.– DELETE MWALLE.TPS.TEMP GDG.

z/OS V2R2 Enhancements

DFSMS: GDG Extended (GDGE)

© 2015 IBM Corporation11

© 2007 IBM Corporation

z/OS V2R1

Litle Enhancements

BCP: Logon allocation message

DFSMS: PDSE V2 member generations

SDSF: System symbols on Filter

ISPF: Configuration Utility new option for

keyword file

= Sysprog

= Sysprog & Users

© 2015 IBM Corporation12

What: It’s particularly annoying if you are trying out a new logon proc,

have an allocation failure for a referenced data set. This isn’t helpful:

MWALLE LOGON IN PROGRESS AT 18:25:28 ON JUNE 29, 2015

LOGON FAILED ALLOCATION UNSUCCESSFUL

MWALLE LOGGED OFF TSO AT 18:25:28 ON JUNE 29, 2015

IKJ56400A ENTER LOGON OR LOGOFF-

– Now, allocation will issue messages to the terminal to tell you exactly

where the problem is!

How to use:

1. Read new message IEFA107I during logon.

2. Fix the problem you were told about.

Considerations:

– Only indicates the first allocation error. You will have to read and fix

each problem iteratively.

z/OS V2R1 Enhancements

BCP: Logon allocation message

© 2015 IBM Corporation13

z/OS V2R1 Enhancements

BCP: Logon allocation message

IEFA107I

output

© 2015 IBM Corporation14

What: You can have multiple levels (generations) of a PDSE V2 member.

Nice for saving archives of members, or recovering a member when

needed.

How to use:

1. Ensure capability is enabled.

2. Indicate on allocation you want to use member generations.

3. Save, delete, recall, … the member generation you want.

Considerations:

– Current is always generation “0” = “primary generation”

z/OS V2R1 Enhancements (with OA42358, OA42247,OA42248)

DFSMS: PDSE V2 member generations

Example: Absolute Relative

Current 0 0

One before 3 -1

Two before 2 -2

Three before 1 -3

© 2015 IBM Corporation15

How to use: 1. Ensure capability is enabled.

– In IGDSMSxx, ensure that MAXGENS_LIMIT is greater than 0 (default). Can have two

billion generations! If you use the default, you cannot use PDSE V2 member generations.

– Make sure you are allocating a PDSE V2, either by default in IGDSMSxx with PDSE_LEVEL(2) (default is 1).

Considerations:

– PDSE V2 can be only be created on z/OS V2.1. Lower systems can read and write them,

they cannot allocate them though.

z/OS V2R1 Enhancements (with OA42358, OA42247,OA42248)

DFSMS: PDSE V2 member generations

© 2015 IBM Corporation16

How to use: 2. Indicate on allocation you want to use

member generations.

In JCL:

In ISPF 3.2 allocation:

With TSO:

z/OS V2R1 Enhancements (with OA42358, OA42247,OA42248)

DFSMS: PDSE V2 member generations

© 2015 IBM Corporation17

How to use: 3. Save, delete, recall, … the member generation you want.

– When editing a primary generation, a SAVE will create a new generation

member. Also, SAVE NEWGEN will create a new generation. SAVE

NOGEN will not create a new generation. PF1 tells you the generation:

– To edit a prior generation, use “/” in the PROMPT column on DSLIST,

default is primary generation:

z/OS V2R1 Enhancements (with OA42358, OA42247,OA42248)

DFSMS: PDSE V2 member generations

© 2015 IBM Corporation18

Continued:

– Then say which generation you want (either absolute or relative):

– You’ll see a warning indicating you are not in the primary generation:

z/OS V2R1 Enhancements (with OA42358, OA42247,OA42248)

DFSMS: PDSE V2 member generations

© 2015 IBM Corporation19

Usage considerations:

– Having generations mean you need more space in the PDSE.

– Deleting a member from ISPF, means deleting all its generations too.

– tso delete ‘mwalle.tps.reports(january)’ will delete the

primary generation, and leave the other generations orphaned and non-

retrievable with ISPF.

– To “reconnect” to the orphans, simply do an ISPF edit of the

orphaned member name. Reconnection is then automatic.

– There is no external way to know that orphans exist today, other than

notice that the PDSE V2 has unaccounted for used space.

– IEBCOPY and IDCAMS REPRO only copy primary generation (no other

generations). DFSMSdss dump and restore, and copy will keep all

member generations (includes DFSMShsm backups) - install OA43729.

– More can be found on TechDocs: WP102465

z/OS V2R1 Enhancements (with OA42358, OA42247,OA42248)

DFSMS: PDSE V2 member generations

© 2015 IBM Corporation20

Suggestion!

– IBM Data Set Commander for z/OS V8.1 and APAR OA45103 (formerly

known as IBM ISPF Productivity Tool for z/OS) contains more

enhancements for PDSE member generations!

– Including the very nice ability to display all member generations,

which is not in ISPF.

z/OS V2R1 Enhancements (with OA42358, OA42247,OA42248)

DFSMS: PDSE V2 member generations

© 2015 IBM Corporation21

What: You can add dynamic and static system symbols on the filtering

ability. Particularly useful when you have values you want to filter on

consistently, and those values change: today’s date, system you are

logged on, ...

How to use:

– FILTER ? pop-up lets you set the filters and their values.

– Press PF4 on the value column, and you can see the system symbols

and their current value. Select one that fits your fancy! (You can

concatenate the symbols too.)

Considerations:

– As always, careful with the date when filtering. “EQ” may not give you

want you want, but “GE” probably will.

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

© 2015 IBM Corporation22

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

My goal: On my held jobs, I only want to see jobs I own (MWALLE), and jobs that were

created today (22 Jan 2015).

No filter on yet…

© 2015 IBM Corporation23

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

Pre-V2.1: I had to set today’s date every day on my filter.

© 2015 IBM Corporation24

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

As of V2.1 with symbols! I just use system symbols for today’s date.

© 2015 IBM Corporation25

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

Just as I like it. Set it and forget it.

© 2015 IBM Corporation26

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

How to concatenate system symbols within the pop-up. PF4 in the Value field…

PF4

© 2015 IBM Corporation27

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

All the system symbols, and their current value are shown.

I want mm/dd/yyyy format, so I first pick &MON.

© 2015 IBM Corporation28

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

I add the /, and then move onto the next system symbol, with another PF4.

PF4

© 2015 IBM Corporation29

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

Now onto the day, &DAY. …and so on. Until I’ve built up &MON./&DAY./&YR4.

© 2015 IBM Corporation30

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

My next goal: In OPERLOG, I only want to see today’s information on the

system I’m logged onto.

No filter on yet …

© 2015 IBM Corporation31

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

As of V2.1 with symbols! I just use system symbols for today’s date and current system.

mm/dd/yy

Verify APAR PI33423 is on

© 2015 IBM Corporation32

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

Only my system (SYSB), and today (1/22/15, aka 15022).

© 2015 IBM Corporation33

z/OS V2R1 Enhancements

SDSF: System symbols on Filter

Advice: OPERLOG and dates are interesting. Use the SET DATE format when tryingto match OPERLOG date filters, not what you see in the panel. SET DATE ?

© 2015 IBM Corporation34

What: A new ISPF Configuration Utility option to create a new keyword file from a configuration table module.

This provides an easy way to recover a missing keyword source file from your active in-storage copy!

How to use: TSO ISPCCONF new option 7:

z/OS V2R1 Enhancements (with OA42680)

ISPF: Configuration Utility new option for keyword file

Where to store the output file

© 2015 IBM Corporation35

z/OS V2R1 Enhancements (with OA42680)

ISPF: Configuration Utility new option for keyword file

Leave empty to create a

keyword file from the module

that is currently in use.

© 2015 IBM Corporation36

Voila!

z/OS V2R1 Enhancements (with OA42680)

ISPF: Configuration Utility new option for keyword file

© 2015 IBM Corporation37

z/OS V2R1 Enhancements (with OA42680)

ISPF: Configuration Utility new option for keyword file

Voila

again!

© 2015 IBM Corporation38

© 2007 IBM Corporation

z/OS R13

Little Enhancements

DFSMSdfp: Some PDSE handy commands

BCP and DFSMSdfp: Verbose message control

BCP: COPYCNT= for printing lots of copies

z/OS UNIX: script command

= Sysprog

= Sysprog & Users

© 2015 IBM Corporation39

z/OS R13 Enhancements

DFSMSdfp: Some PDSE handy commands

Background: Two kinds of PDSE corruption: 1) in memory, and 2) on DASD.

SMSPDSE is non-restartable and is used for linklist PDSEs. SMSPDSE1 is restartable, for non-linklist PDSEs.

What: For problem determination, to find where a PDSE is currently being

used.– D SMS,{PDSE|PDSE1},CONNECTIONS,DSN(dsname)[,VOL(volser)]

To help with PDSE corruption in memory, to discard the buffered directory pages for a specific PDSE. (The next access will come from the data set on DASD).– VARY SMS,{PDSE|PDSE1},REFRESH,DSN(dsname)[,VOL(volser)]

To help with PDSE corruption on DASD detection (not correction), use IEBPDSE utility.

– Suggestion: put IEBPDSE as the first step of batch jobs using critical PDSEs.

© 2015 IBM Corporation40

z/OS R13 Enhancements

DFSMSdfp: Some PDSE handy commands

How to use, a sample non-serialization scenario:

1. You receive message ADR795E or ADR796E

– (ttt)-mmmmm(yy), AN UNEXPECTED RETURN CODE (return_code) AND REASON CODE (reason_code) HAS BEEN RECEIVED FROM THE IGWNOTIF MACRO WHILE PROCESSING VOLUME volume_serial_number (((or DATA SET dsname )))

2. Find out who is using the PDSE:

– D SMS,PDSE1,CONNECTIONS,DSN(MWALLE.UTIL.JOBS)

IGW051I PDSE CONNECTIONS Start of Report(SMSPDSE1)

---------data set name---------------------- -----vsgt-------

MWALLE.UTIL.JOBS 01-ZOS002-000204

--asid-- --name-- --tcb--- -open-

0095 MWALLE 009FF158 Input

PDSE CONNECTIONS End of Report(SMSPDSE1)

3. Try to access the PDSE from another system. If you can access from another system, then the corruption is likely in-storage. (Since buffers are system-specific.)

– Refresh the in-storage buffers for the PDSE:– VARY SMS,PDSE1,REFRESH,DSN(MWALLE.UTIL.JOBS)

IGW052I The cached directory blocks for PDSE MWALLE.UTIL.JOBS have been discarded

4. If you cannot access from both systems, likely the PDSE is corrupted on DASD:

– //STEPCHK EXEC PGM=IEBPDSE,PARM='DUMP'

//SYSPRINT DD SYSOUT=*

//SYSLIB DD DSN=MWALLE.UTIL.JOBS,DISP=SHR

© 2015 IBM Corporation41

z/OS R13 Enhancements (with OA37957 and OA37505)

BCP and DFSMSdfp: Verbose message control

What: There are many messages (specifically DFSMS O/C/EOV abend IEC*

messages) which could be more helpful in providing information to the end user.

– You can spend a lot of time looking up a message, just to then have to look the specific return code from a very long list.

– Wouldn’t it be nice if the message just told you in “English” what had happened?

How to use: .MSGOPTION VERBOSE(Y) in MPFLSTxx controls if verbose

messages will be produced.

– VERBOSE(Y) Verbose messages will be produced in the joblog, and extra

lines will not be produced in the syslog or operlog or queued to console.

– VERBOSE(N) Verbose messages will not be produced. Same behavior as it’s

been all along.

Considerations:

Right now, verbose messages are exploited only by these IEC* messages.

Additional verbose message lines are visible in MPF exits and on the Subsystem

Interface (SSI).

© 2015 IBM Corporation42

z/OS R13 Enhancements (with OA37957 and OA37505)

BCP and DFSMSdfp: Verbose message control

Example of not using verbose message control:

D MPF

IEE677I 15.48.20 MPF DISPLAY 941

SUBSYSTEMS RECEIVING FOREIGN MESSAGES AND DOMS:

*ALL

MSG OPTIONS: NONE

FIELD -MPF COLOR HLIGHT INTEN FIELD -MPF COLOR …

1.

2.IEF403I BADOPEN - STARTED - TIME=16.03.50

IEC142I 113-2C,IFG0194D,BADOPEN,FIX1,SYSUT1,0981,PAGE08, 016

SYS1.COMMON.DATA

IEA995I SYMPTOM DUMP OUTPUT 017

SYSTEM COMPLETION CODE=113 REASON CODE=0000002C

TIME=16.03.50 SEQ=00010 CPU=0000 ASID=0027

PSW AT TIME OF ERROR 075C1000 80D12336 ILC 2 INTC 0D

NO ACTIVE MODULE FOUND

… Syslog and joblog information

© 2015 IBM Corporation43

z/OS R13 Enhancements (with OA37957 and OA37505)

BCP and DFSMSdfp: Verbose message control

Example of using verbose message control:

3.

SET MPF=MW

IEE252I MEMBER MPFLSTMW FOUND IN SYS1.PARMLIB.POK

IEE712I SET MPF PROCESSING COMPLETE

4.

D MPF

IEE677I 16.04.28 MPF DISPLAY 029

SUBSYSTEMS RECEIVING FOREIGN MESSAGES AND DOMS:

*ALL

MSG OPTIONS: VERBOSE

FIELD -MPF COLOR HLIGHT INTEN FIELD -MPF COLOR …

5.

© 2015 IBM Corporation44

z/OS R13 Enhancements (with OA37957 and OA37505)

BCP and DFSMSdfp: Verbose message control

Example using verbose message control: IEF403I BADOPEN - STARTED - TIME=16.04.52

IEC142I 113-2C,IFG0194D,BADOPEN,FIX1,SYSUT1,0981,PAGE08, 035

SYS1.COMMON.DATA

IEA995I SYMPTOM DUMP OUTPUT 036

SYSTEM COMPLETION CODE=113 REASON CODE=0000002C

TIME=16.04.52 SEQ=00011 CPU=0000 ASID=0027

PSW AT TIME OF ERROR 075C1000 80D12336 ILC 2 INTC 0D

NO ACTIVE MODULE FOUND

6.

Syslog informationIEF403I BADOPEN - STARTED - TIME=16.04.52

IEC142I 113-2C,IFG0194D,BADOPEN,FIX1,SYSUT1,0981,PAGE08, 035

SYS1.COMMON.DATA

ERROR DESCRIPTION: IEC142I

An OPEN was issued for a VSAM data set with a DCB, but the caller

was not APF authorized or not in supervisor state.

END ERROR DESCRIPTION: IEC142I

IEA995I SYMPTOM DUMP OUTPUT 036

SYSTEM COMPLETION CODE=113 REASON CODE=0000002C

TIME=16.04.52 SEQ=00011 CPU=0000 ASID=0027

PSW AT TIME OF ERROR 075C1000 80D12336 ILC 2 INTC 0D

NO ACTIVE MODULE FOUND

7.

Joblog information !

(same as in book)

Syslog information

© 2015 IBM Corporation45

What:

– If you wanted a lot of sysout data set copies printed, the COPIES= parm on the OUTPUT JCL statement was limited to 255.

– For 5,100 copies, you might create 20 OUTPUT statements!

– Use the new parameter, COPYCNT=. You can specify 0-

2,147,483,647 copies of output to be produced.

Considerations:

– COPYCNT= takes precedence over COPIES= if both are

specified.

– COPIES=(nn,(xx,yy,…)) has the option for group numbers

that COPYCNT= doesn’t have. This allows you print some

pages multiple times. COPYCNT= is best for “simple” copies.

z/OS R13 Enhancements

BCP: COPYCNT= for printing a lot of copies

© 2015 IBM Corporation46

How to use: Replace COPYCNT= instead of COPIES= .

Clean out any extraneous OUTPUTs.

See it in SDSF:

z/OS R13 Enhancements

BCP: COPYCNT= for printing a lot of copies

© 2015 IBM Corporation47

What: A shell command for keeping track in a file of what has been displayed on a

terminal.

Excellent for logging what has occurred during an interactive configuration (like

z/OSMF’s izusetup) for later review!

How to use:. script [-aq] [file]

– Where –a will append to the file, -q will not add diagnostic message. The default file name is typescript in the current directory.

– Use exit to stop the recording into the file.

Considerations:

– Commands that modify the terminal (like full screen editors) might produce

unexpected data.

– Don’t access the script file while recording to it.

– If you can see the data on the terminal, you can see the data in the file. Be

aware of file permissions on the script file!

z/OS R13 Enhancements

z/OS UNIX: script for command

© 2015 IBM Corporation48

z/OS R13 Enhancements

z/OS UNIX: script for command

Contents of the script file:

…and the bottom of the file:

© 2015 IBM Corporation49

© 2007 IBM Corporation

z/OS R12

Little Enhancements

DFSMS: IDCAMS VERIFY with RECOVER

BCP: ALLOCxx for unique temp data set

name

= Sysprog

= Sysprog & Users

© 2015 IBM Corporation50

What: Using the EXAMINE command for a VSAM data set that was closed

improperly, can result in a cc 8 because of an interrupted VSAM

process.

As of R12, you can complete or back out the interrupted VSAM process by adding the RECOVER parameter to the VERIFY

command.– VERIFY without RECOVER will only update the end of data (EOD) and end of key range (EOKR) catalog

information so that it is accurate when the data set is next opened.

Then, check for any remaining errors using the EXAMINE command

for the data set again.

Consideration: The data set cannot already be opened on any system, or VERIFY RECOVER will fail with an OPEN error.

IBM recommends that you specify the RECOVER parameter after an

improper close of a key-sequenced data set.

z/OS R12 Enhancements

DFSMS: IDCAMS VERIFY with RECOVER

© 2015 IBM Corporation51

z/OS R12 Enhancements

DFSMS: IDCAMS VERIFY with RECOVER

Example:

EXAMINE NAME(MWALLE.TESTCSI.CSI) INDEXTEST DATATEST

IDC3300I ERROR OPENING MWALLE.TESTCSI.CSI

IDC3351I ** VSAM OPEN RETURN CODE IS 116

IDC31704I DATA SET IS ALREADY OPEN FOR OUTPUT OR WAS NOT

CLOSED CORRECTLY

IDC3003I FUNCTION TERMINATED. CONDITION CODE IS 12

IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE

WAS 12

1.

2. VERIFY DATASET(MWALLE.TESTCSI.CSI) RECOVER

IDC3300I ERROR OPENING MWALLE.TESTCSI.CSI

IDC3351I ** VSAM OPEN RETURN CODE IS 118

IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0

IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE

WAS 0

Attention message: The data set was

not properly closed but OPEN's implicit

verify was successfully processed.

© 2015 IBM Corporation52

z/OS R12 Enhancements

DFSMS: IDCAMS VERIFY with RECOVER

Example:

EXAMINE NAME(MWALLE.TESTCSI.CSI) INDEXTEST DATATEST

IDC01700I INDEXTEST BEGINS

IDC11773I 1 KEYS PROCESSED ON INDEX LEVEL 1, AVERAGE KEY..

IDC11774I CURRENT INDEX CISIZE IS 4096, RECOMMENDED MINIMUM

INDEX CISIZE IS 15

IDC01724I INDEXTEST COMPLETE - NO ERRORS DETECTED

IDC01701I DATATEST BEGINS

IDC01709I DATATEST COMPLETE - NO ERRORS DETECTED

IDC01708I 1 CONTROL INTERVALS ENCOUNTERED

IDC01710I DATA COMPONENT CONTAINS 1 RECORDS

IDC01711I DATA COMPONENT CONTAINS 0 DELETED CONTROL INTERVALS

IDC01712I MAXIMUM LENGTH DATA RECORD CONTAINS 80 BYTES

IDC01722I 99 PERCENT FREE SPACE

IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0

IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE

WAS 0

3.

© 2015 IBM Corporation53

What: It might be possible for jobs executing at the same time with

the same jobname (when JES allows it) fail allocation with a duplicate

data set name error.

To avoid this possibility, use the ALLOCxx TEMPDSFORMAT=UNIQUE

option.

–Ensures that jobs with the same jobname running simultaneously

do not create temporary data sets with the same names.

–The previous behavior is INCLUDELABEL, and is the default.

–Can change dynamically with SETALLOC

Temporary data set names will change when using the UNIQUE

option, only if you had specified a dsn label (e.g. &&MWTEMP).

– In the JCL, all references to the dsn label would correctly refer to

the same data set.

z/OS R12 Enhancements

BCP: ALLOCxx for unique temp data set name

© 2015 IBM Corporation54

The naming convention:

–As always, under any option, all temporary data set names start with: SYSyyddd.Thhmmss.RA000.jjobname

If you do not specify a data set name, or TEMPDSFORMAT(UNIQUE) is in effect, the full format of the

temporary data set name is: SYSyyddd.Thhmmss.RA000.jjobname.Rggnnnn

If you do specify a data set name and TEMPDSFORMAT(INCLUDELABEL) is in effect, the full format of

the temporary data set name is: SYSyyddd.Thhmmss.RA000.jjobname.dsetname.Hgg

z/OS R12 Enhancements

BCP: ALLOCxx for unique temp data set name

© 2015 IBM Corporation55

Default, old way, INCLUDELABEL:

– With dsn: SYS15029.T210214.RA000.IBMUSERT.MWTEMP.H01

– This is the case that is affected when changing this option. The dsn (&&MWTEMP)

is not present when moving to UNIQUE.

– Without dsn: SYS15029.T210214.RA000.IBMUSERT.R0100011

– Same as with UNIQUE. No change here.

New way, UNIQUE:

– With dsn: SYS15029.T214532.RA000.IBMUSERT.R0100014

– Note, all references to "&&MWTEMP“ work fine. No JCL changes were done!

– Without dsn: SYS15029.T214532.RA000.IBMUSERT.R0100015

– Same as with INCLUDELABEL. No change here.

z/OS R12 Enhancements

BCP: ALLOCxx for unique temp data set name

© 2015 IBM Corporation56

© 2007 IBM Corporation

Older than the hills

Little Enhancements

RACF: Logon statistics suppression

z/OS UNIX: skulker

= Sysprog

= Sysprog & Users

© 2015 IBM Corporation57

What: Allows you to specify which applications should only record the first system access of a

day. This could result in reduced I/O and lowered serialization impacts on the RACF data set.

Affects applications that specify the APPL operand on RACROUTE REQUEST=VERIFY

How to use: APPL profiles are used to specify which applications take advantage of this function.

1. Determine which applications you want to have only the first access of the day recorded.

2. Create or Modify the profile in the APPL class for the application to only record the first

time that day’s access in APPLDATA:

– New: RDEFINE APPL applname UACC(NONE) APPLDATA('RACF-

INITSTATS(DAILY)')

– Then: PERMIT applname CLASS(APPL) ID(userid-or-group)

ACCESS(READ)

– Existing: RALTER APPL applname APPLDATA(‘existing data RACF-

INITSTATS(DAILY)')

3. Activate the APPL class, if necessary: SETROPTS CLASSACT(APPL) RACLIST(APPL)

– If already active and RACLISTed, then refresh: SETROPTS RACLIST(APPL) REFRESH

Considerations: LJDATE, LJTIME, USBD_LASTJOB_DATE, and USBD_LASTJOB_TIME fields

will have the last recorded date and time for that day, not the last actually used for that day.

Older than the hills (z/OS R11):

RACF: Logon statistics suppression

© 2015 IBM Corporation58

Older than the hills (z/OS R11):

RACF: Logon statistics suppression

© 2015 IBM Corporation59

What: Allows you to clean out old files in a directory, based on last access time and location.

– skulker is a sample shell script provided in /samples/.

– You may copy it to /bin, /usr/bin, /usr/sbin/ … and modify it as you see fit.

– /tmp/ is an ideal location to use skulker on

How to use:

– /samples/skulker -i -l /u/mwalle/myskulk.log -R /u/mwalle/tmp/ 365

where some of the options are:

– -i interactively ask about files or directories that will be deleted.

– -l log the deleted files, warning, errors

– -R recursively moves through dirs and delete dirs and files, -r recursively moves

through dir and deletes files

Considerations: skulker with cron is a great combination!

– Don’t use –i from cron. If used from cron, nothing will be deleted.

Older than the hills:

z/OS UNIX: skulker

© 2015 IBM Corporation60

Clean out /u/mwalle/tmp/ every day at 3pm, with files and dirs that are at least three days old.

Put what is deleted into the file myskulk.log:

Older than the hills:

z/OS UNIX: skulker example

© 2015 IBM Corporation61

© 2007 IBM Corporation

Summary of What We Might Want to Share with Our User Community:

• System Programmer & User Items:

DFSMS (V2.2): GDG Extended (GDGE)

BCP (V2.1): Logon allocation message

DFSMS (V2.1): PDSE V2 member generations

SDSF (V2.1): System symbols on Filter

BCP and DFSMS (R13): Verbose message control

BCP (R13): COPYCNT= for printing lots of copies

z/OS UNIX (R13): script command

DFSMS (R12): IDCAMS VERIFY with RECOVER

z/OS UNIX (old): skulker

• System Programmers’ Items:

ISPF (V2.1): : Configuration Utility new option for keyword file

DFSMSdfp (R13): PDSE handy commands

BCP: ALLOCxx for unique temp data set name

RACF (old): Logon statistics suppression

© 2015 IBM Corporation62

© 2007 IBM Corporation

Small z/OS Enhancements – Edition 2015B: Summary

• z/OS V2.2:

•DFSMS: GDG Extended (GDGE) Can have 999

• z/OS V2.1:

BCP: Logon allocation message A real time saver.

DFSMS: PDSE V2 member generations Very handy.

SDSF: System symbols on Filter Use the pop-up for symbol names

ISPF: Configuration Utility new option for keyword file Nice option.

z/OS V1.13:

DFSMS: PDSE handy commands Could save an IPL.

BCP and DFSMS: Verbose message control No more lookup.

BCP: COPYCNT= for printing a lot of copies For >255 copies.

z/OS UNIX: script command Save it for review later.

z/OS V1.12:

•DFSMS: IDCAMS VERIFY with RECOVER Fix it for availability.

•BCP: ALLOCxx for unique temp data set names You might need this one day.

• Older than the hills:

•RACF: Logon statistics suppression To reduce I/O and contention.

•z/OS UNIX: skulker Keep a tidy file system.