Como executar um "SELECT FOR UPDATE" seguro com uma condição WHERE em várias tabelas em um DB2?

Problema

Em um DB2 (versão 9.5), a instrução SQL

SELECT o.Id FROM Table1 o, Table2 x WHERE [...] FOR UPDATE WITH RR

me dá a mensagem de erroSQLSTATE=42829 (A cláusula FOR UPDATE não é permitida porque a tabela especificada pelo cursor não pode ser modificada).

informação adicional

Eu preciso especificarWITH RR, porque estou executando no nível de isolamentoREAD_COMMITTED, mas preciso que minha consulta seja bloqueada enquanto houver outro processo executando a mesma consulta.

Solução até agora ...

Se, em vez disso, eu fizer uma consulta assim:

SELECT t.Id FROM Table t WHERE t.Id IN (
    SELECT o.Id FROM Table1 o, Table2 x WHERE [...]
) FOR UPDATE WITH RR

tudo funciona bem.

Novo problema

Mas agora, ocasionalmente, recebo exceções de conflito quando vários processos executam essa consulta simultaneamente.

Pergunta, questão

Existe uma maneira de formular oFOR UPDATE consulta sem introduzir um local onde um conflito pode ocorrer?

questionAnswers(1)

yourAnswerToTheQuestion