35

MVS History

Embed Size (px)

Citation preview

Page 1: MVS History
Page 2: MVS History

MVS ... A long and rich heritage..

A history of IBM¹s most powerful and reliable operating system

(pictures of 360 and 370 reference cards )

........ MVS: Then and now

    Today, MVS is IBM¹s most powerful and reliable computer operatingsystem. Over the years, MVS has been refined and honed, incorporatingcustomer requirements, remaining attuned to new hardware and softwaredevelopments, and expanding its capabilities to keep pace with changingdirections in technology. The MVS of today is not the MVS of old. In fact,much of MVS has been rewritten, using state-of-the-art techniques whichreflect new concepts and functions to ensure high levels of quality andavailability.

    MVS/ESA(tm) has a long and rich heritage. Its roots lie in OS/360, anIBM operating system developed in the 1960s. Whether you are a newcomer toMVS, or have been in data processing for 40 years, we hope you enjoyretrospective.

(Picture of AUTOCHART CODING SHEET)

OS/360

    In April 1964, IBM announced OS/360, an operating system developed tosupport the new generation and architecture OS System/360(tm) hardwarecapable of both commercial and scientific applications. Prior to System/360,these applications ran on separate lines of hardware.

    OS/360 included three control programs options, delivered in stagesbeginning in March 1966. The first stage was the simplest - a sequentialscheduler called the primary control program (PCP). PCP, performed only onetask at a time, and ran in 32KB of memory. That¹s right! Kilobytes, not

Page 3: MVS History

megabytes. With PCP, a processor could spend considerable time waiting forI/O. OS/360 was the first operating system to require direct access devices.

Multiprogramming introduced the technique of assigning control of theprocessor to another task while the first task was waiting for I/O. Thistechnique utilized resources more effectively.

    Next came MFT (multiprogramming with a fixed number of tasks). InitiallyMFT supported four tasks at one time. Later it was upgraded to supportfifteen tasks. A third option, MVT (multiprogramming with a variable numberof tasks) followed . Theoretically, MVT allowed any number of tasks to beperformed concurrently. Because of the added function, more real storage wasrequired: 64KB for MFT and 128KB for MVT.

    System installation was accomplished through sysgen, a time consuming,difficult and tedious process performed in two stages: building the systemand defining the I/O configuration. Early user requirements identified theneed to simplify this process.

    Prior to OS/360, even the most dedicated programmers found I/Oprogramming to be a painful process - repetitive, inconsistent, and errorprone. OS/360 supplied data and telecommunications access methods thatsimplified the task.

    Job control language (JCL) also was introduced at this time.

    Upon initial release the access methods included BSAM, QSAM, BDAM, BPAM.In addition, OS/360 contained system utilities, an assembler, and somecompilers. Applications were soon developed that required faster access todata. Consequently, ISAM and QTAM were added. :Later, improvements were madeto linking new functions and operational enhancements were added. Acheckpoint/restart facility was developed to allow application to restart

Page 4: MVS History

atpoints other than the beginning. However due to the limited size of theprocessor storage, many applications couldn¹t be stored in one piece. Anoverlay supervisor was developed to help control and load the application inparts.

    In 1968, a multi-processing capability was designed for the System/360(S/360) Model 65. This new function was supported by MVT, and allowed a userto have dual Model 65s, which could share central storage under control of asingle operating system. Having two processors working on the same jobsignificantly improved application availability.

    As more and more organizations began developing compilers, users wantedthe flexibility to pick and choose among these, including IBM compilers. Torespond to this need, in 1969 IBM changed its definition of the operatingsystem to distinguish our compilers from system code. Compilers wereclassified as program products, offered separate license agreements.

    OS/360 was originally developed as a batch operating system. However,users soon asked for interactive capability. In 1971, IBM released thetime-sharing option (TSO), which became an integral part of the operatingsystem. TSO used TCAM, a new communications access method that was developedand released at the same time.

    Release 21.8, the last in the OS/360 line was made available in 1974.

(Picture of a OS/360 green card)

MVS/370

?79....

Page 5: MVS History

    Times and marketing conditions changed rapidly in the late 1970s. By1979, the concept of pricing system code separately from the hardware wasestablished. Some of the first separately priced products were ACF/VTAM(tm)and DFP/370. JES2 and JES3 were considered integral to the base controlprogram (BCP) and therefore were packaged with the BCP as part of MVS/SP. Itwas definition time again. In the new separately priced structure, thecombination of MVS/SP and DFP/370 now made up the operating system calledMVS/370.

    When OS/VS2 MVS was developed, some virtual storage was designed to becommon storage, shared by all address spaces, while some was declaredprivate storage, for use by applications. Our direction was to reserveone-half of a 126MB virtual address space for use by the operating systemand the other half to be used by customer applications. At this time, commonvirtual storage was used primarily by the operating system. However, IMS,VTAM and other products were seeing the benefits of occupying common virtualstorage. Not surprisingly, it didn¹t take long before the operating systemwith its subsystems exceeded its half. that left only 2-3MB forapplications.  It wasn¹t long before applications learned the value ofvirtual storage, eliminating overlays and simplifying design. Suddenly afteronly three years, there was no more room! And we though virtual storagewould last a long time.

    With the introduction of MVS/SP 1.3 a new feature, cross memory wasintroduced a dual address space architecture, which provided for directaccess to programs and data in separate address space under the control ofthe new cross-memory authorization mechanism. Cross-memory allowedsubsystems and server-like functions to manage data and control

