[firebase-br] Por favor ajuda sobre conexão dinamica ao banco

a.lima.silva em terra.com.br a.lima.silva em terra.com.br
Qua Out 5 08:20:56 -03 2016


Caros colegas de lista, solicito a ajuda dos companheiros na seguinte questão :

Ambiente : Firebird 2.5 Super Classic  , Delphi XE DBExpress e 55 estações.

Recebi um sistema  feito em Delphi 7 para migrar para Delphi XE, tive que modificar a estrutura  de transações do DBX do D7

de: 

var TD: TTransactionDesc;
...
TD.TransactionID := Random(999999999);TD.IsolationLevel := xilREADCOMMITTED;Banco.StartTransaction(TD);

para :

var
T  : TDBXTransaction;
Conn : T SQLConnection
...
T := Conn.SqlConection.BeginTransaction(TDBXIsolations.ReadCommitted);
Conn.CommitFreeAndNil(TransSelect);
...

Neste sistema 90% do processamento é realizado por StoredProcedures atraves do objeto TSQLStoredProc

Estranhamente verifiquei travamentos nessas SP, mesmo no aplicativo estando sendo explicitamente iniciado e finalizado uma transação

Nostalgicamente lembrei que quando usava IBX como componente de acesso,  fazia meu StartTransaction e Commit e não havia esse problema.

Para contornar essa situação, comecei a criar em RunTime as conexões a partir do TSQLConnection , iniciar , executar, finalizar a transação e destruir a conexão.

Realmente feito isso destravou e o monitor do IBExpert nem mesmo consegue registrar a existência dessas conexões adicionais.

Um DBA que conversei  ( especialista em Oracle e aplicativos web mobile  ) disse que no Oracle não se deve manter conexões aberta por muito tempo e essa é a maneira correta.

Um colega antigo que trabalha com Delphi disse que terei inúmeros problemas ao fazer as ações  fora da conexão principal.

Nos exemplos que vejo na internet vejo as aplicações por um SQLConnection criam uma conexao e tudo trafega dentro do contexto dessa conexão ( o que era feito ).

Percebi em laboratório um aumento  em muito grande da velocidade, parece que fazer por conexões separadas  da principal "emula uma Thread" , mas ante a inexperiência se o  caminho adotado vai me dar problemas sérios futuros, resolvi ler mais e perguntar aos especialistas do uso diário.
​
Obrigado.





Mais detalhes sobre a lista de discussão lista