[firebase-br] SP travando
Kelver Merlotti
kmerlotti em gmail.com
Seg Set 22 15:53:15 -03 2008
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%.
Abraços!
2008/9/22 Adriano dos Santos Fernandes <adrianosf em uol.com.br>:
> Kelver Merlotti escreveu:
>> Fala galera, boa tarde!
>>
>> Procurei na net e não achei nenhuma SP pra executar um "sleep" no
>> banco (tipo o do delphi mesmo)..
>>
>> Daí resolvi montar minha própria procedure Sleep.. MAS, há algo de
>> errado no paraíso.. se depuro ela pelo IBExpert, funfa normalz.. mas
>> quando dou o "select * from myslee(2000)" o FB vai a 100% de uso da
>> sua CPU e nunca mais retorna!!
>>
> E por quê vc quer executar um sleep no servidor?
>
>> Alguém tem alguma idéia? Segue abaixo o código da SP:
>>
>> ALTER PROCEDURE MYSLEEP (
>> ms integer)
>> returns (
>> endtime numeric(6,3))
>> as
>> declare variable tmp numeric(6,3);
>> begin
>> SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP)
>> FROM RDB$DATABASE INTO :TMP;
>>
>> ENDTIME = TMP;
>> TMP = TMP + (MS / 1000);
>>
>> WHILE (ENDTIME < TMP) DO
>> SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP)
>> FROM RDB$DATABASE INTO :ENDTIME;
>>
>> SUSPEND;
>> end
>>
> É claro que vai a 100%. É isso que vc está pedindo.
>
>
> Adriano
>
>
> ______________________________________________
> 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
>
--
Kelver Merlotti
Coordenador Editorial do Portal www.ActiveDelphi.com.br
Contato: kelver em activedelphi.com.br
Google: kmerlotti em gmail.com
Msn: kmerlotti em hotmail.com
Mais detalhes sobre a lista de discussão lista