[firebase-br] SP travando
Adriano dos Santos Fernandes
adrianosf em uol.com.br
Seg Set 22 16:15:37 -03 2008
Kelver Merlotti escreveu:
> A idéia é fazer o seguinte..
>
> PROCEDURE TESTE AS...
> ...
> UPDATE TABELA SET... ;
> SUSPEND;
>
> WHEN EXCEPTION DO
> BEGIN
> MYSLEEP(2000);
> EXECUTE PROCEDURE TESTE;
> END
> END
>
> Captou? tipo.. se o update não funfar, aguarda um pouco e tenta denovo..
> Concordo que a CPU vai disparar, mas não pode passar do tempo que eu
> passar pra MYSLEEP, certo? Se eu disser MYSLEEP(1000), não pode passar
> de 1 segundo a 100%.
>
Eu nunca faria isso dessa maneira, mas se vc quer... :-)
1) Então faz uma UDF que dá o sleep. Do jeito que vc está fazendo vc
"bloqueia" o SuperServer e não vai permitir que as outras conexões façam
o que elas precisam fazer.
2) Faça um WHILE ao invés de chamar a procedure recursivamente.
Adriano
Mais detalhes sobre a lista de discussão lista