You are on page 1of 27

File Handling & Temporary

Storage
Day4
Objectives
• Access Methods
– VSAM
– BDAM
• VSAM Considerations
– Random access
– Sequential access
• Temporary Storage Control
– Commands to read, write and delete
– Design considerations
– Examples
• Transient Data Control
– Intrapartition TD queues
– Extrapartition TD queues
– Commands to read, write and delete
– Examples
Copyright © 2005, Infosys 2 ER/CORP/CRS/TP01/003
Technologies Ltd Version No: 1.0
CICS File Control

• VSAM
– Allows read, browse, update and delete operations

• BDAM
– Allows read, browse and update only
– They are less efficient than VSAM
– Can be replaced by a relative record VSAM dataset or ESDS addressed by
RBA

Copyright © 2005, Infosys 3 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
Types of VSAM Files

• ESDS - Entry Sequenced Data Set


• KSDS - Key Sequential Data Set
• RRDS - Relative Record Data Set

Copyright © 2005, Infosys 4 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
Alternate Indexes in VSAM

• Accessing same set of records in different ways


• Any number of alternate keys
• Alternate keys need not be unique
• Only KSDS and ESDS can have alternate keys

Copyright © 2005, Infosys 5 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
Random access - READ

MOVE +80 TO WS-EMP-REC-LEN.


MOVE ‘10000’ TO WS-EMP-REC-KEY.
MOVE 5 TO WS-EMP-KEY-LEN.
EXEC CICS READ
FILE (‘EMPFILE1’)
INTO (WS-EMP-REC)
LENGTH (WS-EMP-REC-LEN)
RIDFLD (WS-EMP-REC-KEY)
KEYLENGTH (WS-EMP-KEY-LEN)
END-EXEC.

• Places the record in WS-EMP-REC


Copyright © 2005, Infosys 6 ER/CORP/CRS/TP01/003
Technologies Ltd Version No: 1.0
GENERIC READ

MOVE +80 TO WS-EMP-REC-LEN.


MOVE ‘10’ TO WS-EMP-REC-KEY.
MOVE 2 TO WS-EMP-KEY-LEN.
EXEC CICS READ
FILE (‘EMPFILE1’)
INTO (WS-EMP-REC)
LENGTH (WS-EMP-REC-LEN)
RIDFLD (WS-EMP-REC-KEY)
KEYLENGTH (WS-EMP-KEY-LEN)
GENERIC
END-EXEC.

Copyright © 2005, Infosys 7 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
READ Continues...
• READ COMMAND OPTIONS
– EQUAL
– GTEQ
– UPDATE

• READ-UPDATE/REWRITE
– Maintains exclusive control on the resource(on CI in case of
VSAM file) until
• REWRITE is done
• Transaction ends normally or abnormally
• Control over resource is released by program using UNLOCK command.

Copyright © 2005, Infosys 8 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
REWRITE
• To rewrite records into file.
EXEC CICS REWRITE
FILE (‘EMPFILE’)
FROM (WS-EMP-REC)
LENGTH (WS-EMP-REC-LEN)
END-EXEC.

• This command updates a record.


• Prior to this command the record must be read
with a READ UPDATE command.

Copyright © 2005, Infosys 9 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
WRITE
• To write records into file.
MOVE +80 TO WS-EMP-REC-LEN.
MOVE ‘11000’ TO WS-EMP-REC-KEY.
MOVE 5 TO WS-EMP-KEY-LEN.
EXEC CICS WRITE
FILE (‘EMPFILE’)
FROM (WS-EMP-REC)
LENGTH (WS-EMP-REC-LEN)
RIDFLD (WS-EMP-REC-KEY)
KEYLENGTH (WS-EMP-KEY-LEN)
END-EXEC.

Copyright © 2005, Infosys 10 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
DELETE
• Read the record with UPDATE option and then
delete it with the following command.
EXEC CICS DELETE
FILE(‘EMPFILE’)
END-EXEC.

• Use the following command to delete the record


directly.
MOVE ‘12345’ TO EMP-REC-KEY.
EXEC CICS DELETE
FILE(‘EMPFILE’)
RIDFLD (EMP-REC-KEY)
END-EXEC.
Copyright © 2005, Infosys 11 ER/CORP/CRS/TP01/003
Technologies Ltd Version No: 1.0
GROUP DELETE
• MOVE ‘11’ TO WS-EMP-REC-KEY.
• MOVE 2 TO WS-EMP-KEY-LEN.

EXEC CICS DELETE


FILE (‘EMPFILE’)
RIDFLD (WS-EMP-REC-KEY)
KEYLENGTH (WS-EMP-KEY-LEN)
GENERIC
NUMREC (WS-NUM-REC-DEL)
END-EXEC.

Copyright © 2005, Infosys 12 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
Transaction deadlocks
• Exclusive control on CI.

• Exclusive control may cause transaction


deadlocks. Make sure to use UNLOCK when
you are not rewriting

• In pseudo-conversation, at the end of


transaction, all locks are released.

Copyright © 2005, Infosys 13 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
Sequential access - Browsing
• STARTBR
• READNEXT
• READPREV
• RESETBR
• ENDBR

Copyright © 2005, Infosys 14 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
STARTBR
• This establishes a browse session.

EXEC CICS STARTBR


FILE (‘EMPFILE’)
RIDFLD (EMP-REC-KEY)
KEYLENGTH(KEY-LEN)
GTEQ/EQUAL/GENERIC
END-EXEC.

Copyright © 2005, Infosys 15 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
READNEXT/READPREV

EXEC CICS READNEXT/READPREV


FILE (‘EMPFILE’)
INTO (EMP-REC)
LENGTH (EMP-REC-LEN)
RIDFLD (EMP-REC-KEY)
END-EXEC.

Copyright © 2005, Infosys 16 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
RESETBR

• Establish a new browsing position with in the


same browse.

MOVE ‘12345’ TO EMP-REC-KEY.


EXEC CICS RESETBR
FILE (‘EMPFILE’)
RIDFLD (EMP-REC-KEY)
GTEQ
END-EXEC.

Copyright © 2005, Infosys 17 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
ENDBR

• End browse operation


EXEC CICS ENDBR
FILE (‘EMPFILE’)
END-EXEC.

Copyright © 2005, Infosys 18 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
Sequential access – VSAM ESDS
Move Low-values to VSAM-ESDS-RBA

EXEC CICS STARTBR


DATASET (‘filename’)
RIDFLD(ESDS-RBA)
RBA
EQUAL EXEC CICS READNEXT
END-EXEC DATASET (‘filename’)
INTO(FILE-AREA)
RIDFLD(ESDS-RBA)
LENGTH(WS-LEN)
RBA
END-EXEC
Copyright © 2005, Infosys 19 ER/CORP/CRS/TP01/003
Technologies Ltd Version No: 1.0
Temporary Storage

• COMMAREA (Communication Area)


• CWA (Common Work Area)
• TWA (Transaction Work Area)
• TSQ (Temporary Storage Queue)
• TDQ (Transient Data Queue)

Copyright © 2005, Infosys 20 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
TSQ Commands

• WRITEQ TS

EXEC CICS WRITEQ TS


QUEUE (qname)
FROM (recarea)
LENGTH (length)
option (option)…
END-EXEC.

Copyright © 2005, Infosys 21 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
TSQ Commands

• READQ TS

EXEC CICS READQ TS


QUEUE (qname)
INTO (recarea)
LENGTH (length)
option
END-EXEC

Copyright © 2005, Infosys 22 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
TSQ Commands

• DELETEQ TS

EXEC CICS DELETEQ TS


QUEUE (qname)
END-EXEC.

Copyright © 2005, Infosys 23 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
Transient Data Queue
• 2 types of TDQ
– Intra-partition
– Extra-partition

• Difference between TDQ and TSQ


– TDQ to be defined in DCT
– No modify or Rewrite option in TDQ
– TDQ can be read only sequentially
– A destructive read is performed on TDQ
– A trigger can be set on Intrapartition TDQ
– No counterpart to the MAIN option available in TSQ

Copyright © 2005, Infosys 24 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
TDQ Commands
EXEC CICS WRITEQ TD EXEC CICS READQ TD
QUEUE (qname) QUEUE (qname)
FROM (recarea) INTO (recarea)
LENGTH (length) LENGTH (length)
END-EXEC END-EXEC

DFHDCT entry

EXEC CICS DELETEQ TD TYPE=INTRA


QUEUE (qname) DESTID=qname
END-EXEC TRANSID=EMPL
TRIGLEV=2000

Copyright © 2005, Infosys 25 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
Summary
• What is VSAM?
• What are the types of VSAM files?
• When do transaction deadlocks happen and how
to avoid?
• What are the commands for sequential access?
• How is sequential access of ESDS done?
• What is the difference between TSQ and TDQ?
• What are the commands used to access TSQ and
TDQ?

Copyright © 2005, Infosys 26 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0
Thank You!

Copyright © 2005, Infosys 27 ER/CORP/CRS/TP01/003


Technologies Ltd Version No: 1.0

You might also like