Thursday, December 8, 2011

CICS: A scenario for a AFCY abend


The below problem will occur when we use LSR buffering for KSDS file in CICS.


Step 1: A successful EXEC CICS STARTBR is issued for a KSDS file
Step 2: Successsive READ NEXT is issued for the same dataset
Step 3: After checking the condition , a decision is made to update or
delete the record read on the READ NEXT operation and an EXEC CICS READ
UPDATE or EXEC CICS DELETE is issued.

The above operation will lockout the task and force it to hang and the
reason is :

The CI's that are accessed by a task or enqueued (locked) in an LSR buffer
pool and dequeued (released) either when the task is finished or an explicit
release request is issued. So in the above example the CI's will be locked
during the READ NEXT operation and the CI's won't be released until the
ENDBR command is issued. So when you try to update or delete the record ,
the record sitting in the CI is not available for the same task again and so
the task will hang till purged or cancelled by CICS which will cause the
ACYA abend.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.