ORA-01591: lock held by in-doubt distributed transaction

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
sp66d_rac6r
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Ter, 02 Dez 2008 10:43 am
Localização: Sorocaba-SP

Informações do Ambiente:
* Versão do Oracle: Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
* Sistema Operacional: Unix

Pessoal pesquisando sobre este erro, cheguei a algumas causas: queda de conexão ou do banco.

Isto procede?

Falta algum tratamento na aplicação?

Ou configuração no banco?

Agradeço desde já.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

ORA-01591: lock held by in-doubt distributed transaction string

Cause: Trying to access resource that is locked by a dead two-phase commit transaction that is in prepared state.

Action: DBA should query the pending_trans$ and related tables, and attempt to repair network connection(s) to coordinator and commit point. If timely repair is not possible, DBA should contact DBA at commit point if known or end user for correct outcome, or use heuristic default if given to issue a heuristic commit or abort command to finalize the local portion of the distributed transaction.
Parece que algum processo disparado por outro server (db-link) rodou algo e houve problemas com a rede e a sessão dele ficou esperando...

Sempre acontece no mesmo ponto? Ou é meio aleatório ?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Achei uma dica, talvez ajude:
http://www.vivaolinux.com.br/dica/Erro- ... -ORA01591/

Selecionar tudo

Erro de Lock - ORA-01591
Hoje tive um problema que resolvi compartilhar a solução que, embora simples, pode causar certo transtorno se não encontrada rapidamente.

Este erro é causado devido a uma transação distribuída onde houve queda de conexão ou qualquer outro processo que interrompa a transação e bloqueie a tabela.

Quando você vai efetuar uma consulta com agrupamento:

SQL> Select count(1), controle From tabela;
select count(1), controle from tabela
*
ERRO na linha 1:
ORA-01591: lock held by in-doubt distributed transaction 22.11.41636

Na página de erros da Oracle você encontra o seguinte:

    * http://ORA-01591.ora-code.com 


ORA-01591: lock held by in-doubt distributed transaction string
Cause: Trying to access resource that is locked by a dead two-phase commit transaction that is in prepared state.
Action: DBA should query the pending_trans$ and related tables, and attempt to repair network connection(s) to coordinator and commit point. If timely repair is not possible, DBA should contact DBA at commit point if known or end user for correct outcome, or use heuristic default if given to issue a heuristic commit or abort command to finalize the local portion of the distributed transaction.

Não diz muita coisa, já que o processo já se foi...

Para conseguir o número do processo:

SQL> Select * From sys.pending_trans$ Order by local_tran_id ;

Aqui vão aparecer todos os processos pendentes. Na coluna STATE vai aparecer o processo como pending.

SQL> rollback force '22.11.41636';

Irá encerrar com rollback e liberar a tabela. O número 22.11.41636 foi obtido da coluna LOCAL_TRAN_ID.

SQL> Select count(1), controle From tabela;

  COUNT(1) C
---------- -
      1210 1
     21615

sp66d_rac6r
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Ter, 02 Dez 2008 10:43 am
Localização: Sorocaba-SP

Ocorreu apenas hoje.

Tem um registro de startup do banco na v$instance na mesma hora/minuto do log na tabela sys.pending_trans$.

No metalink, diz que é algo associado a um shutdown no banco.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Tentou fazer o rollback como mostra a dica acima?
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes