[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