[firebase-br] Re: 100% CPU
Pha
lista em pha.com.br
Qua Out 5 14:41:37 -03 2005
Cada ver que um comando e executado o SQLConnection checa se a conexão não
e necessaria (se não ha nenhum Cursor ou Transação aberta), se nao for ele
fecha a conexão se o KeepConnection = False.
Paulo Henrique Albanez
VirtualSystem Informática Ltda
Nova Odessa / SP - Brazil
Membro do TeamFB (FireBase)
> O que faz o KeepConnection ?
>
>
> ----- Original Message -----
> From: "Pha" <lista em pha.com.br>
> To: "Carlos H. Cantu" <listas em warmboot.com.br>; "FireBase"
> <lista em firebase.com.br>
> Sent: Wednesday, October 05, 2005 11:04 AM
> Subject: Re: [firebase-br] Re: 100% CPU
>
>
>>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
>>>
>>
>>
>>
>> ______________________________________________
>> 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