Page 6: MVS History

blocksefficiently in private storage. Moving code from common virtual storage toprivate virtual storage provided some virtual storage constraint relief(VSCR).. For applications, as well as additional isolation and protectionfor subsystem control blocks and data. IMS, VTAM, JES3 and MVS componentswere among the first to use cross-memory.

    Although virtual storage was limited to 16MB because of 24-bit address,processor architecture allowed a 26-bit (64MB) address for real storage,supported in MVS/SP 1.3. MVS/370 performance was improved by utilizing theadditional real storage as paging space.

    The MVS 3.8 operating system was required as an installation base forMVS/370. MVS 3.8 contained specific functions, such as BTAM and GAM, whichhad not yet been provided as separately priced products.

    MVS/370 was withdrawn from marketing in December 1991. Service wasdiscontinued in December 1992, approximately 13 years from originalavailability.

(Picture of a System/370 Reference Summary card )

    The next major evolutionary step took place in 1981, with theintroduction of the IBM 3081 processor complex with 370-XA extendedarchitecture. 370-XA defined a dynamic channel capability, plus 31-bitaddressing for both real and virtual storage. To support the new functions,the MVS/SP product had to be reworked. The result was named MVS/SP

Page 7: MVS History

Version2. The original MVS/SP product was then renamed MVS/SP Version 1.Technically, since both products also contained JES, the correct names wereMVS/SP-JES2 Version 1 or Version 2 and MVS/SP-JES3 Version 1 or 2.

    MVS 3.8 contained five distinct data-management functions, which wereupdated and repackaged into a new product,   MVS/XA DFP Version 1. MVS/SPVersion 2 and MVS/XA DFP Version 1 were co-requisite products. Together theymade up the MVS/XA operating system, first made available in March of 1983.Other licensed products, such as ACF/VTAM and ACF/TCAM were updated to workwith the new architecture.  BTAM was also revised and a new licensed,BTAM/SP was created.

    Although MVS/370 provided some VSCR with cross memory, it wasn¹t enough.A continual effort was required to maintain a balance between operatingsystem usage and application usage. MVS/XA with its 31-bit addressingstructure, gave access to 2 gigabytes (2GB) of virtual storage per addressspace - 128 times more than MVS/370. What a relief!

    New operating system code and other licensed programs moved controlblock and data above the 16MB virtual, which up to that time was the highestvirtual storage address. As might be expected, the first question was ³Howlong will 2GB of virtual last?² Although the architecture allowed for 2GB ofreal storage, implementation in software didn¹t occur until storage of thatsize was also supported by the processors.

    Throughout this process, compatibility was maintained to protect ourcustomer investment in applications. 370-XA introduced a bi-modal addressing

Page 8: MVS History

capability, which allowed most applications for OS/360, OS/VS1, or OS/VS2 orMVS/370 (24 bit address structure) to run with the MVS/XA (31-bit addressingstructure).

    To aid the customer with migration to the IBM family of 308x processors,OS/VS2, MVS 3.8 and MVS 370 all ran on the new hardware, but without theability to utilize the new architecture..

    Dynamic channel architecture allowed access to I/O devices over any ofeight channels. Initial hardware implementation was four channels. SpecificDASD devices were able to reconnect to and pass data back on a differentchannel from the one on which the request was received. Significantimprovements in channel utilization were achieved. Requests were queued andmanaged by the channel rather than the operating system, freeing upprocessor resources.

    When the IBM ES/3090(tm) processor complex was introduced in 1985, itcontained new hardware features: vector facility, expanded storage primarilyto improve paging performance by reducing I/O that occurs when writing pagesto DASD. Along the way, MVS/XA DFP continued to add function, includingISMF, a catalog address space, and VSCR, and was reversioned into MVS/XA DFPVersion 2.

    Because of the demand for high availability, MVS/XA. Along with IMS/VS,ACF/VTAM and ACF/NCP, introduced XRF, a capability that allowed high-speedswitching of applications and terminals to an alternate system. CICS/MVS(tm)added similar capabilities. JES2 followed suit with a dual spoolingcapability.

    As a result of changing views on intellectual property and

Page 9: MVS History

enforcementof software copyrights and patents, MVS began distributing code as objectcode-only (OCO). User exits, better documentation and improvedresponsiveness to both requirements and requests for service helped tosmooth the transition from source code to object code.

    As a wider selection of products became available for MVS, the preintegrated IPO became less useful. It was a common package with a productset that was limited to basic user needs.  This meant that all optionalproducts had to be installed separately. In 1984, IBM introduced a custombuilt IPO, which allowed users to specify products from a menu. A set ofdistribution libraries, with integrated service, was then built to order.CBIPOs were developed for new customers as well as those who wanted toreplace existing systems.

    In 1986, CBPDO was introduced for those users who wanted to enhancetheir existing systems with added service for all products for which theuser was licensed. As with CBIPO, new products were selected from a productmenu.

    MVS/XA was withdrawn from marketing on December 31, 1992.

