A rede Funciona mas quando um micro desliga dá pau no servid

Firebird

11/05/2005

Galera do interbase, Meu programa funciona em rede tranquilo.
uso os componentes da palheta interbase. Inicio transações e uso o commitrettaning ou seja quando gravo alguma tabela comita o buffer no banco de dados mas a transação continua aberta. Quando sai do sistema fecho a transação.

Meu problema é este, quando ligo dois micros e abro o sistema nos dois e acesso dados nos dois. Sempre que desligo o CLIENTE me aparece a mensagem abaixo no micro SERVIDOR que é onde está o arquivo GDB, na tela que eu estiver do programa. e paralisa tudo. Tenho que sair e entrar de novo.

a janela tem isto escrito.

unable to complete netword request to host ´servidor´
Error writing data to the connection
Foi forçado o cancelamento de uma conexão pelo host remoto
process stoped

O que posso fazer para isto não acontecer ao desligar o micro CLIENTE.
obrigado


Dr. Interbase

Dr. Interbase

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

11/05/2005

Vc está fechando a conexão com o banco ao sair do sistema e fechando corretamente o sistema antes de desligar a máquina?


GOSTEI 0
Dr. Interbase

Dr. Interbase

11/05/2005

Quando sai do sistema fecho a transação dando um comit e depois fecho o database com o comando database.close, isto é o suficiente para fechar a transação ??

Obrigado


GOSTEI 0
Edilcimar

Edilcimar

11/05/2005

host é hospedeiro, portanto servidor, a mensagem é que o servidor é o computador que você está desligando


GOSTEI 0
Dr. Interbase

Dr. Interbase

11/05/2005

Gente, eu não estou desligando o servidor, estou desligando o cliente. Fiz inumeros testes.

Ligo o servidor (onde está o gdb) e entro no sistema.
Ligo o cliente e entro no sistema, Fique claro, no cliente eu pus um atalho para o sistema que está no servidor, ou seja ele carrega em memoria o sistema que está no servidor.

Certo ??

Aí vou no cliente, saio do sistema e desligo o micro.
Quando faço isso uns dez segundos depois, aparece a mensagem de erro no micro servidor no sistema e não me deixa trabalhar mais. Quero saber se o problema está no interbase ou na maneira que fecho o sistema. Uso o interbase 6.00 (free). E como disse quando saio do sistema. dou um commit e fecho o componente database e dou um close para sair do programa.

Obrigado.


GOSTEI 0
Gandalf.nho

Gandalf.nho

11/05/2005

Em vez de carregar o executável diretamente do servidor, coloque uma cópia dele no cliente, pode ser isso o problema.


GOSTEI 0
Dr. Interbase

Dr. Interbase

11/05/2005

Coloquei o programa no cliente, com o database apontando para o servidor, achei que funcionaria, mas deu o mesmo erro.

Socorro !!!


GOSTEI 0
Gandalf.nho

Gandalf.nho

11/05/2005

Estranho isso, vc tem certeza de que não está ficando nenhuma conexão ativa?


GOSTEI 0
Dr. Interbase

Dr. Interbase

11/05/2005

Vamos lá

Antes de sair, ou seja quando clico no botão sair.

Fecho as transações
DmSisStock.IBTransactionSisStock.Commit;

Libero da memoria o datamodulo, isto não é necessário, mas fiz para ter a certeza que fechava todas as query
DmSisStock.Free;

e saio do programa
Close;

Falta alguma coisa ???


GOSTEI 0
Gandalf.nho

Gandalf.nho

11/05/2005

Vc só tem uma transação no sistema todo?


GOSTEI 0
Dr. Interbase

Dr. Interbase

11/05/2005

Exatamente, Inicio com starttransaction quando entro no sistema e em nenhum lugar fecho a transação porque uso o commitrettainning e não o commit. Somente na saída que dou commit, fecho o banco de dados e o ibtransaction. Tinha que fechar a conexão mas não fecha.

Cara
não entendi porque dá isso.


GOSTEI 0
Siro

Siro

11/05/2005

Ola.

Já tive este problema muitas vezes. Até postei um topico, mas não obtive resposta. No meu caso percebi que isto só ocorria quanto tinha 02 pc ligados diretos com cabo cross sem um Hub. Sempre tinha reclamação do cliente que o ´programa travava´ quando o cliente era desligado. Depois de muita dor de cabeça e já não tendo mais esperança que alguem me ajudar (não tem miguem em minha cidade que pudesse me dar uma orientação e não sabia a quem mais recorrer), percebi que onde tinha rede com mais de 02 pcs e era utilizado um hub isto não acontecia, então resolvi fazer um teste com o Hub entre 02 Pcs e não tive mais problemas. Não sei o motivo, mas sei que isto resolveu meu problema.

Gostaria que alguem com mais experiencia pudesse nos explicar o motivo, para que possamos entender o que acontece, bem como resolve-lo.


GOSTEI 0
POSTAR