SQL Para atualização Skip Query Locked e Java Multi Threading - Como corrigir isso

SELECT 
        id
        FROM table_name tkn1,
        (SELECT 
            id, 
            ROWNUM rnum
         FROM table_name 
         WHERE 
            PROCS_DT is null
         order by PRTY desc, CRET_DT) result 
        WHERE  tkn1.id= result.id
        AND result.rnum <= 10 FOR UPDATE OF tkn1.id SKIP LOCKED

Aqui está o meu problema. 2 threads estão acessando esta consulta ao mesmo tempo

Thread 1 - Executa selecionar e bloquear 10 linhas ordenadas por prioridade decrescente e data de criação. Em seguida, atualizaria o procs_dt como a data de hoje a partir de uma consulta separada ..

Thread 2 - Antes que a atualização do procs_dt ou commit aconteça no thread 1, esse thread executa esta consulta. Meu requisito é que as próximas 10 linhas desbloqueadas sejam entregues ao encadeamento 2. Mas o que realmente acontece é o mesmo conjunto de linhas bloqueadas que sai da consulta interna, pois procs_dt ainda é nulo e ainda precisa ser atualizado pelo encadeamento 1 e desde que pule bloqueado é fornecido na consulta externa, todas as 10 linhas são ignoradas e nenhum registro é retornado para o encadeamento 2 processar

Isto finalmente derrota meu requisito de multiencadeament

Como corrigir esta consulta? Eu tentei adicionar o salto bloqueado para a consulta interna. Mas o oracle 11g não permit

Especialistas, por favor, ajudem. Estou usando o oracle 11g

questionAnswers(3)

yourAnswerToTheQuestion