*****MVS/ESA

    In February 1988, IBM announced ESA/370(tm), which provided newcapabilities for the IBM ES/3090 processors, including access registers,linkage stacks and PR/SM(tm). The volume of data to be processed had risendramatically over the proceeding decade . Access registers made it easier toseparate application code from data, resulting in improvements in datavolume handling capabilities and data isolation. ESA/370 provided a newvirtual storage space for data only, called a data space. Unlike a crossmemory address space, no application code can execute in a data space.

    Linkage stacks simplify calls/program returns between address

Page 10: MVS History

spaces, aswell as program calls/program returns within a single address space. Linkagestacks also offer associated recovery routines that reduce the need forESTAEs. Today¹s DB2(tm) uses Linkage stacks facilities.

    Once again, MVS/SP V2 and MVS DFP V2 were reworked into the next levelof the MVS operating system, MVS/ESA. MVS/ESA product levels were MVS/SPVersion 3 and MVS/DFP Version 3 also contained significant productivityenhancement called system-managed storage.  System managed storage allowsthe operating system to place and control data on external devices, based ondata characteristics and usage. System-managed storage significantlyimproves DASD utilization, and reduces the work that people, particularlythe storage administrator, must do. MVS/DFP 3.2 provided PDSEs, a new 4Kphysical blocksize structure for partitioned data sets.   PDSEs eliminateperiodic compresses and the need for careful space pre-planning. MVS/DFP V3offered a network file server, supporting Sun(tm) Microsystem¹s remoteprocedure call (RPC) through TCP/IP. The network file server represented afirst functional step toward making MVS/ESA operate in an open-systemenvironment. MVS/DFP V3 also introduced a new access method, OAM, in supportof optical disk technology.

    Data spaces addressed a long-standing customer requirement-the abilityto access and process data more quickly. Data spaces allow large amounts ofdata to reside in processor storage, essentially trading storage for I/Oaccess time. Data in a data space is byte addressable, and can bemanipulated directly by a program in an address space. Two new services, LLAand VLF, allow the operating system and subsystems to easily utilize data

Page 11: MVS History

spaces for program libraries, CLISTs and data objects.

    MVS/SP V3 also provided a special high-speed form of data space called aHiperspace(tm). Hiperspace data always resides in expanded storage, and mustbe moved to the address space for manipulation. However, it does not use thepaging mechanism. Movement in 4KB or multiples of 4KB blocks bypasses thehigh-speed buffer. Since data in the high-speed buffer is not disturbed, thebuffer hit ratio is improved. VSAM LSR and DFSORT utilize Hiperspaces toimprove performance. Another storage technique, Hiperbatch(tm), allowsinterim VSAM or QSAM sequential data to be kept in a Hiperspace for improvedbatch processing.

    Assembler and FORTRAN were subsequently updated to enable userapplications to directly access data in data spaces. Callable services areprovided so user applications can utilize Hiperspaces.

    MVS/ESA SP 3.1.3 with RACF(tm) 1.8 received a B1 security rating fromthe U.S. Department of Defense. B1 provides the appropriate environment forapplications that must have mandatory label security protection.

    The first release of MVS/ESA was delivered in August 1988.

    To provide for an orderly migration from MVS/XA to MVS/ESA, twoprovisions were made. MVS/XA DFP 2.4 was updated to run with MVS/SP V3 untilsuch time as MVS/DFP V3 could be installed. No Hiperspace support wasavailable with MVS/XA DFP2.4. For users needing system-managed beforemigrating to MVS/ESA, MVS/DFP V3 was upgraded to run on MVS/XA withstarter-level, system managed storage function.

    OS/VS3 MVS 3.8 remained an installation prerequisite for new users of

Page 12: MVS History

MVS.

The continuation of MVS/ESA

    In September 1990, IBM announced ESA/390(tm) and the ES/9000 family ofprocessors. Prime new concepts were Sysplex and ESCON(tm). Again, the basecontrol program was enhanced to support the new architecture, resulting inMVS/ESA SP Version 4.

    A new component, XCF was added, which allowed authorized applications onone system to communicate via CTC with the other specified authorizedapplications on another MVS/ESA SP Version 4 system. If an application orsystem begins to fail, the companion application on the other system can becalled into service.

    XCF presented the opportunity for higher levels of availability.OPC(tm)/ESA, CICS/ESA(tm) XRF and JES2 V4 have been modified to utilize XCFservices for takeover and recovery. XCF can also be used with PR/SM ARF toautomatically reconfigure processor storage when takeover occurs.

    Another new component, APPC/MVS, provided a new level of applicationportability and interoperability with other SAA(tm) systems. APPCapplications can now operate in client server fashion and may be ported fromone operating system to another when written to the CPI-C interface.

    Dynamic I/O reconfiguration was realized through ESCON architecture, theESCON Manager licensed product, and MVS/ESA SP4 V4 HCD. Specifiedchannel-attached devices can be attached and configurations changed withoutbringing the system down, reducing PORs and IPLs. Support was also providedin NCP to dynamically add preconfigured lines with HCD.  A common and

