In summary, what these rules (including the notes) say is that
in the absence of certain special or unusual conditions, blocking will occur
in both of the following cases:
- It will occur if the cursor is read-only (see note 3) and if:
- Either the application requester or application server is a non-DB2 Universal Database™ for iSeries™.
- Both the application requester and application server are DB2 Universal Database for iSeries and
ALWBLK(*ALLREAD) is specified and COMMIT(*ALL) is not specified.
- It will occur if COMMIT(*ALL) was not specified and all of the following
conditions are also true:
- There is no FOR UPDATE OF clause in the SELECT, and
- There are no UPDATE or DELETE WHERE CURRENT OF statements against the
cursor in the program, and
- Either the program does not contain dynamic SQL statements or a precompile/bind
option was used to request limited-block protocol (/K=ALL with DB2
Universal Database™ for Linux®, UNIX® and Windows®, ALWBLK(*ALLREAD) with DB2® UDB
for iSeries,
CURRENTDATA(NO) with DB2 Universal Database for z/OS®, SBLOCK
with DB2
Universal Database for VM).