[firebase-br] Fechar todas as conexões ativas

Otavio Benini otavio.benini em gmail.com
Sex Mar 24 21:57:29 -03 2017


oi Carlos,

eu uso e funciona, mas não é de minha autoria:

no form principal da sua aplicação puxe um objeto TTimer e em OnTimer
escreva a procedure seguinte:

procedure TfrmPrincipal.Timer1Timer(Sender: TObject);
var i : word;
const t1 : word = 3600;  // 60 minutos
begin
  i := SecondsIdle;
  if i > t1 then begin
    Ocioso := true;
    Close;
  end;
end;

no mesmo form ou numa lib escreva a seguinte function:

function SecondsIdle(): DWord;
var
  liInfo: TLastInputInfo;
begin
  liInfo.cbSize := SizeOf(TLastInputInfo) ;
  GetLastInputInfo(liInfo) ;
  Result := (GetTickCount - liInfo.dwTime) DIV 1000;
end;

no Close do form principal eu fecho a conexão e uso 'Ocioso' prá logar se o
encerramento da aplicação foi por estouro de tempo


sds
*Otavio Benini*
*Benini Informática e Sistemas*
*(11) 9-8181-6553*
*(11) 4701-2797*
informatica em benini.com.br <info em benini.com.br>
otavio.benini em gmail.com

Em 24 de março de 2017 13:55, Carlos Andrade <krlosgilson em gmail.com>
escreveu:

> Olá a todos! Bom, meu sistema em Delphi ainda utiliza conexões remotas
> direta do computador cliente para o servidor. O sistema sempre fecha a
> conexão ao fechar os formulários de cadastro. Acontece que alguns usuários
> deixam os formulários abertos e com isso as conexões ficam ativas por mais
> de 1 hora. Quando isso ocorre, o Firebird fica indisponível, sendo
> necessário toda vez a reinicialização do serviço do mesmo. No meu servidor
> VPS, possuo em torno de 40 Bancos de dados, um de cada cliente. Criei um
> script e agendei no Cron do Linux para que seja executado a cada 10
> minutos. O script realiza a seguinte rotina:
>
> delete from MON$ATTACHMENTS where MON$TIMESTAMP < (CURRENT_TIME-600);
>
> Acontece que devo executar este script para cada banco de dados. Queria
> saber se existe alguma forma de que esse script possa fechar todas as
> conexões de todas as bases conectadas no momento, tipo ao invés de conectar
> a cada, ele iria conectar ao serviço do Firebird, sendo assim o script
> também evitaria de se conectar em bancos que nem estão sendo utilizados.
> ______________________________________________
> 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://www.firebase.com.br/
> pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista