Fórum FIREBIRD #60911
05/10/2009
0
tenho uma aplicação rodando em rede com firebird
estrutura
1 - Servidor com administração do sistema
2 - 4 Caixas (estações cliente)
Problema
O servidor foi desligado enquanto os caixas estavam abertos
Agora toda vez que é feito qualquer coisa no servidor trava todos os caixas.
tipo um cadatro de produto,cliente etc.
Alguem sabe como posso resolver este problema.
Obrigado
Arnaldocruz
Curtir tópico
+ 0Posts
05/10/2009
Afarias
Por enquanto o q eu posso dizer é: verifique se a base não foi danificada (usando o GFIX) -- caso esse seja o caso, use gfix -mend para corrigir, faça um backup e restaure.
T+
Gostei + 0
07/10/2009
Arnaldocruz
Não dá mensagem de erro nenhum, simplesmente o sistema para e fica no select infinitamente.
Ja passei o gfix, fiz backup etc.
porem o problema persiste, pro sistema voltar a passar pelo select da tabela cliente basta eu fechar o sistema com ctrl+alt+del vou até o servidor faço backup e restauro.
isso acontece toda vez que é feito algum tipo de inclusão no banco de dados.
o engraçado é que gaço a inclusão de um cliente, pelo gerenciador eu abro o banco e não mostra o cliente, ai dou um refresh ai o cliente aparece.
acho que é isso que faz o sistema de frente de caixa travar.
Gostei + 0
08/10/2009
Builder
O que eu faria:
1) Parar servidor e fazer uma cópia física dos arquivos (backup) antes de qualquer coisa (preservando os dados originais).
2) Rodar o gfix para analizar o banco de dados, se encontrar erros, rodar novamente o gfix e depois fazer um backup e restore.
3) Erro persistindo, assumo que o problema pode ser outro, então:
3.1) Copio os arquivos de dados (passados novamente pelo gfix e backup/restore) para uma máquina de desenvolvimento e nela faço os testes.
3.2) Se testes ok, então o sistema operacional do servidor, o firebird do servidor, hardware (pó nas memórias, placa com defeito, etc.) ou algo assim está com problemas e não o seu sistema.
3.3) Testes ok e servidor ok. Bom, foi feita alguma atualização do servidor e/ou estações ? (pode ser problema de versões diferentes de dlls)
3.4) Testes não ok, pode ser sua aplicação (uma alteração simples feita) e atualizada no cliente. Se não foi uma atualização, sua aplicação já trabalhou com bases de dados maiores ??, pois pode ter chegado a um gargalo que causa a lentidão (abrir por exemplo as tabelas como se abria em xbase - vindo todos os registros).
Bom, faça uma reunião com sua equipe (ou euquipe), coloque no papel todas as possibilidades e vai matando elas uma a uma. Com certeza encontrará a solução. E eu ficaria grato se depois de encontrar você registra-se aqui qual foi a solução (já ficando sua dica/solução para outros que passarem pela mesma situação).
Gostei + 0
08/10/2009
Joaoshi
Gostei + 0
08/10/2009
Arnaldocruz
ACABEI DE FAZER TESTES
FIZ UMA ALTERAÇÃO DO VALOR DE UM PRODUTO E FUI ATÉ O FRENTE DE CAIXA E TENTEI PASSAR O PRODUTO O SISTEMA PARA NO SELECT DA TABELA PRODUTO E FICA INFINITAMENTE.
FECHEI O FRENTE DE CAIXA ABRI DE NOVO CONTINUOU COM O PROBLEMA.
FUI até o servidor, fiz um backup e uma restauração.
Abri o frente de caixa passei o produto e tudo normal sem problema.
Gostei + 0
08/10/2009
Afarias
read_committed
rec_version
nowait
que são as configurações gerais mais tranquilas. Certifique-se ainda de sempre COMMITAR as transações o mais cedo possível.
Por exemplo, vc disse q alterou um preço, mas não disse se deu commit.
T+
Gostei + 0
09/10/2009
Arnaldocruz
Begintrans ou estou errado.
uso assim
On error Goto tbl
aqui entra os Insert e os Updates
exit sub
tbl:
msgbox´ocorreu um erro e os dados não foram gravados´
Gostei + 0
09/10/2009
Afarias
|committrans ou rollbacktrans se no inicio da transação eu tivesse
|Begintrans ou estou errado.
Está errado. Toda ação no FB é realizada dentro de uma transação. Se vc não está *explicitamente* abrindo a transação então a biblioteca de conexão q está usando está fazendo isso para vc *implicitamente*
Controle as suas transações, geralmente não é um bom negócio deixá-las a cargo do componente de conexão. E, mais importante, leia a doc. do componente de conexão q está usando e veja quais os parâmetros de transação padrão q este usa. Tb, veja como alterá-los e certifique-se de usar os q eu postei anteriormente.
T+
Gostei + 0
14/10/2009
Arnaldocruz
na tabela existem dis campos.
Promo e VendaAtAnt
uso o IBManager como gerenciador
em fields eles não aparcem, em ddl eles aparecem.
é como se estivessem ocultos.
ai quando o select busca estes campos eles não são encontrados..
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)