Page 13: MVS History

consistent front end was also developed for HCD and ESCON Manager, using theScreenView feature. ScreenView is part of MVS/ESA SP4.3. Once again,productivity for the systems programmer was improved.

    PR/SM EMIF, an extension announced for ESA/390 in June 1992, is alsosupported by MVS/ESA SP 4.3 PR/SM EMIF allows sharing of ESCON channelsamong logical hardware partitions, which should increase configurationflexibility and provide cost savings through reduction in the number ofchannels required for PR/SM.

    DFSMS/MVS(tm), announced in MAY 1992, integrates and expands the storageand program management functions previously available in MVS/DFP V3, DFHSMand DFDSS. A new feature, Removable Media Manager, was also added.DFSMSrmm(tm) allows tapes, both automated and manual libraries, to have fullautomated management support by DFSMS.

    DFSMS/MVS has since added a concurrent copy function that providespotential for improved data availability during the backup process.DFDSM/MVS is capable to act as a file backup and archive server for LAN fileservers and workstations. It also allows applications access to local ordistributed record data of DDM systems. Remaining OS/VS2 MVS 3.8 componentswere repackaged into existing licensed products and the requirement to haveMVS 3.8 as an installation base was removed with MVS/ESA SP 4.2.2.

    In 1992, IBM further simplified the installation process through a groupof offerings called CustomPacs(tm). One of these, the SystemPac(tm), is asystem replacement option that goes beyond CBIPO in building andcustomizing. Two others, ProductPac(tm) and ServicePac(tm), are systemupgrade options, tailored to a particular system rather than to anestablishment. They are simpler to install and require less SMP/E knowledgethan CBPDO.

Page 14: MVS History

    Throughout the existence of MVS, heavy emphasis has been made onreliability. With MVS/ESA SP V4, we increased our efforts to ensure qualityand reliability.. Both existing code and newly developed code were examinedfor defects, and corrections included in the product. However, quality meansmore than code-defect removal. Installation procedures, IPL actions,publications and other forms of documentation were also reviewed andupdated.

    MVS/ESA SP 4.3 OpenEdition(tm) services provide an expanded role forMVS¹s participation in an open-systems environment. POSIX and OSF(r)/DCE arecurrently being developed to run MVS/ESA SP 4.3. Netview(r) and DFDSM arekey products upon which MVS system management and network management will bebuilt. MVS/ESA will continue to play a leadership role in out customers¹enterprises within the open-system environment. It will act as theenterprise-wide data server and database manager; it will provide dataprotection and integrity; it will be the enterprise-wide network manager,providing upload/down-load, backup and recovery services; it will be thebase for high-volume, high-response transaction processing; an applicationserver; a technical computing platform; a high-volume cryptographicplatform; a data compression platform and a quality server.

    Needless to say, MVS remains a superior batch processing system. Theaddition of VIO to expanded storage, Hiperbatch, Batch LSR and data stripinghave contributed significantly to this capability.

    Future directions point to MVS support of a parallel processingenvironment, providing significant improvements in data sharing and workloadbalancing.

    With MVS/ESA, a high degree of scaleability has been achieved, moving

Page 15: MVS History

from a uniprocessor environment through eight-way multiprocessing andSysplex; from kilobytes of real storage to gigabytes of central and expandedstorage. Additional processors are supported with efficient utilizationratios. MVS/ESA supports the full range of architectural features.Architecture defined-protection mechanisms range from low-address protectionfor MVS to subsystem storage protection for CICS. MVS defines virtualstorage that reaches into terrabytes. It has added sort instructions, DB2sort-assist facility, a vector facility, a cryptographic feature andcompression, data streaming channels, dynamic channel subsystems. ESCONchannels, CTCs, a Sysplex Timer(tm) and more.

    MVS/ESA has evolved into a highly sophisticated and reliable operatingsystem - one which provides tremendous customer value and is continuallyresponsive to customer needs. MVS/ESA has the quality integrity andfunction, along with the responsiveness and the performance realization,required to run today¹s businesses. No other operating system matches it.

    Application investments made in os/360, OS/VS2, MVS/370, MVS/XA andearlier levels of MVS/ESA continue to work with today¹s MVS/ESA.

    MVS will continue to enhance its offerings with the characteristics thathave always been its strengths-and can help companies like yours meet thechallenge of the 90¹s.

(end)

                Glossary

ACF/TCAM         Advanced Communication Function/TCAMACF/VTAM         Advanced Communication Function/VTAMAPPC/MVS        Advanced Program-to-Program Communication/MVSASP            Attached Support ProcessorCICS/MVS        Customer Information Control System

Page 16: MVS History

CPI-C         Common Programming Interface For CommunicationsBCP            Base Control ProgramBDAM            Basic Direct Access MethodBPAM            Basic Partitioned Access MethodBSAM            Basic Sequential Access MethodBTAM            Basic Telecommunications Access MethodBTAM/SP        BTAM/System ProductCBIPO            Custom Built Installation OfferingCBPDO        Custom Built Product Delivery OfferingCTC            Channel-to-ChannelDASD            Direct Access Storage DeviceDFDSM        Data Facility Distributed System ManagementDFP/MVS        Data Facility Product/MVSDFSMS        Data Facility Storage Management SubsystemDFSMS/MVS    Data Facility Storage Management Subsystem/MVSESCON        Enterprise System ConnectionsESTAE        Extended-specify Task Abnormal ExitGAM            Graphic Access MethodGB            Gigabyte - 1,000,000,000 bytesHASP            Houston Automatic Spooling ProgramHCD            Hardware Configuration DefinitionI/O            Input/OutputIMS/VS        Information Management System/Virtual StorageIPL            Initial Program LoadIPO            Integrated Program OfferingISAM            Indexed Sequential Access MethodISMF            Interactive Storage ManagementLLA            Library LookasideLSR            Local Shared ResourcesMB            Megabytes - 1,000,000 bytesMVS            Multiple Virtual StorageMVS/ESA        MVS/Enterprise System ArchitectureMVS/SP        MVS/System ProductMVS/XA        MVS/Extended ArchitectureOAM            Object Access MethodOCO            Object Code OnlyOS/VS        Operating System/Virtual StoragePDSE            Partitioned Data Set ExtendedPOR            Power-on-ResetPR/SM        Processor Resource/Storage ManagerPR/SM ARF        PR/SM Automatic Recovery FacilityPR/SM EMIF        PR/SM ESCON Multiple Image FacilityQSAM            Queued Sequential Access MethodQTAM            Queued Telecommunications Access MethodSAA            Systems Applications ArchitectureSNA            Systems Network Architecture

Page 17: MVS History

TCAM            Telecommunications Access MethodTCP/IP        Transmission Control Protocol/Internet ProtocolTSO/E        Time Sharing Option/ExtendedVIO            Virtual Input OutputVLF            Virtual Lookaside FacilityVSAM            Virtual Sequential Access MethodVSCR            Virtual Storage Constraint ReliefVTAM            Virtual Telecommunications Access MethodXCF            Cross-system Coupling FacilityXRF            Extended Recovery Facility

Hi All,

Please find the attached tool developed for splitting up the records. Its a combination of JCL and REXX.

Overview of the process:

1.Provide the input file name, how many records you prefer to have in each file, and the output space quantity. 2. Using sort we will get the record count which will be used as one of the input in Rexx program.3. Rexx program will divide (total record count) with (preferred record count) and based on that information will generate dynamic JCL for splitting purpose and submit the same.4. Prior to running the job change the userid / REXX pds name / job card details.

Input:

Tested with the file which have 18 records and prefers to split each of 3.

Output:

//STEP1 EXEC PGM=SORT

Page 18: MVS History

//SYSOUT DD SYSOUT=* //SORTIN DD DSN=ISDNOSA.TEST.FILE2, // DISP=SHR //SORTOF1 DD DSN=ISDNOSA.REXXSPL.OUT1, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,10),RLSE),UNIT=(,10) //SORTOF2 DD DSN=ISDNOSA.REXXSPL.OUT2, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,10),RLSE),UNIT=(,10) //SORTOF3 DD DSN=ISDNOSA.REXXSPL.OUT3, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,10),RLSE),UNIT=(,10) //SORTOF4 DD DSN=ISDNOSA.REXXSPL.OUT4, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,10),RLSE),UNIT=(,10) //SORTOF5 DD DSN=ISDNOSA.REXXSPL.OUT5, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,10),RLSE),UNIT=(,10) //SORTOF6 DD DSN=ISDNOSA.REXXSPL.OUT6, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,10),RLSE),UNIT=(,10) //SYSIN DD * SORT FIELDS=COPY OUTFIL FILES=1,STARTREC=1,ENDREC=3 OUTFIL FILES=2,STARTREC=4,ENDREC=6 OUTFIL FILES=3,STARTREC=7,ENDREC=9 OUTFIL FILES=4,STARTREC=10,ENDREC=12 OUTFIL FILES=5,STARTREC=13,ENDREC=15 OUTFIL FILES=6,STARTREC=16,ENDREC=18

Regards,Saravanan

++++++++++Rexx JCL:+++++++++

//ISDNOSAS JOB ($014001T),'SARAVANAN,S',// CLASS=M,MSGCLASS=X,NOTIFY=ISDNOSA//PROC1 JCLLIB ORDER=ISDNOSA.SARA.PROC// SET DIVCNT=1000000// SET INPUT1=ISDNOSA.TEST.VSAM1// SET SPACE1='CYL,(10,10)'//*//STEPD EXEC PGM=IEFBR14//SYSOUT DD SYSOUT=*//DEL1 DD DSN=ISDNOSA.REXXSPL.SORTOUT,DISP=(MOD,DELETE,DELETE)//DEL2 DD DSN=ISDNOSA.REXXSPL.SYSIN,DISP=(MOD,DELETE,DELETE)//DEL3 DD DSN=ISDNOSA.REXXSPL.COUNT,DISP=(MOD,DELETE,DELETE)//*//STEPC EXEC PGM=IEFBR14,COND=(0,NE)//SYSOUT DD SYSOUT=*//CRE1 DD DSN=ISDNOSA.REXXSPL.SORTOUT,DISP=(NEW,CATLG,DELETE),// SPACE=(TRK,(30,30),RLSE),DCB=(LRECL=80,RECFM=FB,BLKSIZE=0)

