[firebase-br] Como faz pra Matar transações no Firebird 2.5

cpd em itauto.com.br cpd em itauto.com.br
Ter Jul 16 09:03:40 -03 2013


Era isso mesmo que queria saber , então não teria jeito mesmo de matar a 
transação que ficou perdida ..

Beleza . vou estudar outra forma entao .

Obrigado .

-----Mensagem Original----- 
From: Rodrigo Gomes da Silva
Sent: Monday, July 15, 2013 5:04 PM
To: FireBase
Subject: Re: [firebase-br]Como faz pra Matar transações no Firebird 2.5

Não é possivel vc forcar termino da transação sem matar conexão, e
dependendo de como esteja sendo usado o banco é possivel que vc tenha de
matar conexões que nem seja diretamente envolvida com a transação.

O motivo q vc não ve a transação é este ai.. por exemplo se a 6049228 esta
travada e a conexão dela ja "morreu",  enq as transacoes menores que
a 6049228 não forem finalizadas, esta 6049228 não vai ser descartada por
questão de versionamento de transações.

Agora sobre cair a conexão no meio de um bloco update/insert/delete é muito
difícil, ja q o grupo é executado em fração de segundos... o ideal é vc
SOMENTE abrir a transação qnd tiver passado por todas entradas do usuario e
não ter mais nenhuma espera por parte do usuario ate finalizar a
transação... isto evita que vc tenha o erro de "concurrent update
concurrent transaction number " a não ser que tenha algum
update/insert/select lento como alterar milhares de registros ao mesmo
tempo.


Em 15 de julho de 2013 16:34, <cpd em itauto.com.br> escreveu:

> Até Assim , não vejo problemas na forma que estou utilizando , vendo que a
> transação deve ser acionada pra atualizar um bloco de instruções
> (Update , Insert e Delete ) e que tambem que pode acontecer de cair a
> conexão bem no meio dela , e travando alguns registros , então nessa
> necessidade é que preciso do comando pra listar as transações abertas e
> exclui-las quando nescessario , tentei o comando abaixo , mais
> não me retorna os dados da TRANSAÇÃO que esta travada , alguem sabe me
> dizer como faz pra trazer exatamente a que fica me retornando
> no erro :[concurrent update concurrent transaction number is 6049228] ,
> tentei pelo comando abaixo , mais me retornar uma numeracao
> toda diferente , agradeço quem puder ajudar .
>
>
>
> select MON$STATEMENT_ID, MON$TIMESTAMP, cast(substring(mon$sql_text from 1
> for 250 ) as char(250)) from mon$statements
>
> where mon$sql_text is not null> and mon$state = 1 -- Ativo
>
> Após obter o ID e ver a SQL, então executo o comando abaixo:
> delete from mon$statements where MON$STATEMENT_ID = XXX*
>
> Desde já agradeco .
> Adilson Pazzini
>
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista