[firebase-br] Dúvida sobre controle transacional em PHP

Rodrigo A. de Freitas rodrigo em solucoeseinformatica.com.br
Qui Dez 11 15:39:50 -03 2008


Olá amigos,

 

Eu estou com um problema: eu tenho em um cliente, um sistema escrito em PHP
feito por um terceiro, que acessa nossa base de dados; este sistema entrou
em produção há poucos dias. Curiosamente, o meu sistema, que estava rodando
normalmente há meses, começou a apresentar um deadlock atrás do outro, em
tabelas cujos registros são compartilhadas pela aplicação web.

 

Olhando a aplicação em PHP (antes de mais nada, devo dizer que sou
totalmente leigo na linguagem), vi que em nenhum momento é aberta uma
transação para os SELECT no banco; e em todas as funções que modificam
registros na base de dados, a chamada da função ibase_trans não tem os
parâmetros da transação, sendo executada da seguinte forma:

 

$trans=ibase_trans(IBASE_DEFAULT, $db);

 

Procurando no google, encontrei uma página que dizia que uma query contendo
um SELECT utiliza a transação padrão da conexão, e que a chamada da função
acima definirá os parâmetros da transação padrão com os mesmos parâmetros
chamados por ela. É verdade esta afirmação ?

 

Em sendo, como faço para definir uma transação específica para os selects,
como isolamento do tipo snapshot, somente para leitura ?

 

 

Abraços,

 


Rodrigo A. de Freitas

Análise & Desenvolvimento

 

Soluções & Informática

 

 




Mais detalhes sobre a lista de discussão lista