Isolation Level 2 or 20 
If isolation
level 2 or 20 (repeatable) is specified, shared locks are
requested for all the tables addressed by an SQL statement
data query before
processing starts.
When
an sql statement generates a
result table that is not physically stored, these locks are not released until
the end of the transaction or until the result table is closed. Otherwise,
they are released immediately after the sql statement has been processed. This table
shared lock is not assigned to the transaction in the
case of SQL statements in which just one table row is processed that is
determined by
key specifications
or by
CURRENT OF <result_table_name>.
In
addition, an implicit shared lock is assigned to the transaction for each row
read while an sql statement is
being processed. These locks can only be released with the
UNLOCK statement
or by ending the transaction.
When rows are inserted, updated or deleted, exclusive locks are assigned implicitly to the transaction for the rows concerned. These cannot be released until the end of the transaction. However, no locks are set for the entire table.