[firebase-br] Re: 100% CPU
Pha
lista em pha.com.br
Qua Out 5 11:04:52 -03 2005
O DBX só utiliza CommitRetaining para a transação implicita (quando
nenhuma transação foi iniciada), para as transações de updates geradas
pelo DataSetProvider, se não houver nenhum explicitamente iniciada ele
cria uma e finaliza com Commit ou Rollback.
A transação que pode ficar em aberto são as de leitura (implicita) ou
alguma aberta pelo próprio usuário.
Para testar se o problema esta na transação implicita, é só definir a
propriedade KeepConnection do TSQLConnect = False, isso fara com que o DBX
feche a conexão quando ela não foi mais necessaria, fechando tambem a
transação de leitura.
PS 1: Desativando esta propriedade o sistema pode ficar lento quando se
abre varios componentes de acesso, pela desconexão continua do banco,
talves seja melhor ativar a propriedade antes da abertura de varios
componentes de acesso e depois desativar novamente.
PS 2: Tome cuida com a propriedade PacketRecords > 0, pois isso impede que
o Cursor do SQLDataSet seja fechado não permitindo que a conexão e
transação seja finaliza.
Paulo Henrique Albanez
VirtualSystem Informática Ltda
Nova Odessa / SP - Brazil
Membro do TeamFB (FireBase)
> Eu não uso DBX tb, mas se eu não me engano, o padrão dele é usar
> CommitRetaining e não Commit. Além disso, se o seu xará não faz o
> controle explícito de transações (e pelo jeito não faz), então o DBX
> deve estar segurando alguma transação implícita aberta.
>
> []s
> Cantu (Membro do TeamFB - FireBase)
> http://www.warmboot.com.br
> FireBase - http://www.FireBase.com.br
>
> EJT> Não faço idéia de como o DBX controla as transações...
>
> EJT> talvez o problema seja alguma transação de leitura que está ficando
> EJT> aberta...
>
> EJT> ele disse que lança 20 mil registros por dia, e olhe lá... pouco
> menos de 21
> EJT> mil transações...
>
> EJT> deve ter feito algumas leituras e deixado aberto, aí o banco começa a
> ficar
> EJT> lerdo mesmo...
>
> EJT> Também reparei que ele utiliza o Dialect 1... isto não interfere no
> EJT> desempenho, mas interfere na "eficiência" do garbage collection e de
> alguns
> EJT> índices.
>
> EJT> Em resumo, o problema do meu chará, é o mais óbvio e comum...
> problemas no
> EJT> modelo transacional...
>
> EJT> Sucesso,
>
> EJT> =========================
> EJT> Eduardo Jedliczka
> EJT> Membro do TeamFB - FireBase
> EJT> Apucarana - Pr
> EJT> =========================
>
> EJT> ----- Original Message -----
> EJT> From: <listas em warmboot.com.br>
> EJT> To: <lista em firebase.com.br>
> EJT> Sent: Tuesday, October 04, 2005 5:34 PM
> EJT> Subject: [firebase-br] Re: 100% CPU
>
>
>>> Database header page information:
>>> Flags 0
>>> Checksum 12345
>>> Generation 136964
>>> Page size 4096
>>> ODS version 10.1
>>> Oldest transaction 52
>>> Oldest active 96581
>>> Oldest snapshot 96103
>>> Next transaction 136956
>>> Bumped transaction 1
>>> Sequence number 0
>>> Next attachment ID 0
>>> Implementation ID 16
>>> Shadow count 0
>>> Page buffers 4096
>>> Next header page 0
>>> Database dialect 1
>>> Creation date Oct 2, 2005 12:56:05
>>>
>>> Variable header data:
>>> Sweep interval: 0
>>> *END*
>>>
>>> Veja o numero da sua transação mais antiga e ainda ativa: 96581
>>>
>>> Veja o numero da sua proxima transação: 136956
>>>
>>> Ou seja, tem alguma transação aí segurando o garbage collection,
>>> provavelmente ativa há várias horas.
>>>
>>> SO> Eu percebi uma coisa, é quando está gravando um monte de coisas
>>> SO> no banco, proncipalmente arquivos em Lote.
>>>
>>> Isso indica que seu controle transacional não está OK.
>>>
>>> Além disso, inserções em massa devem ter commits em blocos de 500 ou
>>> 1000
>>> registros. Acredito que vc esteja commitando de um em um.
>>>
>>> Lembre-se tb de rodar o sweep periodicamente.
>>>
>>> []s
>>>
>>> Carlos (Membro do TeamFB - FireBase)
>>> WarmBoot Informatica - http://www.warmboot.com.br
>>> FireBase - http://www.FireBase.com.br
>
>
>
> ______________________________________________
> 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