[firebase-br] CommitRetaining
João Henrique de Souza
joao.henrique em jvsind.com.br
Sex Jun 17 10:25:25 -03 2005
Olá... não sou o Cantu mas posso te dar uma dica...
Creio q o problema de inchaço é exatamente por vc estar usando o Commit
Retaining, pois ele não fecha "efetivamente" a transação evitando o Garbage
Collection.
A saída é vc trocar no seu sistema os CommitRetaining e RollBackRetaining
por somente Commit e Rollback.
Porém vc irá se deparar com outro problema:
A TABELA É FECHADA QUANDO SE UTILIZA SÓ O COMMIT.
Sim, porém existe maneiras de contornar isso:
1- Se vc usa IBO basta mudar a propriedade CommitAction para
CaInvalidateCursor... só isso :)
2- Se vc não utiliza IBO vc terá que reabrir as tabelas quando der o Commit
correto? Porém elas não estarão posicionadas no registro que vc acabou de
alterar (por exemplo).
Nesse caso vc pode utilizar BookMarks para guardar a posição do registro
antes de salvar e após vc reabrir a tabela vc reposicionar o mesmo.
Já utilizei Bookmarks com DBX e IBX na época que nao trabalhava com IBO, e
sempre resolveu meu problema. Não sei dizer se os componentes MDO teriam um
outro recurso para contornar isso.
Vc terá um pouco de trabalho, mas vejo necessário vc substituir o
CommitRetaining e RollBackRetaining de sua aplicação por simples Commit e
Rollback e criar esse processo que te falei.... q é um pouco trabalhoso.
Bom... essa seria a minha solução... porém na lista temos proficionais mais
experientes que podem dar uma solução mais fácil.
Boa Sorte
[]´s
João Henrique
----- Original Message -----
From: "Vinícius Schwambach Velten" <vsvelten em bol.com.br>
To: "Carlos H. Cantu" <listas em warmboot.com.br>; "FireBase"
<lista em firebase.com.br>
Sent: Friday, June 17, 2005 9:50 AM
Subject: Re: [firebase-br] CommitRetaining
Cantu.
Estou tendo um problema de inchaço da base de dados em meu sistema, utilizo
o commit retaining para finalizar transações em uma aplicação de frente de
loja (PDV). Conforme tinha lido em seu livro a respeito de transações, toda
a transação deve iniciada e fechada com um commit ou rollback, porém,
verifiquei todas as transações e, todas eram iniciadas e fechadas, só que
utilizando o commit retaining.
Meu problema não se resolveu, apesar de estar encerrando todas as transações
utilizando o commit retaining, e a base de dados do meu cliente continua
inchando horrores! A cada quinze dias estou tendo que ir no cliente e
efetuando um backup e um restore. Resumindo, como fazer para fechar as
transações? Existe algum artifício para utilizar para encerrar as transações
mesmo utilizando o commit retaining? Enfim, como devo proceder para resolver
este problema de sobrecarga do banco?
obrigado pela atenção dispensada.
Vinícius Schwambach Velten - Desenvolvedor de sistemas - VWM Sistemas Ltda.
messenger: vsvelten em bol.com.br
Skipe: vsvelten
----- Original Message -----
From: "Carlos H. Cantu" <listas em warmboot.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, June 17, 2005 8:53 AM
Subject: Re: [firebase-br] CommitRetaining
O commitretaing não "fecha" a transação, portanto se ela ficar aberta
por muito tempo, impede a garbage collection e pode sobrecarregar o
servidor.
[]s
Cantu
http://www.warmboot.com.br
FireBase - http://www.FireBase.com.br
mdds> Bom dia,
mdds> Obrigado pela resposta.
mdds> Gostaria de saber se existe problema de usar "commit retaining" em
um
mdds> ambiente muito concorrido (mais de 50 usuários usando o sistema
mdds> simultaneamente)?
mdds> Sem mais,
mdds> ----------------------
mdds> Marlon David de Souza
mdds> Desenvolvimento
mdds> Sysmo Informática Ltda
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista