ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Conexão presa Firebird

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
hjmarcon
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 16 de Julho de 2007
Mensagens: 112

MensagemEnviada: Ter Set 23, 2014 10:12 am    Assunto: Conexão presa Firebird Responder com Citação

Olá.
Utilizo fb 2.5 em uma aplicação DataSnap feita em DelphiXE2. A conexão com o banco é feita com TSQLConnection.
O cliente que consome o webservice é feito em PHP, desenvolvido por outro programador.
Estamos tendo alguns problemas com conexão presa. Acompanho as conexões com o Sinática Monitor e vejo muitas conexões ociosas, provindas da aplicação DataSnap.
Pelos comandos da conexão, dá pra ver que são conexões que, teoricamente, deveriam estar fechadas.
Isto está gerando muito consumo desnecessário de memória e, inclusive, alguns erros de retorno nos dados.
Alguém já passou por situação semelhante ou tem alguma sugestão?
Grato.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
hjmarcon
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 16 de Julho de 2007
Mensagens: 112

MensagemEnviada: Sex Set 26, 2014 9:11 am    Assunto: Re: Conexão presa Firebird Responder com Citação

Bem, não consegui resolver da forma como queria... mas aqui vai um comando que mata as conexões ociosas

Código:

DELETE FROM MON$ATTACHMENTS A                                                 
WHERE A.MON$REMOTE_PROCESS = '':APLICACAO''                     
AND   A.MON$STATE = 0                                                         
AND   (CAST(((CURRENT_TIMESTAMP - A.MON$TIMESTAMP) * 24) * 60 AS INTEGER)) > :TEMPO


Onde APLICACAO é o caminho completo da aplicação que vai ser removida a conexão e TEMPO é o tempo em minutos de conexão.
Não é uma forma muito precisa pra se resolver o problema, pois a conexão pode somente estar ociosa por não haver nenhum comando sendo executado e não pelo processo ter sido desconectado anormalmente.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB