Description
The fix for bug 3646162 changed the behaviour of
SELECT FOR UPDATE operations such that with that fix
they correctly take a sub-exclusive mode TM lock on
the affected tables. This change in behaviour introduced
by that fix led to problems for some client code so this
fix introduces a backout method to disable the fix and
revert to the old (incorrect) TM lock level.
To enable this fix in >= 10.2.0.2 set "_fix_control"='4969880:ON'
To enable this fix in 9.2 / 10.1 / 10.2.0.1 set event 38084 to any level.
eg:
create table test( f1 varchar2(10));
select * from test where f1 is null for update;
select lmode from v$lock where type = 'TM';
^
LMODE is 3 (SX mode)
With this fix enabled:
alter session set "_fix_control"='4969880:ON'; -- 11g
alter session set events '38084 trace name context forever, level 1'; -- 9.2/10g
select * from test where f1 is null for update;
select lmode from v$lock where type = 'TM';
^
LMODE is 2 (SS mode)
The full bug text (if published) can be seen at Bug 4969880 (This link will not work for UNPUBLISHED bugs)
You can search for any interim patches for this bug here Patch 4969880 (This link will Error if no interim patches exist)
Partager