Page 19: MVS History

//CRE2 DD DSN=ISDNOSA.REXXSPL.SYSIN,DISP=(NEW,CATLG,DELETE),// SPACE=(TRK,(30,30),RLSE),DCB=(LRECL=80,RECFM=FB,BLKSIZE=0)//CRE3 DD DSN=ISDNOSA.REXXSPL.COUNT,DISP=(NEW,CATLG,DELETE),// SPACE=(TRK,(30,30),RLSE),DCB=(LRECL=80,RECFM=FB,BLKSIZE=0)//*//STEP1 EXEC PGM=SORT,COND=(0,NE)//SYSOUT DD SYSOUT=*//SORTIN DD DSN=&INPUT1,DISP=SHR//SORTOUT DD DSN=ISDNOSA.REXXSPL.COUNT,DISP=SHR//SYSIN DD * SORT FIELDS=COPY OUTFIL REMOVECC,NODETAIL, TRAILER1=(1:COUNT=(EDIT=(TTTTTTTTTT)))/*//STEP2 EXEC PGM=IKJEFT1B,COND=(0,NE),// PARM='%SORTJC &INPUT1 &DIVCNT &SPACE1'//SYSPROC DD DISP=SHR,DSN=ISDNOSA.SARA.REXX//SYSTSPRT DD SYSOUT=*//SYSOUT DD SYSOUT=*//SYSTSIN DD DUMMY//*//STEP3 EXEC PGM=SORT,COND=(0,NE)//SYSOUT DD SYSOUT=*//SYSIN DD * SORT FIELDS=COPY/*//SORTOUT DD SYSOUT=(*,INTRDR)//SORTIN DD DATA,DLM=$$//ISDNOSAS JOB ($014001T),'SARAVANAN,S',// CLASS=M,MSGCLASS=X,NOTIFY=&SYSUID//*//STEP1 EXEC PGM=SORT//SYSOUT DD SYSOUT=*$$// DD DSN=ISDNOSA.REXXSPL.SORTOUT,DISP=SHR// DD DSN=ISDNOSA.REXXSPL.SYSIN,DISP=SHR+++++++++REXX SORT++++++++++/*REXX*/ARG INPUT1 DIVCNT SPACE1"ALLOC F(IND0) DA(REXXSPL.COUNT) SHR";"EXECIO 1 DISKR IND0 (STEM LAYREC. FINIS""FREE F(IND0)"RECCNT = LAYREC.1SAY "INPUT " INPUT1

Page 20: MVS History

SAY "RECCNT " RECCNTSAY "DIVCNT " DIVCNTDIV1 = (RECCNT/DIVCNT)DIVR = FORMAT(DIV1,,0)SAY "DIVR = " DIVRCNT1=0CNT2=1DO I=1 TO DIVR BY 1 JCL1.I = '//SORTOF'³³I³³' DD DSN='³³USERID()³³'.REXXSPL.OUT'³³I³³',' JCL2.I = '// DISP=(NEW,CATLG,DELETE),' JCL3.I = '// SPACE=('³³SPACE1³³',RLSE),UNIT=(,10)' IF I=1 THEN DO INP1.1= '//SORTIN DD DSN='³³INPUT1³³',' INP1.2= '// DISP=SHR' QUEUE INP1.1 QUEUE INP1.2 RECS=QUEUED() END QUEUE JCL1.I QUEUE JCL2.I QUEUE JCL3.I RECS=QUEUED()END"ALLOC F(OUTDD) DA(REXXSPL.SORTOUT) SHR""EXECIO" RECS "DISKW OUTDD (FINIS"DO I=01 TO DIVR BY 1 CNT1=CNT1 + DIVCNT SYS1.I = ' OUTFIL FILES='³³I³³','³³'STARTREC='³³CNT2³³',ENDREC='³³CNT1 IF CNT2 = 1 THEN DO ONETME1='//SYSIN DD *' ONETME2=' SORT FIELDS=COPY' QUEUE ONETME1 QUEUE ONETME2 END QUEUE SYS1.I RECS=QUEUED() CNT2=CNT1 + 1END"ALLOC F(SYSDD) DA(REXXSPL.SYSIN) SHR""EXECIO" RECS "DISKW SYSDD (FINIS"EXIT;

Page 21: MVS History

Hi All,

As a follow up to the above posts I am just adding one more tip on sending messages in MVS.

Send a message to a TSO user. In this cmd, the message is cancelled if the user is not logged on.

Code:

SEND USER (USERID) ?message?

If you give * in place of USERID, you?ll get the message.

Wait until the user is able to receive the message.

Code:

SEND USER (USERID) ?message? WAIT

Send a message to another user, so that if the user is not logged on currently, the message will be delivered when the user logs on.

Code:

SEND USER (USERID) ?message? LOGON

Display messages sent to you while you were logged off.

Code:

LISTBC

Hope this helps.

Hi All,

Got one VB file which contains record of various sizes. Now our requirement is to retrieve a set of records of particular length.

e.g My VB file has got records with LRECL 4, 6, 8 ... Since it is a VB file we need to add the control information 4 bytes to it. So now LRECL will be 8, 10, 12.

Now i need to retrieve the record with LRECL=10 here goes the JCL for it

//STEP1 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD DISP=SHR,DSN=ISDNOSA.TEST.FILE6 //SORTOUT DD SYSOUT=*

Page 22: MVS History

//SYSIN DD * SORT FIELDS=COPY INCLUDE COND=(1,2,BI,EQ,+10) /*

Input is :

----+----1----+----2----+----3----+----4----+***************************** Top of Data ***1234 123456 12345678 12345678

Output is (keep 4 bytes control information in mind)----+----1----+----2----+----3--********************************123456 *******************************

Now another Requirement is to retrieve what are the possible record length available in that file and the count of the same?

//Step0100 EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //IN DD DSN=... input file (VB) //RPT DD SYSOUT=* //TOOLIN DD * * List minimum, maximum, total and average record length in TOOLMSG. STATS FROM(IN) ON(VLEN) * Show the number of records with each length in RPT. OCCUR FROM(IN) LIST(RPT) BLANK - HEADER('Length') ON(VLEN) - HEADER('Count') ON(VALCNT) /*

TOOLIN Output :

MINIMUM: +000000000000008, MAXIMUM: +000000000000012AVERAGE: +000000000000011, TOTAL : +000000000001318

RPT Output:

******************************** Top ofLENGTH COUNT ------ --------------- 8 12 10 1 12 101 ******************************* Bottom

So from the above result we have 12 records of LRECL 8, 1 record of LRECL 10 and 101 records of LRECL 12

Page 23: MVS History

In batch file aid to avoid RC 8 for empty file copy, we used to give PARM value as shown below...

//STEPNAME EXEC PGM=FILEAID,                                  //         PARM='OPT=0250100606611121025000005579100'        //DD01     DD DSN=INPUT.FILE,DISP=SHR                //DD01O    DD DUMMY                                          //SYSIN    DD *                                              $$DD01 COPY                                                  /*

See the meaning for that number:

Page 24: MVS History

closest thing I can find is a table built during installation. There is a field called BTOPT18 that tells File-Aid what return code to use when a file is empty.

Unfortunately, I can't find and references to how to override this option. The manuals don't have an overall index that I can find, and Compuware didn't create a 'bookshelf' PDF file, just individual books with 8 character names.

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

There is a parm you can pass to FileAid that will override the first 35 installation defaults, including the 18th one that controls what you need. The bad part is that it overalys all characters starting from the left, so you have to provide the values for the first 17 options as well.

So the execute line needs to look like:

Code: PGM=FILEAID,PARM='OPT=0250100606611121025000005882104' Those last two bytes are the return code for an empty file. I tried it and it works. You can put anything from 00 to 99 in there. The other values are the defaults from the manual. In the installation guide, do a find on 'opt=' and you go to the bottom of the list of options.

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

Well, I have Good News and Bad News. The Good news is that this CAN be overridden. The Bad news is that it is less than straight forward in FileAID.

According to the "File-AID/MVS Installation Guide R8.9" you can modify the Batch FileAID installation options with the following PARM syntax:

Code: // EXEC PGM=FILEAID,PARM='OPT=????????' The downside is in the format of those question marks. The following is a summarization of the example in the manual.

The first 5 FileAID Batch options are as follows:

BTOPT01, Displacement 00, Default value 0250, Record Print Default BTOPT02, Displacement 04, Default value 1, Form Print Default BTOPT03, Displacement 05, Default value 0, Key Print BTOPT04, Displacement 06, Default value 06, Batch Buffer Space BTOPT05, Displacement 08, Default value 06, TSO Buffer Space

In order to override the Batch Buffer Space for example, from it's default value of 06 to 12 the Override would look like this:

Code: // EXEC PGM=FILEAID,PARM='OPT=02501012'In other words, you have to specifiy ALL the values to the left of the one you are trying to override! Eww Yuk! And to make matters worse, Ed Goodman is correct that the option you want is BTOPT18. So here are the next 13 installation values from the book:

BTOPT06, Displacement 0A, Default Value 6, PRINTER SPACING. BTOPT07, Displacement 0B, Default Value 1, CHARACTER SET BTOPT08, Displacement 0C, Default Value 1, TSO PROMPTING. BTOPT09, Displacement 0D, Default Value 1, ABEND CONTROL. BTOPT10, Displacement 0E, Default Value 2, DATE FORMATTING. BTOPT11, Displacement 0F, Default Value 1, MONTH FORMATTING. BTOPT12, Displacement 10, Default Value 025, I/O ERROR. BTOPT13, Displacement 13, Default Value 0, UPDATE OPTION. BTOPT14, Displacement 14, Default Value 0000, UPDATE ACCESS CODE. BTOPT15, Displacement 18, Default Value 58, PRINT LINES AT 8LPI. BTOPT16, Displacement 1A, Default Value 82, PRINT LINES AT 12LPI. BTOPT17, Displacement 1C, Default Value 1, USER FUNCTION. BTOPT18, Displacement 1D, Default Value 08, NO RECORDS COPIED RETURN CODE.

