Problemas em sistema rodando com Firebird
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
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
Curtidas 0
Respostas
Afarias
10/02/2005
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+
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+
GOSTEI 0
Welson
10/02/2005
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!!!
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!!!
GOSTEI 0
Afarias
10/02/2005
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+
GOSTEI 0