/*REXX*/ "ISPEXEC LIBDEF ISPLLIB DATASET ID('SCOTTY.LOADLIB')" ADDRESS "TSO" /* USE STANDARD TSO ENVIRONMENT COMMANDS */ VSANCHOR='INIT' /* INITIALIZE RXVSAM ANCHOR */ FILENAME='SCOTTY.TEST.VSAM.FILE' /* FILE NAME */ SAY FILENAME 'ALLOCATED, OPENING RESET/UPDATE' ALLOC "FI(OUTPUT) DSNAME('"FILENAME"')" /* ALLOCATE IT */ RC = RXVSAM("OUTPUT", "OPENRU") /* CALL RXVSAM TO OPEN IT */ IF RC <> "00000000" /* IF BAD RETURN SAY SO AND XIT */ THEN DO /**/ SAY "OPEN FAILED, RETURN CODE =" RC /**/ EXIT /**/ END /**/ SAY FILENAME 'OPENED RESET/UPDATE. WRITING RECORDS.........' DO COUNTER = 1 TO 50 TEXT = 'RECORD NUMBER' COUNTER RECORD = RIGHT(COUNTER,32,'0') || LEFT(TEXT,48,' ') SAY 'THE FOLLOWING DATA IS BEING WRITTEN' SAY RECORD SAY ' ' QUEUE RECORD RC = RXVSAM("OUTPUT", "WRITE") /* CALL RXVSAM TO READ */ /* A MAX OF 1000 RECORDS */ /* INTO THE DATA STACK */ IF RC <> "00000000" /* HANDLE RETURN CODE */ THEN DO /**/ SAY "WRITE FAILED, RETURN CODE =" RC /**/ RC = RXVSAM("OUTPUT", "CLOSE") /* MAKE SURE WE DONT */ /* GET A SA03 ABEND */ EXIT /* END THE PROGRAM */ END /**/ END /* AT >>EOF<< FALL THROUGH HERE.... */ RC = RXVSAM("OUTPUT", "CLOSE") /* CALL RXVSAM TO CLOSE IT */ IF RC <> "00000000" /* HANDLE RETURN CODE */ THEN DO /* AND SO FORTH..... */ SAY "CLOSE FAILED, RETURN CODE =" RC /**/ EXIT /**/ END /**/ FREE "ALL" /* FINALLY, RELEASE THE ALLOCATION */