Page 25: MVS History

The manual says "BTOPT18 specifies the return code that File-AID is to issue when records are not selected for copying to any output dataset in a copy operation. The value 08 reflects the current return code issued. Any number from 00 (issue no return code) through 99 is valid. File-AID always reflects the highest return code issued during an execution."

So assuming your shop took all the FileAID installation defaults, in order to change the return code from 08 to 04 your override would look like:

Code: // EXEC PGM=FILEAID,PARM='OPT=0250100606611121025000005882104'Wow is that ugly or what?

1   2       4   5       9   12          10         7          3             6            14                                                         11 16 13 25 8                              8                16                        15     18   26     23          17           22  27   24     19                        20                                      21         17                                     

Across

1. A CICS transaction used to display individual message information similar to that provided in the CICS Messages & Codes manual. 3. Option used in changeman to Browse any package, component and relationships. 4. It establishes a a linkage between the application program and the DB2 data it accesses. 6. This version of mainframe OS introduced the concept of expanded memory. 8. This utility is used to improve access performance of a table space. 11.It indicates absence of a column value in a row. 13.Its one of the category of keys in CICS. 15. Most used type of VSAM file. 17. A data set utility used to create a PDS from a sequential data set. 19. a working storage variable with appropriate size to hold the range of an array 21. One of the parameter which can be coded both in job as well as exec statement. 26. Commonly used measure of CPU power.

Page 26: MVS History

27. The Name of the collection of access method modules which process sequential datasets.

Down 2. It contains the circuits necessary for performing arthemetic operations 5. Old name for Connect:Direct 7. This clause is used to tell the compiler what formats to use for specific fields 9. This command lets you proceed backward through a data set. 10. CECI is used to check this 12. A convenient and interactive way of testing sql statements before embedding them into the application program. 14. command used with map keyword in CICS 16. CICS command to pass control from one program to another. 18.This command is used to relinquish control and allow tasks higher on the active chain to proceed. 20.Used to end an instream procedure. 22.DB2 uses this type of index 23. Pre requisite for search all 24. Cobol verb used to combine two or more data sets. 25.Pre compiler's output in DB2

C M A C     B I N D     R   S    L     S     D   U   E   P  Q U E R Y     M V S X A   US         N         A   D   FE         T         G   P   IN U L L A I D R E O R G  D   I     X   B     8   E        N   16     R         V        K S D S   M I P S          17   U   O     B  S A M     S U B S C R I P T      E P   T     R     R     E               E  R E G I O N I E B G E N E R    E     D              

\\157.227.90.8\cbg\CBG\17 CBG\40 Working\Saravanan Desingh\Latest Docs

Page 27: MVS History

Topic AuthorAbend-AID_Resolving a S0C7 with Basic Language Support Sharmath DeeniyaCOBOL examples Saravanan DesinghDialog Manager - Part I Saravanan DesinghDialog Manager - Part II Saravanan DesinghDialog Manager - Part III Saravanan DesinghFile-AID_TSO(Option 3_5) for VSAM Saravanan DesinghISPF - A Reference Saravanan DesinghISPF Edit Macro (Using REXX) Saravanan DesinghREXX_MVS Programming Saravanan DesinghREXXTOOLS_MVS Saravanan DesinghTSO_E Programming Saravanan DesinghVendor Supplied JCLs Saravanan DesinghVendor Tools & Technology Saravanan DesinghVSAM AIX Parameter Definitions Saravanan SelvavinayagamVSAM Parameter Definitions Saravanan SelvavinayagamzOS DFSORT V1R5 Programming Saravanan Desingh

Hi All, Using IBM ILBOWAT0 utility we can set delay in COBOL program.

Code:

IDENTIFICATION DIVISION. PROGRAM-ID. TEST4. ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. WORKING-STORAGE SECTION. 01 DELAY-AMT PIC S9(9) COMP VALUE 60. 01 ILBOWAT0 PIC X(8) VALUE 'ILBOWAT0'. 01 CURRENT-TIME PIC 9(8). PROCEDURE DIVISION. ACCEPT CURRENT-TIME FROM TIME. DISPLAY 'TIME OF DAY BEFORE ILBOWAT0: ', CURRENT-TIME CALL ILBOWAT0 USING DELAY-AMT. ACCEPT CURRENT-TIME FROM TIME. DISPLAY 'TIME OF DAY AFTER ILBOWAT0: ', CURRENT-TIME STOP RUN.

Output: ******************************** Top of Data

*********************************** TIME OF DAY BEFORE ILBOWAT0: 06400628 TIME OF DAY AFTER ILBOWAT0: 06410635 ******************************* Bottom of Data

********************************