Fórum Delphi.net - ADOQuery Mantem sessão em oracle aberta pra sempre. #428863

16/11/2012

0

Ola a todos... aqui na empresa estamos com um pequeno problema que um adoquery está mantendo a sessão no nosso banco de dados Oracle 10g aberta. E isto esta sendo um problema, pq ele pertence a um processo que roda a cada 60 segundos. O banco chega a tarde com mais de 60 sessões aberta. Temos de fechar a aplicação e reabri-la para matar as sessões.

O meu ponto é saber se estamos esquecendo algo ou fazendo algo errado!? Ou se isto é um problema do Delphi.net????

var

Pjrm1470

Pjrm1470

Responder

Posts

16/11/2012

Pjrm1470

#@$@%@# podia ter um edit...

O codigo:
var
 qry: TADOQuery;
 //cmdHolder: TComponent;
begin
 qry := TADOQuery.create(nil); //.create(cmdHolder); - nao funciona
 try
  qry.connection := TADOConnection.Create(nil) //.create(cmdHolder); - nao funciona
  qry.sql.text := 'select sysdate from dual';
  qry.open;
 finally
  qry.close;
  qry.connection.close;
  qry.connection.free;
  qry.connection := nil;
  qry.free;
  qry := nil;
 end;

Vão ver que tem até codigo desnecessário, mas estamos desesperados... pq ta criando uma sessão "highlander". num morre de jeito nenhum.

Alguma ideia?
Responder

Gostei + 0

19/11/2012

Pjrm1470

Alguem?
Alguem pode me informar se isso é uma configuração feita no oracle que certa ocasião o faz ficar sempre ativo? Algum DBA em Oracle pode me dizer isso? ou isso é um problema em delphi mesmo conforme o codigo acima!?
Responder

Gostei + 0

22/11/2012

Rodolpho Silva

Não, o Oracle não mantém conexões ativas "a gosto modo". Ele mantém as conexões somente se não forem feitas "logout". Também não acredito ser problema do ADOConnection pois trabalhei em um lugar onde usada na web ADO e já houve picos de 1000 acessos simultâneos. Nenhuma conexão ficou pendente de logout.

Bem, quais são as configurações que você está fazendo no ADOCOnnection?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar