Differences between shared data tables services and VSAM

Because SDT services replace VSAM for many data table requests, note the following differences in the way that certain requests are implemented.

Read while updating (different transactions)

In the case of a READ command for a data table record following a READ UPDATE issued for that record by another transaction and preceding the associated update request, when SDT services are used the READ command is processed immediately.

When VSAM is used, the READ command waits until the update request is complete.

Read while updating (same transaction)

In the case of a READ command for a data table record following a READ UPDATE issued for that record by the same transaction and preceding the associated update request, when SDT services are used the READ command is processed immediately.

When VSAM is used, the transaction incurs a deadlock abend AFCG.

Delete during browse

When SDT services are used for a STARTBR or RESETBR command for a data table record, it is possible for the record to be deleted before the associated READNEXT or READPREV command is issued. When VSAM is used, the record cannot be deleted before the associated READNEXT or READPREV command is issued.

Thus, when SDT services are used, if a STARTBR or RESETBR command is issued with a key other than the special ‘last record’ key, X'FF....', and the record selected is deleted before the READNEXT command, the READNEXT command reads the succeeding record.

If there is no succeeding record, the ENDFILE condition is returned. If the EQUAL option was used on the STARTBR or RESETBR, the key of the record that is read might not match the key specified.

If a STARTBR or RESETBR command is issued with the special ‘last record’ key, and the selected record is deleted before the READPREV command, the READPREV command reads the preceding record, or returns the ENDFILE condition if there is none.

Write during browse

When SDT services are used, if a browse reads to the end of a file, raising the ENDFILE condition, and a new record is then inserted beyond the end of the file, a subsequent READNEXT is able to read the new record.

When VSAM is used, the subsequent READNEXT may not be able to find the new record, but instead reports the ENDFILE condition again.

Delete while updating (same transaction)

When SDT services are used for a DELETE command that specifies a RIDFLD for a data table record after a READ UPDATE has been issued for that record by the same transaction and before the associated update request, the DELETE command is processed successfully and the associated update request receives a NOTFND condition.

Related concepts
Application programming for data tables
Application programming for a CICS-maintained data table
Application programming for a user-maintained data table
Use of cross-memory services for shared data tables
Differences between function shipping and cross-memory services
[[ Contents Previous Page | Next Page Index ]]