So I client had a process that kept need big chunks locks on a table. Problem is that due application use this lock occasionally failed (lock timeout) and the whole process fail. So how to guarantee this?
Using explicit locks for the table before starting the procedure, with command below:
LOCK TABLE GREPORA.GREP_TABLE IN SHARE MODE;
This lock is released as soon as the session commit or rollback transaction in the current session. Killing session means an implicit rollback, as usual.
The SHARE permits concurrent queries but prohibits updates to the locked table.
Hope it helps you too!