Delphi.net - ADOQuery Mantem sessão em oracle aberta pra sempre.

Delphi

16/11/2012

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

Curtidas 0

Respostas

Pjrm1470

Pjrm1470

16/11/2012

#@$@%@# 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?
GOSTEI 0
Pjrm1470

Pjrm1470

16/11/2012

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!?
GOSTEI 0
Rodolpho Silva

Rodolpho Silva

16/11/2012

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?
GOSTEI 0
POSTAR