Archive for category Tech – Mainframe

External Time Reference (ETR)

External Time Reference hardware facility (ETR) is the generic name for IBM Sysplex Timer.

The ETR architecture provides the means of synchronizing TOD clocks in different CPCs with a centralized time reference, which in turn can be set accurately on the basis of UTC time standard (External Time Source). The architecture defines a time-signal protocol and a distribution network (called the ETR network) that permits accurate setting, maintenance, and consistency of TOD clocks.

Notes:

CPC – Central Processor Complex

TOD – Time of Day

UTC – Coordinated Universal Time

No Comments

Cross-System Coupling Facility (XCF)

The cross-system coupling facility (XCF) component of z/OS manages communications between applications in a sysplex. XCF services allow authorized programs in a sysplex to communicate with programs on the same MVS system or other MVS systems. If a system fails, XCF services also provide the capability for batch jobs and started tasks to be restarted on another eligible system in the sysplex.

z/OS XCF allows up to 32 z/OS systems to communicate in a sysplex.

No Comments

Create a History Data Set from Log Data Recorded on the Logrec Log Stream

The following JCL creates a history data set from log data recorded on the Logrec log stream

//LOGRECHS JOB,MSGLEVEL=(1,1),MSGCLASS=X,NOTIFY=&SYSUID
//EREPDALY EXEC  PGM=IFCEREP1,PARM=('HIST,ACC=Y,SYSUM')
//ACCIN    DD DSN=SYS1.SYSPLEX.LOGREC,
//            SUBSYS=(LOGR,IFBSEXIT,,'DEVICESTATS,LASTRUN'),
//            DCB=(RECFM=VB,BLKSIZE=4000)
//ACCDEV   DD DSN=MVS.LOGREC.LGSTREAM.HISTORY,
//            DISP=(NEW,CATLG),
//            DCB=(RECFM=VB,BLKSIZE=4000),
//            UNIT=SYSDA,SPACE=(CYL,(25,5))
//SERLOG   DD DUMMY
//DIRECTWK DD UNIT=SYSDA,SPACE=(CYL,15,,CONTIG)
//TOURIST  DD SYSOUT=A,DCB=BLKSIZE=133
//EREPPT   DD SYSOUT=A,DCB=BLKSIZE=133
//SYSABEND DD SYSOUT=A
//SYSIN    DD DUMMY
/*

No Comments

EREP Control Statements

The following control statements are used to give EREP information about your configuration and set up the overall criteria for the way EREP creates the report:

Control Description
CONTROLLER Tells EREP to combine the error records associated with this particular control unit and its attached devices.
DASDID Tells EREP that this is the configuration of the 33XX DASDs within each subsystem; identifies those that do not provide physical IDs for the system exception report series. This control statement applies only to the system exception report series.
ENDPARM Tells EREP that this is the end of the in-stream EREP parameters; the in-stream data that follows consists of EREP control statements.
LIMIT Tells EREP to produce output for the system exception reports only when the number of megabytes processed per error is less than the megabytes specified by the error frequency value and the number of times the error occurs is greater than or equal to the number specified by the count value. This control statement applies only to the system exception report series.
SHARE Tells EREP to combine the records for these devices that are shared between systems. This control statement applies to all the reports that generate I/O device summaries.
SYSIMG Tells EREP to modify the CPU serial numbers for n-way processors so that those processors operating in the same system image are reported under the same CPU serial number.

I’m not describing here the syntax of these Controls but they can be seen on Chapter 3, “EREP Control Statements” in the EREP Reference manual, available on IBM’s website.

No Comments

EREP Processing Parameters

The following parameters are used to control the way EREP processes the records that were selected:

Parameter Description
ACC=Y or N
  • Accumulate.
  • Tells EREP to copy the records used for the report into an output history file.
  • Yes is the default value.
HIST=Y or N
  • History.
  • Tells EREP that its input consists of records in history files.
  • No is the default value.
LINECT=nnn
  • Line count.
  • Tells EREP that each page of the report output must contain this number of lines.
  • nnn – one-to-three decimal digits.
LINELEN={132 | 165 | 204}
  • Line length.
  • Tells EREP that each line of the system summary report output may contain up to this number of characters.
  • 132 – standard print (default value)
  • 165 – high-density print, 3800 printer only, paper width≥12 inches.
  • 204 – high-density print, 3800 printer only, paper width≥14 7/8 inches.
MERGE=Y or N
  • Tells EREP that its input consists of records from both the ERDS and history files.
  • No is the default value.
SHORT=Y or N
  • Short OBR.
  • Tells EREP to print out short-form OBR records in detail edit report output.
  • No is the default value.
TABSIZE=nnnnK
  • Table size.
  • Tells EREP that the sort table it uses for internal processing must be this size.
  • nnnn – is a 1–4 digit decimal number.
  • K – the value is in thousands of bytes.
ZERO=Y or N
  • Zero ERDS.
  • Tells EREP that when this report is complete, to change the header pointer to allow the ERDS to be overwritten with newly collected errors.
  • No is the default value.

No Comments

EREP Selection Parameters

The following parameters are used to select the records for EREP to use:

Parameter Description
CPU=({nnnnnn|Xnnnnn|XXnnnn}

.model [, ...])

  • Processor serial and machine type numbers.
  • Use only the records associated with this particular processor.
  • nnnnnn – the six-digit hexadecimal CPU ID number. It defines a single processor in an n-way central processor complex.
  • Xnnnnn – the processor identifier. You may wish to use this form if you want to select all the records for an n-way central processor complex, single image or physically partitioned, without having to specify all the processor addresses individually. For example: 012345, 112345, 212345.
  • XXnnnn – the processor identifier. You may wish to use this form if you want to select all the records for a logical partitioned (PR/SM ™ LPAR) central processor complex, whether single image or physically partitioned
  • model – the four-digit decimal processor model number.
CPUCUA=(serial.{cua|cuX}

[,serial.{cua|cuX}]…)

  • Processor serial number and channel unit address.
  • Use only the records associated with this channel unit attached to this processor.
  • serial – the six-digit hexadecimal CPU serial number.
  • cua – a unique three- or four-digit hexadecimal channel or unit address.
  • cuX – two or three hexadecimal digits followed by an X to denote the range of device addresses with those digits ending in 0 through F.
CUA=({[N]addr|[N]addr-[N]addr}[, ...])
  • Channel unit address or number.
  • Use only the records associated with this particular channel unit address or channel unit number.
  • addr - a three- or four-digit hexadecimal address or group of addresses. The format of the address may be nnXX, nnnX, or nnnn (for example: 01XX, 038X, or 049C). nnXX means that EREP processes all controller or unit addresses on channel nn; nnnX means that EREP processes all unit addresses on channel or control unit nnn. Important: The channel identifier can be one or two digits.
  • addr-addr – a range of contiguous hexadecimal addresses, which may include more than one channel and control unit. The lower address must appear first in the expression. An X in the lower address represents a 0; in the upper address it represents an F.
  • N – indicates not; it excludes CUAs from the report. NnnXX means that EREP processes all controller or unit addresses not on channel nn; NnnnX means that EREP processes all unit addresses not on channel or control unit nnn.
DATE=({yyddd[,yyddd] | yyddd[-yyddd]})
  • Use only the records created during this date range.
  • yyddd – the year yy and the Julian day ddd. The first yyddd is the year and day when the date range begins; the second yyddd is the ending year and day. The second date is optional; you can select records from a single date as well as from a range of dates. To select a single date, code only one yyddd.
DEV=(type | Ntype[,type | Ntype]…)
  • Device Type.
  • Use only the records associated with this particular device type; or, conversely, do not use the records associated with this device type.
  • type – a  four character field: either a specific device type (3340, 3420) or the representation of a class of devices (33XX, 34XX).
  • N – indicates not; excludes a device type from the report.
DEVSER=(serial[,serial]…)
  • Device serial number.
  • Use only the OBR records associated with this tape device serial number. (Use only for the THRESHOLD report and only with the 3410, 3420, and 8809 tape OBR records.)
  • serial – a six-digit decimal device serial number from the service data.
ERRORID=(seqno[,cpuid,asid,

hh,mm,ss,t])

  • Error identifier.
  • Use only the MCH and MVS software records containing this particular error identifier.
  • seqno – a 5-digit decimal error identifier from an MCH record or an MVS software (SFT) record.
  • cpuid – a 2-digit hexadecimal processor (CPU) identifier.
  • asid – a 4-digit hexadecimal address space identifier.
  • hh – a 2-digit decimal value representing the hour.
  • mm – a 2-digit decimal value representing the minute.
  • ss – a 2-digit decimal value representing the second.
  • t – a single decimal digit indicating tenths of the second.
LIA | LIBADR=address
  • Line interface [base] address.
  • Use only the 3705, 3720, 3725 or 3745 communication controller records containing this line interface address.
  • address – a four-digit hexadecimal line interface base address.
MOD=(model[,model]…)
  • Processor model.
  • Use only the records containing this processor machine type (number).
  • model – a three- or four-digit decimal processor model number.
MODE={370 | 370XA | ALL}
  • 370 or 370XA
  • Use only the records created in this operating mode.
  • 370 – means 370 mode only.
  • 370/XA – means 370XA and 370/ESA modes only.
  • ALL – means 370, 370XA and 370/ESA modes.
SYMCDE={nnnn | nnnX | nnXX | nXXX}
  • Fault symptom code.
  • Use only the 33XX DASD records containing this particular fault symptom code.
  • n – is a hexadecimal digit.
TERMN=name
  • Terminal name.
  • Use only the VTAM or TCAM OBR records containing this terminal name.
  • name – the valid one-to-eight character alphanumeric name assigned to a particular terminal.
TIME=({hhmm,hhmm | hhmm-hhmm})
  • Use only the records created during this time range.
  • hhmm – is a valid time period, hours and minutes.
TYPE=code[code]...
  • Record type.
  • Use only the records of the specified types.
  • Each code is one of the following:

A - A1 through AF records

B - B1 through BF records

C - CCH/CRW/SLH: Channel check/channel report word/subchannel logout records

D - DDR: Dynamic device reconfiguration records

E - System termination (EOD): End of day and other terminating events

F - F0 through FF records

H - MIH: Missing interrupt records

I - System initialization (IPL): Initial program load

M - MCH: Machine check records

O - OBR: Outboard records; unit checks

S - Software (SFT): System abends and other software events

T - MDR (formerly TPR): Miscellaneous data records

X - C0 through CF records

Y - D0 through DF records

Z - E0 through EF records

VOLID=(volser[,volser]...)
  • Volume serial number.
  • Use only the 33XX DASD or 34XX tape records containing this volume serial number.
  • volser - A valid volume identifier (or serial number) that can be from one-to-six alphanumeric characters long.

No Comments

List the Information from the Logrec Data Set

Next are a few examples of Jobs to list information from the Logrec Data Set:

1. Detail Edit Report

This job generates detail edits and summaries of all software and operational records:

//EREPRPT1 JOB,MSGLEVEL=(1,1),MSGCLASS=X,NOTIFY=&SYSUID
//REPORT1   EXEC  PGM=IFCEREP1,PARM='CARD'
//ACCIN     DD  DSN=MVS.LOGREC.HISTORY,DISP=SHR
//DIRECTWK  DD  UNIT=SYSDA,
//              SPACE=(CYL,5,,CONTIG)
//EREPPT    DD  SYSOUT=A,DCB=BLKSIZE=133
//TOURIST   DD  SYSOUT=A,DCB=BLKSIZE=133
//SYSIN     DD  *
PRINT=PS
TYPE=SIE
HIST
ACC=N
ENDPARM
/*

2. Event History Report

The following is a two-step job. The first step prints an event history report for all Logrec data set records. The second step formats each software, IPL, and EOD record individually.

This Job can be a very useful tool to the problem solver because it prints the records in the same sequence they were recorded and therefore shows an interaction between hardware error records and software error records.

//EREPRPT2 JOB,MSGLEVEL=(1,1),MSGCLASS=X,NOTIFY=&SYSUID
//* -------------------------------
//* - STEP 1 ----------------------
//* -------------------------------
//*
//EREPA EXEC PGM=IFCEREP1,PARM='EVENT=Y,ACC=N',REGION=256K
//SERLOG DD DSN=SYS1.LOGREC,DISP=SHR
//TOURIST DD SYSOUT=A
//EREPPT DD SYSOUT=A,DCB=BLKSIZE=133
//SYSIN  DD DUMMY
//*
//* -------------------------------
//* - STEP 2 ----------------------
//* -------------------------------
//*
//EREPB EXEC PGM=IFCEREP1,PARM='TYPE=SIE,PRINT=PS,ACC=N',
//   REGION=256K
//SERLOG DD DSN=SYS1.LOGREC,DISP=SHR
//TOURIST DD SYSOUT=A
//EREPPT DD SYSOUT=A,DCB=BLKSIZE=133
//SYSIN  DD DUMMY
/*

3. Detail Summary Report

This job generates detail summaries of all I/O errors:

//EREPRPT3 JOB,MSGLEVEL=(1,1),MSGCLASS=X,NOTIFY=&SYSUID
//REPORT3  EXEC  PGM=IFCEREP1,PARM='CARD'
//ACCIN    DD DSN=MVS.LOGREC.HISTORY,DISP=(OLD,PASS)
//DIRECTWK DD UNIT=3390,
//            SPACE=(CYL,5,,CONTIG)
//EREPPT   DD SYSOUT=A,DCB=BLKSIZE=133
//TOURIST  DD SYSOUT=A,DCB=BLKSIZE=133
//SYSIN    DD  *
PRINT=SU
TYPE=DOTH
DEV=(N34XX,N3704,N3705,N3720,N3725,N3745)
HIST
ACC=N
ENDPARM

For more information regarding the parameters and control statements used in these jobs check the following links:

  • EREP Report Parameters
  • EREP Selection Parameters
  • EREP Processing Parameters
  • EREP Control Statements

No Comments

EREP Report Parameters

The following parameters are used to request reports from EREP:

Parameter Description
EVENT=Y or N
  • Produces a three-part event history report that lists errors in chronological order.
  • Shows how often errors occur and in what order.
  • Used to establish a pattern and identify problems.
  • No is the default value.
PRINT= AL | DR | NO | PS | PT | SD | SU
  • Produces a series of detail edit or summary reports, or both, for the selected record types.
  • The number of reports depends on the input and selection parameters.
  • AL – requests all the detail (PRINT) reports: detail edits of the records, detail
  • summaries, and, if applicable, data reduction reports.
  • DR – requests only data reduction reports.
  • NO – requests that no reports be generated at all.
  • PS – requests both detail edit and detail summary reports.
  • PT – requests only detail edit reports.
  • SD – requests detail summaries and data reduction reports. It’s the default value.
  • SU – requests only detail summary reports.
SYSEXN=Y or N
  • Produces a system exception report series covering processors, channels, DASD, optical, and tape subsystems.
  • No is the default value.
SYSUM=Y or N
  • Produces a condensed two-part system summary report of all errors for the principal system elements:CPU, channels, storage, SCP, and the I/O subsystem.
  • No is the default value
THRESHOLD=(xxx,yyy)
  • Produces a summary of a 3410, 3420, and 8809 tape subsystem, including media statistics and permanent errors that exceed the limits set on the parameter.
  • xxx – The one-to-three digit decimal (leading zeros not required) threshold value for temporary read errors. Maximum value is 255.
  • yyy – The one-to-three digit decimal (leading zeros not required) threshold value for temporary write errors. Maximum value is 255.
TRENDS=Y or N
  • Produces a two-part trends report that presents error records logged for the various system elements during a maximum of 30 days.
  • This report presents the errors in chronological order by Julian date.
  • No is the default value.

No Comments

Create a History Data Set from the Logrec Data Set

By creating a history file and then running all the reports against that file, the Systems Programmer ensures that all of the reports are using the same set of records.

//LOGRECHS JOB CLASS=A,MSGLEVEL=(1,1),MSGCLASS=X,NOTIFY=&SYSUID
//*------------------------------------------------------------------
//* COPIES SYS1.LOGREC TO HISTORY FILE MVS.LOGREC.HISTORY
//*------------------------------------------------------------------
//HISTORY EXEC PGM=IFCEREP1,REGION=1024K,
// PARM='ACC,ZERO=N'
//SERLOG DD DISP=(OLD,KEEP),DSN=SYS1.LOGREC
//ACCDEV DD DISP=(NEW,PASS),DSN=MVS.LOGREC.HISTORY,
// UNIT=3390,SPACE=(CYL,(2,2)),
// DCB=(RECFM=VB,BLKSIZE=6144)
//DIRECTWK DD DISP=(NEW,DELETE),UNIT=3390,SPACE=(CYL,2,,CONTIG)
//EREPPT DD SYSOUT=A,DCB=BLKSIZE=133
//TOURIST DD SYSOUT=A,DCB=BLKSIZE=133
//SYSIN DD DUMMY
/*

No Comments

How to clear and re-initialize the Logrec Data Set SYS1.LOGREC

It’s not uncommon for the SYS1.LOGREC dataset to fill up. Although you should dump the content of the SYS1.LOGREC to DASD or Tape to keep that information for future use (if you need to analyse a problem), you sometimes may simply wish to clear all its content and re-initialize it. The solution is to run IFCDIP00.


//IFCDIP00 JOB CLASS=A,MSGLEVEL=(1,1),MSGCLASS=X,NOTIFY=&SYSUID
//********************************************************************
//* CLEAR AND INITIALIZE HARDWARE EVENT RECORDER DATASET             *
//********************************************************************
//IFCDIP00 EXEC PGM=IFCDIP00
//SERERDS  DD  DSN=SYS1.LOGREC,DISP=OLD,
//             VOL=SER=MVSRES,
//             UNIT=3390

In this example we will clear and re-initialize the content of SYS1.LOGREC located on volume MVSRES.

No Comments