BMS/TS Technique

If you have any questions about the content of this page, please contact CICS Requests for  clarification)

Backup and REORG your ii$FILE regularly. 

The data used by BMS/TS and ASSIST/TS is maintained in a VSAM file  unique to your particular institution or organization. It is your responsibility  to keep that file reorganized and backed up.

Your particular DSN can be  determined by looking in your test region at the file whose DDNAME is ii$FILE  (where “ii” is the first two characters of your BMS/TS  transaction).

There is a recently updated example of the REORG job stream at the end of this article. That example  saves a copy of the BMS/TS and ASSIST/TS data in a GDG as the REORG progresses.  Be sure to use the correct IDCAMS parameters for your particular VSAM  file.

Such a REORG keeps your file clean and fast as well as giving you a  disaster recovery point. If you ignore the advice given later in this article,  your mapsets can be recovered from that saved backup file. An example of that  process is also provided.

Some BMS/TS techniques that will keep  you from having to use that backup

Save before you  change

Copy your map to a new name before any changes are made, no  matter how minor they may be. For example, my technique is to copy MPSAMP to  BSAMP or OSAMP, or ZSAMP. Make this a habit and you will be saved much  grief.

While updating, Checkpoint (PF6) and Refresh  (PF8)

Use PF6 to checkpoint changes to your map as you go. Change a  few things, hit PF6, change some more Hit PF6, bump the erase end-of-field, and  all is not lost. Just hit PF8 and you are back at your last PF6 checkpoint. 
Note: PF6 does not SAVE your map back to the VSAM file, if you subsequently  hit CLEAR, all updates are lost.

Stay away from  Erase-EOF

The worst key for BMS/TS is the erase-to-end-of-field  (Erase-EOF) key. Your whole map can disappear in an instant. (Slap, slap, bad  finger)

Be careful with insert mode and the backspace  key

Existing fields can slide around on you if your terminal is set  to INSERT mode. By all means, use it when appropriate, but be aware.
The  same applies to the backspace and delete keys.
See the advice about use of  the PF5 key below.

Set you emulator options correctly

Many  terminal emulators let you select the style of insert and delete that you want.  I recommend that you stay away from the “multi-line” insert or “multi-line”  delete options.

Use PF5 in case any fields moved

If you  have moved any fields horizontally on the screen, hit the PF5 key before  finishing. That tells BMS/GT to look around for fields that have moved. This  will save you time because you won’t have to re-enter as much data.
During  the post-paint Map Verification process it may prompt you about more fields than  you actually changed, but if the data is correct, all you have to do is hit  Enter.

Hit CLEAR when disaster strikes

If you see that you  just made a major blunder and have no checkpoint to fall back to, hit CLEAR  before you hit anything else. You may lose your changes, but you won’t be  spending the next two hours rebuilding your map from  scratch.

The following function keys are available during  Screen Painting activity.

F1 - View these function key settings
F2 - Duplicate the line where the cursor is positioned
F3 - Enter Assign default values to all entries and advance to the map verification screen. Enter will do the same
       thing.
F4 - Display map definition options. There you can change upper and lower case,  extended attribute options and
       field name prefix, to name a few.
F5 - Check for movement of fields during an update and realign the symbolic and  physical maps
F6 - Checkpoint the current map image. (PF1 calls this a SAVE, it is NOT)
F7 - Checkpoint the current map image. (PF1 calls this a SAVE, it is NOT)
F8 - Refresh the screen from the previous checkpoint image
F9 - Insert a blank line where the cursor is positioned
F10 - Bring up the Copy/Move Functions menu

 

The following function keys are available during the Screen Verification  process

ENTER - Type data and tab around the screen. Hit enter to simulate your  application
If you have not typed anything, ENTER will return you to the  Select a Map Screen.
F1 - View these function key settings
F2 - Move the default cursor location to the current cursor location
F3 - Return to the Select a Map Screen
F4 - Return to the screen painting process
F5 - Display all spaces on the map as question marks (?)
F6 - Go to the Submit Screen ( note: this is an undocumented function)
F7 & up - Same as PF3

The following JCL streams are provided as examples  for our customers to use as they see fit. These are mildly edited versions of  actual jobs run on behalf of NWRDC’s GT software file.

