GARANTIR DESCONTO

Fórum Problemas em sistema rodando com Firebird #49287

10/02/2005

0

Ola pessoal, tenho um problema,

Meu sistema desenvolvido em Delphi 7 com banco de dados Firebird somente roda nas estações se o mesmo (sistema) estiver rodando no servidor. É só eu fechar o sistema no servidor que as estações não conseguem mais abrir o sistema, exibindo a mensagem de que não tenho permissão ou direito de abrir o banco. Neste momento no gerenciador de tarefas da estação, o sistema fica como processo ativo porém não roda.

Depois dessa ocorrência na estação, também não consigo abrir o sistema no servidor, ficando travado como processo no gerenciador de tarefas.

Depois disso, não consigo dar STOP no firebird, muito menos fechar o serviço; Somente reiniciando os equipamentos.

Alguem pode me ajudar ?

No servidor e nas estações esta rodando o WINDOWS 2000 com Firebird Super Server 1.5.2.4731. No servidor instalei o Firebird rodando como serviço e nas estações rodando como aplicação; Em ambos ativei o Guardião.

Minha conexão esta configurada através do mapeamento, ou seja, \\servidor\admin\sistema\sistema.fdb

Também já fiz a conexão via IP porém ocorre o mesmo problema.

Agradeçido.....

Welson


Welson

Welson

Responder

Posts

10/02/2005

Afarias

1) nas estações vc deveria ter apenas instalado o FB Client. Instalar o FB Server é desnecessário e consume recursos da máquina ´para nada´

2) Sua string de conexão está errada, vc deve mudar para:

servidor:c:\admin\sistema\sistema.fdb

onde c: é o drive onde está o banco (no servidor) -- note q como um sistema cliente servidor ou FB não utilizar compartilhamentos de rede ou caminhos de rede UNC


T+


Responder

Gostei + 0

12/02/2005

Welson

Entendi.....

Refiz as configurações como você me indicou e realmente resolveu meu problema.

O que ocorre com a conexão quando não informamos o IP ?

Muito obrigado!!!


Responder

Gostei + 0

12/02/2005

Afarias

O que ocorre com a conexão quando não informamos o IP ?


Não entendi sua pergunta mas vou fazer uns comentários:

O Interbase/Firebird pode utilizar 3 protocolos: TCP, Named Pipes (NetBEUI) e IPX.

O protocolo IPX basicamente não é mais usado, pois era para servidores IB rodando em NetWare. O protocolo NetBEUI pode ser utilizado para servidores com tecnologia NT (NT4.0, 2000, XP). E o TCP em todas as plataformas (com suporte ao mesmo!)

Destes 3 protocolos o TCP é sem sombra de dúvidas, além de mais suportado (qualquer plataforma de servidor, inclusive sistemas simples como Windows98 suporta) é tb de longe o mais eficiente.

A escolha do protocolo de rede usado pelo IB/FB está implícita na forma como as informações de SERVIDOR e CAMINHO DA BASE são passados para o cliente IB (chamada STRING DE CONEXÃO).

por exemplo, para TCP a string fica na forma:

identificacao_do_servidor:caminho_da_base

e para NetBEUI fica:

\\identificacao_do_servidor\caminho_da_base

onde:

[b:1607dbeea2]identificacao_do_servidor[/b:1607dbeea2] é a forma como, utilizando o protocolo em questão, o cliente pode achar o servidor na rede. Geralmente esta identificação é o IP do servidor, seu nome NetBEUI ou identificação definida em arquivos HOSTS ou servidor DNS para resolução de IP (TCP).

[b:1607dbeea2]caminho_da_base[/b:1607dbeea2] é sempre o caminho da base de dados exatamente como ´definido´ no sistema de arquivos do servidor. Por exemplo, para servidores Windows pode ser algo como ´c:\dados\arquivo.gdb´ e em sistemas ´UNIX´ algo tipo ´/usr/dados/arquivo.ib´.

Note que este caminho é sempre o caminho LOCAL (para o servidor) -- nunca um caminho de rede (UNC) ou compartilhamento. Isto deve-se ao fato de q o IB/FB é um sistema Cliente/Servidor.

Ser Cliente/Servidor significa q o cliente não tem qualquer contato com o arquivo de dados. Ele precisa da identificação do servidor para poder saber ONDE ele vai passar instruções. E precisa do caminho da base apenas para passar para o SERVIDOR que é a aplicação q realmente conecta a base (por isso um caminho de rede não funcionaria)

Além do mais, o IB/FB não possui em sua aplicação servidora suporte para trabalhar com arquivos na rede. O servidor pode acessar apenas arquivos locais (que estão na mesma máquina q a aplicação servidor).

Para finalizar, quando a identificacao_do_servidor é omitida da string de conexão (ex: um string de conexão na forma ´c:\dados\arq.ib´) então o protocolo utilizado pelo IB é um ´quarto´ protocolo não mencionado acima, chamado de LOCAL.

Este protocolo LOCAL deve ser usando apenas por sistemas MONO-USUÁRIO -- mesmo estando local, se outras aplicações vão conectar na rede a esta base, a aplicação local deve evitar este protocolo e usar para conexão um loopback com um protocolo de rede (localhost por exemplo com TCP).

Isso vale tb para aplicações como WebServer ou AppServers, todos devem usar o endereço de LoopBack mesmo q o servidor IB/FB esteja na mesma máquina.

Bom, é isso. Espero q estas informações sejam de alguma ajuda.


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar