.. _#_tn201719: Virtel Batch Maintenance ======================== This newsletter documents the procedure to maintain the VIRTEL SAMP TRSF VSAM file using a batch facility. Previously, updates to the Virtel SAMP TRSF VSAM file were through the “Drag and Drop” interface provided by the administration portal. Using this procedure removes the manual process required to perform the “drag and drop” operation. Using batch also improves the automation and maintenance distribution in a complex environment supporting multiple instances of Virtel. **Installing the maintenance package** The maintenance package is delivered to the customer as a zip file. It contains the following members:- * updtnnnn.trs File to be uploaded to mainframe * Newsletter PDF on how to install maintenance packages * readme-updtnnnn.txt Fix details contained within the package **Control members to be uploaded to the VIRTEL CNTL library:-** BATCH Batch control member EOJ EOJ Control member UPLMAINT.JCL Upload maintenance procedure VIRTELUP.JCL Upload maintenance batch job. VIRTCTBT.ASM Example Batch TCT SCENLOAD.ASM Batch SCENARIO .. note:: These control members need only to be uploaded once unless instructed otherwise. 1. Upload and copy members BATCH, EOJ, UPLMAINT.JCL, VIRTELUP.JCL, VIRTCTBT.ASM,SCENLOAD.ASM to the VIRTEL CNTL library. *These members are also listed in Appendix A of this newsletter. The JCL members and TCT will need modifying to conform to you standards. For the TCT, areas that need to be changed are highlighted in RED.* 2. Assemble the modified TCT and SCENLOAD into the VIRTEL LOADLIB using the ASMTCT and ASMSCEN procedures located in the VIRTEL CNTL library. 2. Upload the TRS dataset updtnnnn.TRS to a pre-allocated TRS file. Use the sample JCL below to allocate the file:-:: //S01 EXEC PGM=IEFBR14 //OUTFILE DD DSN=&SYSUID..MAINT.UPDTNNNN.TRS,DISP=(,CATLG), // UNIT=SYSDA, // DCB=(LRECL=1024,BLKSIZE=6144,RECFM=FB), // SPACE=(CYL,(10,10)) 4. After modifying the JCL in UPLMAINT.JCL and VIRTELUP.JCL to you site standards, submit the job VIRTELUP. This will upload the maintenance fixes to the destination SAMP TRSF as identified in the UPLMAINT procedure. This procedure also uses a temporary ARBO file which has been configured to support only BATCH updates. .. raw:: latex \newpage **Appendix A** *Member VIRTCTBT* :: TITLE 'VIRTEL TCT FOR BATCH' PRINT NOGEN * Change lines identified by < VIRTERM TYPE=INITIAL,APPLID=APPLHOLT, * < LANG='EN', LANGUAGE FOR USER MESSAGES * < COUNTRY=FR, EBCDIC-ASCII TRANSLATION * < DEFUTF8=IBM1147, DEFAULT OUTPUT ENCODING UTF-8 * < CHARSET=, UTF-8: ADDITIONAL CHARSETS * GMT=SYSTZ, * TCP1=(TCPIP,,,250), TCPIPNAME,,,MAXSOCKETS * VIRSV1=(VIRSV), * HTVSAM=VIRHTML, * HTMINI=(1,1), * BATCH1=(SYSIN1,DCBI1,SYSOUT1,DCBO1,SYSPCH1,DCBP1), * BUFSIZE=20000, * BFVSAM=32768, * ACCUEIL=YES, * DEFENTR=(PC,MINITEL), * CORRECT=00, * SILENCE=YES, * STATS=SMF, OR (MULTI,CONTINUE/TERMINATE) * STATDSN=(YOURQUAL.VIRTEL.STATA, IF STATS=MULTI * YOURQUAL.VIRTEL.STATB), IF STATS=MULTI * APPSTAT=YES, * SYSPLUS=YES, * DONTSWA=YES, * NBDYNAM=250, * MULTI=YES,RESO=NO,ARBO=YES,MINITEL=YES, * VIRSECU=YES,SECUR=(RACROUTE,RACF), * < RAPPL=FACILITY,RNODE=FACILITY,PRFSECU=VIRTEL, * < UFILE1=(SAMPTRSF,ACBH1,0,10,01), * UFILE2=(HTMLTRSF,ACBH2,0,10,01), * UFILE3=, (PLUGTRSF,ACBH3,0,10,01), * GATE=GENERAL, * NBCVC=32, * MEMORY=ABOVE, * COMPANY='YOUR DETAILS HERE', COMPANY INFO X < ADDR1='ADDRESS1', COMPANY INFO X < ADDR2='ADDRESS2', COMPANY INFO X < LICENCE='P500 - PERMANENT', LICENCE INFO X < EXPIRE=(2999,12,31), LICENCE EXPIRATION X < CODE='12356789', LICENCE CODE X < TITRE1='S Y S P E R T E C F R A N C E ', * TITRE2='V I R T E L' *------------------------------------------------------- DCBP1 DCB DDNAME=SYSPCH1, SYSPCH1 DD * DCBE=DCBP1X, * LRECL=80, * DSORG=PS, * RECFM=FB, * MACRF=(PM) DCBP1X DCBE RMODE31=BUFF *------------------------------------------------------- DCBI1 DCB DDNAME=SYSIN1, SYSIN DD * DCBE=DCBI1X, * LRECL=80, * DSORG=PS, * RECFM=FB, * MACRF=(GL) DCBI1X DCBE EODAD=0,RMODE31=BUFF *------------------------------------------------------ DCBO1 DCB DDNAME=SYSOUT1, SYSPRINT DD * DCBE=DCBO1X, * LRECL=133, * DSORG=PS, * RECFM=FBA, * MACRF=(PM) DCBO1X DCBE RMODE31=BUFF *------------------------------------------------------ ACBH1 ACB AM=VSAM,DDNAME=SAMPTRSF,MACRF=(SEQ,DIR,OUT,LSR),* STRNO=3 ACBH2 ACB AM=VSAM,DDNAME=HTMLTRSF,MACRF=(SEQ,DIR,OUT,LSR),* STRNO=3 ACBH3 ACB AM=VSAM,DDNAME=PLUGTRSF,MACRF=(SEQ,DIR,OUT,LSR),* STRNO=3 END .. raw:: latex \newpage *Member SCENLOAD* :: SCENLOAD SCREENS APPL=SCENLOAD * * SCENARIO TO load/download a page * normally used in BATCH Virtel. * SCENARIO INITIAL * ** test DEBUG$ TRACE,TERMINAL ** test DEBUG$ TRACE,LINE * COPY$ SYSTEM-TO-VARIABLE,VAR='PAGENAME', << mypagename * FIELD=(VALUE-OF,ROUTING-PARAMETER) * COPY$ SYSTEM-TO-VARIABLE,VAR='APPLID', * FIELD=(NAME-OF,VIRTEL) * COPY$ INPUT-TO-VARIABLE,FIELD='TODO',VAR='TODO' CASE$ 'TODO', * (EQ,'DUMP',DODUMP), * (EQ,'LOAD',DOLOAD), * ELSE=ERROR1 * DODUMP LABEL$ COPY$ OUTPUT-FILE-TO-VARIABLE,FILE='*PAGENAME', * VAR='MYPAGE',TYPE=(ASIS,BASE64) ERROR$ 0,'*APPLID',' SCENLOAD IS DUMPING ','*PAGENAME' SEND$ AS-FILE,VAR='MYPAGE', * NAME='MYFILE', * TYPE='image/x-virtel' GOTO$ DONE * DOLOAD LABEL$ COPY$ INPUT-FILE-TO-VARIABLE,VAR='MYPAGE', << page in BASE64 * FILE='MYFILE' IF$ NOT-FOUND,THEN=ERROR2 ** COPY$ LIST-TO-VARIABLE,VAR='PAGENAME',TYPE=REPLACE, * LIST=('AA','*PAGENAME') ERROR$ 0,'*APPLID',' SCENLOAD IS LOADING ','*PAGENAME' COPY$ VARIABLE-TO-FILE,FILE='*PAGENAME', * VAR='MYPAGE',TYPE=(ASIS,BASE64) IF$ NOT-FOUND,THEN=ERROR3 COPY$ LIST-TO-VARIABLE,VAR='RESP', * LIST=('file ','*PAGENAME',' was loaded Ok') GOTO$ RESPTHAT * ERROR1 COPY$ LIST-TO-VARIABLE,VAR='RESP', * LIST=('ERROR1: INVALID COMMAND ','*TODO') GOTO$ RESPTHAT * ERROR2 COPY$ LIST-TO-VARIABLE,VAR='RESP', * LIST=('ERROR2: FILE NOT FOUND ','*PAGENAME') GOTO$ RESPTHAT ERROR3 COPY$ LIST-TO-VARIABLE,VAR='RESP', * LIST=('ERROR3: ERROR LOADING ','*PAGENAME') GOTO$ RESPTHAT * RESPTHAT LABEL$ ERROR$ 0,'*APPLID',' SCENLOAD RESPONSE IS ','*RESP' SEND$ AS-ANSWER,VAR='RESP',TYPE='TEXT' GOTO$ DONE * DONE LABEL$ ** test DEBUG$ SNAP,TERMINAL ACTION$ SERVE-ANOTHER-USER SCENARIO END * SCRNEND END .. raw:: latex \newpage *Member EOJ* :: .EOJ *Member BATCH* :: *--------------------------------------------------------------* * BATCH INTERFACE TRANSACTIONS - * *--------------------------------------------------------------* SUBDIR ID=W2H-DIR, DESC='Pages for WEB2HOST', DDNAME=SAMPTRSF, KEY=W2H-KEY, NAMELEN=64, AUTHUP=X, AUTHDOWN=X, AUTHDEL=X SUBDIR ID=DOC-DIR, DESC='Pages for WEB2HOST', DDNAME=SAMPTRSF, KEY=DOC-KEY, NAMELEN=64, AUTHUP=X, AUTHDOWN=X, AUTHDEL=X LINE ID=BATCH, NAME=BATCH, DESC='HTTP line for Batch', TERMINAL=BT1, ENTRY=BATCH, TYPE=BATCH1, INOUT=1, PROTOCOL=VIRHTTP TERMINAL ID=BT1LOC00, DESC='Batch terminals', TYPE=3, COMPRESS=2, INOUT=3, STATS=12, REPEAT=0006 ENTRY ID=BATCH, DESC='Batch Entry Point', TRANSACT=BT1, TIMEOUT=0060, ACTION=0, EMUL=HTML TRANSACT ID=BT1-00, DESC='HTML Pages', NAME=PUBLIC, APPL=W2H-DIR, TYPE=4, STARTUP=1, TERMINAL=BT TRANSACT ID=BT1-02, DESC='HTML Pages', NAME=DYN, APPL=DYN-DIR, TYPE=4, STARTUP=1, TERMINAL=BT TRANSACT ID=BT1-03, DESC='Scenario upload/download', NAME=LOADER, APPL=$NONE$, TYPE=2, TERMINAL=BT, STARTUP=1, TIOASTA=&/S, EXITSTA=SCENLOAD TRANSACT ID=BT1-04, DESC='SAMP Pages', NAME=W2H, APPL=W2H-DIR, TYPE=4, STARTUP=1, TERMINAL=BT TRANSACT ID=BT1-05, DESC='DOC Pages', NAME=DOC, APPL=DOC-DIR, TYPE=4, STARTUP=1, TERMINAL=BT TRANSACT ID=BT1-72, DESC='Directory upload', NAME=uplw2h, APPL=VIR0041C, TYPE=2, TERMINAL=BT, LOGMSG=W2H-DIR, STARTUP=2