Mainframe Utility: COMPRSME

Return to Mainframe Utilities Page

Module


ISREDIT MACRO (HELP)
ISPEXEC CONTROL ERRORS RETURN
/**** SET MESSAGE DISPLAY ON/OFF BASED ON THE DEBUG SWITCH ***/
ISPEXEC VGET (DBGSWTCH) PROFILE
IF &DBGSWTCH = &STR(ON) THEN CONTROL MSG LIST CONLIST SYMLIST NOFLUSH
ELSE CONTROL NOMSG NOLIST NOFLUSH NOPROMPT
/********************************************************************/
/*    COMPRSME                                                      */
/*                                                                  */
/* PURPOSE:  THIS EDIT MACRO WILL COMPRESS A PDS LIBRARY WHILE      */
/*           A MEMBER IS BEING EDITED.  IF A 'SAVE' HAS BEEN        */
/*           ATTEMPTED AND A SPACE PROBLEM OCCURS, THE PDS CAN BE   */
/*           BE COMPRESSED BY ENTERING 'COMPRSME' ON THE COMMAND    */
/*           LINE.  THE IEBCOPY MESSAGES WILL BE PLACED IN A        */
/*           SYSDA DATASET NAMED '&USERID.COMPRESS.LIST' AND MAY    */
/*           BE REVIEWED.                                           */
/*                                                                  */
/*      CREATED BY JEFF JONES 12/6/89 - SEATTLE SE CENTER           */
/*                                                                  */
/*           C H A N G E        L O G                               */
/*      PROJECT     DATE        ID             COMMENTS             */
/*                                                                  */
/********************************************************************/

IF &HELP = &STR(HELP) THEN GOTO HELPSEC

  ISREDIT (EDITDSN) = DATASET
  SET &EDITDSN = &NRSTR('&EDITDSN')

ERROR +
 DO
  ERROR OFF
  WRITE AN ERROR HAS OCCURRED PRIOR TO THE COMPRESS.
  FREE FILE(SYSIN,SYSPRINT,SYSUT3,SYSUT4,OUTPUT)
  GOTO ENDIT
 END

ALLOCATE FILE(SYSIN) +
    UNIT(SYSDA) VOLUME(WRK$$$) +
    SPACE(1,1) TRACK +
    LRECL(80) RECFM(F) BLKSIZE(80) REUSE
SET LISTDSN = &STR(&SYSUID..COMPRESS.LIST)
IF &SYSDSN('&STR(&LISTDSN)') ¬= OK THEN +
 ALLOCATE FILE(SYSPRINT) DATASET('&STR(&LISTDSN)') RECFM(F,B,A) +
   UNIT(SYSDA) VOLUME(WRK$$$) +
   LRECL(121) BLKSIZE(12947) SPACE(1,1) TRACK REUSE
ELSE +
 ALLOCATE FILE(SYSPRINT) DATASET('&STR(&LISTDSN)') SHR REUSE
 ALLOCATE FILE(SYSUT3) UNIT(SYSDA) SPACE(1,1) CYLINDERS REUSE
 ALLOCATE FILE(SYSUT4) UNIT(SYSDA) SPACE(1,1) CYLINDERS REUSE
 ALLOCATE FILE(OUTPUT) DATASET(&EDITDSN) SHR REUSE

OPENFILE SYSIN OUTPUT
SET SYSIN = &STR(   COPY INDD=OUTPUT,OUTDD=OUTPUT)
PUTFILE SYSIN
CLOSFILE SYSIN

ERROR +
 DO
  WRITE COMPRESS ERROR - DETAILS IN '&STR(&LISTDSN)'
  GOTO ENDIT
 END

TSOEXEC CALL 'SYS1.LINKLIB(IEBCOPY)' 'SIZE=512K'
  WRITE &EDITDSN COMPRESSED AT &SYSTIME &SYSDATE

GOTO ENDIT

HELPSEC: +
WRITE
WRITE            *** HELP FOR EDIT MACRO 'COMPRSME' ***
WRITE
WRITE THE COMPRSME MACRO WILL ENABLE A USER WHO IS EDITING A PDS LIBRARY
WRITE TO COMPRESS THE DATASET WITHOUT EXITING THE MEMBER BEING EDITED.
WRITE
WRITE IF AN ATTEMPT HAS BEEN MADE TO SAVE A NEW PDS MAMBER AND A SPACE
WRITE PROBLEM OCCURS THE DATASET CAN BE COMPRESSED BY TYPING 'COMPRSME'
WRITE ON THE COMMAND LINE AND PRESSING 'ENTER'.  A MESSAGE STATING THAT
WRITE THE DATASET HAS BEEN COMPRESSED WILL BE DISPLAYED ON THE SCREEN
WRITE UPON SUCCESSFUL COMPLETION OF THE COMPRESS.
WRITE
WRITE THE IEBCOPY MESSAGES MAY BE REVIEWED, IF DESIRED, AFTER THE
WRITE COMPRESS IS COMPLETE BY EDITING A SYSDA DATASET NAMED
WRITE '&STR(&LISTDSN)'
WRITE
WRITE
WRITE
WRITE
WRITE       *** END OF HELP *** NO PROCESSING PERFORMED ***

EXIT
ENDIT: +
 END
            


Documentation


 This utility allows the user to type COMPRSME on the command line of an edit
 session of a PDS member and compress the PDS.  This can be quite useful when
 you go to store a new member and find out that the PDS has run out of space.
 Your IEBCOPY compress messages are then placed in a dataset under your TSO user
 id.
            


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.