[firebase-br] RES: Firebird 2.5 "Objet in use" ao executar uma procedure

Marcos Roberto timarcos em oi.com.br
Sex Ago 31 09:49:09 -03 2018


Como faço para sair da lista 


Comprometa-se com o meio ambiente. Imprima este e-mail somente se for necessário!


-----Mensagem original-----
De: lista <lista-bounces em firebase.com.br> Em nome de Gladiston Santana
Enviada em: sexta-feira, 31 de agosto de 2018 09:32
Para: FireBase <lista em firebase.com.br>
Assunto: Re: [firebase-br] Firebird 2.5 "Objet in use" ao executar uma procedure

Pior que isso, todos que usaram a procedure devem fechar.
Então imagina atualizar uma procedure dentro de um serviço de telemarketing em andamento.
Algum tempo atrás, eu li na internet que isso ocorria porque há um cache de metadados dentro do servidor e que era isso que mantia o objeto em uso, é como um prepare implicito para as chamadas de procedures, views e triggers onde só se desfaz na desconexão (ou talvez no hardcommit não sei). No classic essa ocorrência diminui porque é um cache para cada conexão, e este é o que tenho usado na maioria das vezes então não há problema, a não ser o consumo maior de memória.

Mas esse comportamento não acontece quando programo com o php, muito provavelmente porque as conexões são efemeras e até o momento só aprendi a usar o php dessa forma. Vi uns videos de alguns usando o Delphi com dbgrid e o que parece tedits e outros controles e conexão stateful, mas isso ainda não entrou na minha cabeça em como fazer, se tiver interesse dê uma olhada no Delphi Academy e procure por desenvolvimento WEB:
https://www.youtube.com/playlist?list=PLlUDMEtO0HdTXlSbL5GkXCSjpvbuX15dX

[]´s

Em 29 de agosto de 2018 16:18, Ricardo Rodrigues <ricardopd em gmail.com>
escreveu:

> Ou seja, fecha o sistema, altere o banco e continue a vida
>
> Em qua, 29 de ago de 2018 14:51, Gladiston Santana 
> <gladiston em vidy.com.br>
> escreveu:
>
> > Nobre colega, você não consegue modificar uma procedure enquanto ela
> ainda
> > estiver em uso por outra pessoa, o mesmo ocorre para outros metadados.
> > Com programação em PHP é raro essa mensagem provavelmente porque eu 
> > trabalho com stateless, isto é, abro e fecho conexões a todo instante.
> > Mas usando Delphi eu vejo esse problema com frequencia quando tento 
> > um 'alter table' em ambiente de produção.
> > Este problema pelo que vejo não tem nada a ver com transação ou lock 
> > de registro, basta que o usuário a tenha disparado a SP uma unica 
> > vez e daquele momento em diante - mesmo que não seja disparada 
> > novamente - a SP estará em uso até que  faça a desconexão com o BD.
> > No meu caso, uso com Firedac.
> > Há na internet um parametro que dizem resolver o problema, eu tentei 
> > e
> não
> > resolveu por isso não vou lhe passar.
> >
> > []´s
> >
> > Em 29 de agosto de 2018 09:34, Antonio Carlos 
> > <a.lima.silva em terra.com.br
> >
> > escreveu:
> >
> > > Caros estou tendo o seguinte erro :
> > >
> > > SqlCode -904 , GdsCode 335544453, Erro : Object PROCEDURE
> SP_PROCESSA
> > > is in use
> > >
> > > Uso DBExpress e no componente de conexão (waitonlocks=True ;
> > > isolationlevel=ReadCommitted) e a cada transação explicita (T :=
> > > Conn.BeginTransaction(TDBXIsolations.ReadCommitted);)
> > >
> > > A procedure em questão NÃO MODIFICA executa apenas selects, 
> > > updates e inserts, não faz criação de tabelas temporárias ou 
> > > views, eu so vi esse tipo de erro quando se tenta alterar 
> > > fisicamente um objeto do banco com
> > ele
> > > em uso.
> > >
> > > Alguma luz ?
> > >
> > >
> > >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br 
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas:
> > http://www.firebase.com.br/pesquisa_lista.html
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br 
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://www.firebase.com.br/ 
> pesquisa_lista.html
>



--
A Vidy possui um Sistema de Gestão da Qualidade estruturado e com Certificação ISO 9001 há mais de 10 anos, mantendo seu foco na Qualidade e na Melhoria Continua.

Em março de2018 migramos com sucesso para a nova versão da ISO 9001.

Somos a única Empresa Brasileira de Engenharia de Laboratórios com certificação com o Escopo Completo; desde Projetos, Engenharia, Construção, Fabricação e Instalação de Laboratórios.
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista.html





Mais detalhes sobre a lista de discussão lista