Fórum Problemas Firebird - com dados servidor #416855
16/05/2012
0
- Cenário: Tenho um sistema de controle imobiliário, basicamente controla a imobiliária inteira, menos RH. Feito em Delphi usando DBexpress para conectar no banco Firedird 2.5. Todos meus clientes usam como servidor Windows Server ou XP dependendo o tamanho da imobiliária. Mas meu maior cliente usa um servidor Linux, feito por um fornecedor terceiro deles que configurou o Firebird. Nesse meu maior cliente é onde ocorre os meus problemas, já que as outras imobiliárias não tem nem 10% dos funcionários que esta tem.
Eles tem um backup total do sistema a meia-noite, que salva todos os arquivos do servidor. Também existe um sistema web que faz somente leitura do banco de dados para disponibilizar faturas e recibos no site para os clientes.
-Problema 1: O cliente da baixa no imóvel, pois o mesmo por decisão do proprietário não faz parte do mix da imobiliária. O imóvel recebe o status de “Excluído”, a data de exclusão, e o motivo da exclusão do imóvel. É checado se realmente está excluído e esta ok.
No outro dia, em alguns casos aleatórios e esporádicos, o status do imóvel volta a ser “Vago”, como se não tivesse sido excluído, mas as informações de data da exclusão e motivo permanecem preenchidas com os dados informados.
-Problema 2: Como parte do sistema existe um processo de solicitação de serviço e ordem de serviço, onde qualquer um (inquilino, condômino, proprietário, ou pessoa que tenha cadastro na imobiliária) pode solicitar que a imobiliária efetue serviços gerais com seu mix de prestadores de serviços cadastrados.O funcionamento é o seguinte, é gerado uma solicitação de serviço para ser feito diversos orçamentos pelos prestadores de serviços (como se fosse uma concorrência de licitação com um ganhador), após a aceitação dos termos e valores por parte do solicitante, os prestadores de serviços que ganharem (pode ser mais de um, pois são diversos itens de serviço e cada um tem um prestador) vão efetuar o serviço, e sendo assim o sistema irá gerar uma ordem de serviço.Após o serviço feito é dado baixa na ordem de serviço que vai gerar o pagamento ao fornecedor e o boleto ao solicitante. Neste caso existem dois problemas, se eu deixar para baixar a ordem de serviço no outro dia, alguns casos aleatórios e esporádicos o fornecedor duplica o valor, como se houvesse dois lançamentos iguais para a mesma ordem de serviço, para o mesmo fornecedor (mesmo registro gravado duas vezes). O outro problema também em alguns casos aleatórios e esporádicos, após eu baixar a ordem de serviço e gerar os pagamentos aos fornecedores e a cobrança ao solicitante, no outro dia quando vou olhar a ordem de serviço voltou a ficar aberta, como se nunca tivesse sido efetuada, mas os pagamentos aos fornecedores e a cobrança ao solicitante estão gravados nas tabelas de cobrança do banco de dados.
-Problema 3: Usando IBExpert, eu estava fazendo alterações direto no banco de dados que estava rodando o sistema na imobiliária no momento, colocando alguns campos novos e adicionando os dados padrões para o novo campo e ajustando erros em outros campos. O que ocorria é que colocava os dados padrão na tabela, corrigia os erros nos registros e dava commit, ia na janela de SQL Editor executar um SQL para ver se os dados estavam correto e se estava tudo bem, mas nos registros que fiz correções puxava os dados antigos, como se não tivesse corrigido ou dado commit. Eu ia verificar o registro na tabela e estava correto, mas no SQL Editor estava com os dados antigos, então fui no servidor parei o serviço e iniciei novamente, e voltou ao normal, os dados no SQL Editor começaram a mostrar os mesmos dados da tabela.
-Considerações: Este cliente tem mais ou menos 50 maquinas acessando o sistema no método client-server. E é o único que esta apresentando problemas do gênero. Creio que seja algum problema de configuração do SGBD, mas não tenho conhecimento de como funciona no Linux isso e o terceiro que configurou jura de pés juntos que não é problema no servidor. Mas tenho casos estranhos ocorrendo até mesmo com meu acesso direto ao banco. Se alguém conhecer a solução do problema eu agradeço.
Segue as informações sobre o servidor:
Qual a versão do linux no servidor (Nome da distro e número) ?
[root@diomedes ~]# cat /etc/issue
CentOS release 5.5 (Final)
[root@diomedes ~]# uname -a
Linux diomedes.nostracasa.com.br 2.6.18-194.26.1.el5 #1 SMP Tue Nov 9 12:54:20 EST 2010 x86_64 x86_64 x86_64 GNU/Linux
Qual a versão da glibc no servidor ?
[root@diomedes ~]# rpm -qa | grep glibc
glibc-2.5-49.el5_5.7
Qual a versão do Firebird (2.5.?.?...) ?
[root@diomedes ~]# rpm -qa | grep Firebird
FirebirdSS-2.5.0.26074-0
Qual o modo de execução do Firebird (Classic/SuperServer/SuperClassic) ?
FirebirdSS-2.5.0.26074-0
SuperServer
Servidor Firebird configurado com Forced-Writes ON ou OFF ?
[root@diomedes bin]# ./gstat -z /home/raiz/sisimo/BDSISIMO/SISLOC.FDB
gstat version LI-V2.5.0.26074 Firebird 2.5
Database /home/raiz/sisimo/BDSISIMO/SISLOC.FDB
Database header page information:
Flags 0
Checksum 12345
Generation 7005708
Page size 16384
ODS version 11.0
Oldest transaction 6946737
Oldest active 6948247
Oldest snapshot 6948247
Next transaction 7002378
Bumped transaction 1
Sequence number 0
Next attachment ID 3224122
Implementation ID 16
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Nov 28, 2010 22:11:50
Attributes force write
Variable header data:
Sweep interval: 20000
*END*
[root@diomedes bin]# ./gstat -z /home/raiz/sisimo/BuscaCEPS/bancodedados/CEP.FDB
gstat version LI-V2.5.0.26074 Firebird 2.5
Database /home/raiz/sisimo/BuscaCEPS/bancodedados/CEP.FDB
Database header page information:
Flags 0
Checksum 12345
Generation 3420171
Page size 16384
ODS version 11.2
Oldest transaction 3419984
Oldest active 3419985
Oldest snapshot 3419985
Next transaction 3419986
Bumped transaction 1
Sequence number 0
Next attachment ID 1738681
Implementation ID 16
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Dec 3, 2010 15:56:30
Attributes force write
Variable header data:
*END*
Eles tem um backup total do sistema a meia-noite, que salva todos os arquivos do servidor. Também existe um sistema web que faz somente leitura do banco de dados para disponibilizar faturas e recibos no site para os clientes.
-Problema 1: O cliente da baixa no imóvel, pois o mesmo por decisão do proprietário não faz parte do mix da imobiliária. O imóvel recebe o status de “Excluído”, a data de exclusão, e o motivo da exclusão do imóvel. É checado se realmente está excluído e esta ok.
No outro dia, em alguns casos aleatórios e esporádicos, o status do imóvel volta a ser “Vago”, como se não tivesse sido excluído, mas as informações de data da exclusão e motivo permanecem preenchidas com os dados informados.
-Problema 2: Como parte do sistema existe um processo de solicitação de serviço e ordem de serviço, onde qualquer um (inquilino, condômino, proprietário, ou pessoa que tenha cadastro na imobiliária) pode solicitar que a imobiliária efetue serviços gerais com seu mix de prestadores de serviços cadastrados.O funcionamento é o seguinte, é gerado uma solicitação de serviço para ser feito diversos orçamentos pelos prestadores de serviços (como se fosse uma concorrência de licitação com um ganhador), após a aceitação dos termos e valores por parte do solicitante, os prestadores de serviços que ganharem (pode ser mais de um, pois são diversos itens de serviço e cada um tem um prestador) vão efetuar o serviço, e sendo assim o sistema irá gerar uma ordem de serviço.Após o serviço feito é dado baixa na ordem de serviço que vai gerar o pagamento ao fornecedor e o boleto ao solicitante. Neste caso existem dois problemas, se eu deixar para baixar a ordem de serviço no outro dia, alguns casos aleatórios e esporádicos o fornecedor duplica o valor, como se houvesse dois lançamentos iguais para a mesma ordem de serviço, para o mesmo fornecedor (mesmo registro gravado duas vezes). O outro problema também em alguns casos aleatórios e esporádicos, após eu baixar a ordem de serviço e gerar os pagamentos aos fornecedores e a cobrança ao solicitante, no outro dia quando vou olhar a ordem de serviço voltou a ficar aberta, como se nunca tivesse sido efetuada, mas os pagamentos aos fornecedores e a cobrança ao solicitante estão gravados nas tabelas de cobrança do banco de dados.
-Problema 3: Usando IBExpert, eu estava fazendo alterações direto no banco de dados que estava rodando o sistema na imobiliária no momento, colocando alguns campos novos e adicionando os dados padrões para o novo campo e ajustando erros em outros campos. O que ocorria é que colocava os dados padrão na tabela, corrigia os erros nos registros e dava commit, ia na janela de SQL Editor executar um SQL para ver se os dados estavam correto e se estava tudo bem, mas nos registros que fiz correções puxava os dados antigos, como se não tivesse corrigido ou dado commit. Eu ia verificar o registro na tabela e estava correto, mas no SQL Editor estava com os dados antigos, então fui no servidor parei o serviço e iniciei novamente, e voltou ao normal, os dados no SQL Editor começaram a mostrar os mesmos dados da tabela.
-Considerações: Este cliente tem mais ou menos 50 maquinas acessando o sistema no método client-server. E é o único que esta apresentando problemas do gênero. Creio que seja algum problema de configuração do SGBD, mas não tenho conhecimento de como funciona no Linux isso e o terceiro que configurou jura de pés juntos que não é problema no servidor. Mas tenho casos estranhos ocorrendo até mesmo com meu acesso direto ao banco. Se alguém conhecer a solução do problema eu agradeço.
Segue as informações sobre o servidor:
Qual a versão do linux no servidor (Nome da distro e número) ?
[root@diomedes ~]# cat /etc/issue
CentOS release 5.5 (Final)
[root@diomedes ~]# uname -a
Linux diomedes.nostracasa.com.br 2.6.18-194.26.1.el5 #1 SMP Tue Nov 9 12:54:20 EST 2010 x86_64 x86_64 x86_64 GNU/Linux
Qual a versão da glibc no servidor ?
[root@diomedes ~]# rpm -qa | grep glibc
glibc-2.5-49.el5_5.7
Qual a versão do Firebird (2.5.?.?...) ?
[root@diomedes ~]# rpm -qa | grep Firebird
FirebirdSS-2.5.0.26074-0
Qual o modo de execução do Firebird (Classic/SuperServer/SuperClassic) ?
FirebirdSS-2.5.0.26074-0
SuperServer
Servidor Firebird configurado com Forced-Writes ON ou OFF ?
[root@diomedes bin]# ./gstat -z /home/raiz/sisimo/BDSISIMO/SISLOC.FDB
gstat version LI-V2.5.0.26074 Firebird 2.5
Database /home/raiz/sisimo/BDSISIMO/SISLOC.FDB
Database header page information:
Flags 0
Checksum 12345
Generation 7005708
Page size 16384
ODS version 11.0
Oldest transaction 6946737
Oldest active 6948247
Oldest snapshot 6948247
Next transaction 7002378
Bumped transaction 1
Sequence number 0
Next attachment ID 3224122
Implementation ID 16
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Nov 28, 2010 22:11:50
Attributes force write
Variable header data:
Sweep interval: 20000
*END*
[root@diomedes bin]# ./gstat -z /home/raiz/sisimo/BuscaCEPS/bancodedados/CEP.FDB
gstat version LI-V2.5.0.26074 Firebird 2.5
Database /home/raiz/sisimo/BuscaCEPS/bancodedados/CEP.FDB
Database header page information:
Flags 0
Checksum 12345
Generation 3420171
Page size 16384
ODS version 11.2
Oldest transaction 3419984
Oldest active 3419985
Oldest snapshot 3419985
Next transaction 3419986
Bumped transaction 1
Sequence number 0
Next attachment ID 1738681
Implementation ID 16
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Dec 3, 2010 15:56:30
Attributes force write
Variable header data:
*END*
Jorge Trento
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)