-------------------------------------------- 
SAMPLE REORG JOB
-------------------------------------------- 
//xxxxx JOB xxxxx,’xxxxxxxxx’,TIME=(x)       (Your JOB card)
/*JOBPARM  L=99999
//*****************************************
//* CLOSE THE FILE 
//*****************************************
//CLOSE EXEC  NWBCLOSE,TEST=TEST
//SYSIN DD * 
NW$FILE                                      (Your ii$FILE) 
//*****************************************
//* LIST DIRECTORY 
//*****************************************
//STEP0 EXEC  GTBUTIL,COND=(0,NE),
// USER=KICS,NAME='CT99.NWR.MASTER'          (Your DSN) 
//BMSGT.SYSIN DD *
DLIST
//***************************************** 
//* BACKUP USING GTBUTIL TO TAPE GDG 
//*****************************************
//STEP1 EXEC  GTBUTIL,COND=(0,NE),
// USER=KICS,NAME='CT99.NWR.MASTER'          (Your DSN) 
//BMSGT.TAPOUT DD DSN=NWR.BMSGT.BACKUP(+1),  (Your backup)
//  DCB=(NWR.MODEL),                          (Your model)
//  UNIT=TAPEC,DISP=(NEW,CATLG,CATLG)
//BMSGT.SYSIN DD *
BACKUP 
//*****************************************
//* SECOND BACKUP USING  GTBUTIL TO DASD
//*****************************************
//STEP2 EXEC  GTBUTIL,COND=(0,NE),
// USER=KICS,NAME='CT99.NWR.MASTER'          (Your DSN) 
//BMSGT.TAPOUT DD DSN=&&DASD,
// UNIT=SYSDA,DISP=(NEW,PASS), 
// SPACE=(CYL,(40,2))                        (Your size)
//BMSGT.SYSIN  DD *
BACKUP
//*****************************************
//*  DELETE/REDEFINE VSAM SPACE
//***************************************** 
//STEP3 EXEC PGM=IDCAMS,COND=(0,NE)
//SYSPRINT DD SYSOUT=A
//SYSIN  DD *
DEL KICS.CT99.NWR.MASTER                    (Your DSN)
DEF CL  (NAME(KICS.CT99.NWR.MASTER) -        (Your DSN)
 CYL(40 2)  -                                (Your size)
 FSPC(30 10) -
 INDEXED - 
 SHR (2) ) -
DATA (NAME(KICS.CT99.NWR.MASTER.DATA) -     (Your DSN) 
 RECSZ(2048 22528 ) -                       (Your LRECL)
 KEYS(20 4) - 
 CISZ(26624) ) -                            (Your CISIZE)
INDEX  NAME(KICS.CT99.NWR.MASTER.INDEX) -    (Your DSN)
NOIMBED ) 
//*****************************************
//* RESTORE BACKED UP DATA 
//*****************************************
//STEP4 EXEC  GTBUTIL,COND=(0,NE),
// USER=KICS,NAME='CT99.NWR.MASTER',        (Your DSN) 
//BMSGT.TAPIN DD DSN=&&DASD,
// UNIT=SYSDA,DISP=(OLD,DELETE) 
//BMSGT.SYSIN DD *
RESTORE 
//*****************************************
//* LIST DIRECTORY AGAIN 
//*****************************************
//STEP5 EXEC  GTBUTIL,COND=(0,NE),
// USER=KICS,NAME='CT99.NWR.MASTER'         (Your DSN) 
//BMSGT.SYSIN DD *
DLIST
//* 
//*****************************************
//* OPEN THE FILE 
//*****************************************
//OPEN EXEC  NWBOPEN,TEST=TEST
//SYSIN DD * 
NW$FILE                                     (Your ii$FILE)
//* 

--------------------------------------------
SAMPLE  MAPSET RESTORE JOB
-------------------------------------------- 

//xxxxxxxx JOB xxxxx,'xxxxxxxx',TIME=(x)    (Your JOB card)
/* 
//*****************************************
//* CLOSE THE FILE 
//*****************************************
//CLOSE EXEC  NWBCLOSE,TEST=TEST
//SYSIN DD * 
NW$FILE                                     (Your ii$FILE)
/* 
//*****************************************
//* PULL A MAPSET FROM A GT  BACKUP FILE
//*****************************************
//GTBUTIL EXEC  GTBUTIL,COND=(0,NE),
// USER=KICS,NAME=TEST.NWR.MASTER           (Your DSN) 
//BMSGT.TAPIN DD DSN=NWR.BMSGT.BACKUP(0),   (Your backup)
// DISP=OLD 
//BMSGT.SYSIN DD *
TAPESEL REPLACE=YES,MAPSET=MPSAMP            (Your  mapset)
/*
//*****************************************
//* OPEN THE  FILE
//*****************************************
//OPEN EXEC  NWBOPEN,TEST=TEST
//SYSIN DD * 
NW$FILE                                      (Your ii$FILE)
//*