GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Erro ao conectar banco de dados em rede [RESOLVIDO]

java
programação
banco
Tags: #<Tag:0x00007fea95fca030> #<Tag:0x00007fea95fc9db0> #<Tag:0x00007fea95fc9ba8>

#1

Bom dia a todos!!

Estou desenvolvendo um sistema desktop que trabalha em rede.
Estou utilizando:
SO: Windows 7, Netbeans para desenvolvimento e Firebird para o banco de dados.

O problema.
No ambiente de desenvolvimento, o sistema conecta normal ao banco, porém ao fazer o teste em ambiente de rede aparece a seguinte mensagem de erro: GDS Exception. 335544344 io error for file createfile open "C:/Sistema/BD/BANCO_SCAB.FDB"
Error while trying to open file null

Código que faz a conexão

try{    driver = "jdbc:firebirdsql:192.168.1.150/3050:C:\\Sistema\\BD\\BANCO_SCAB.FDB";
        Class.forName("org.firebirdsql.jdbc.FBDriver");
        conexao = DriverManager.getConnection(driver, conexaoBD.getUsuario(), conexaoBD.getSenha());
        st = conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);                         
        
    }
    catch(Exception erro){
        excecao.mostra(null, erro, "O banco de dados não foi encontrado");
        
    } 

Onde usuario é: SYSDBA, senha: masterkey
O que pode ser?


Como conectar aplicação ao firebird remoto ?
#2


Tente isso.


#4

Boa noite Rodrigo
Obrigado pela dica, vou fazer os testes depois eu posto o resultado aqui


#5

Bom dia a todos.

Fiz o teste que nosso amigo Rodrigo passou, mas infelizmente continua dando o mesmo erro.
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544344 io error for file createfile open "C:/Sistema/BD/BANCO_SCAB.FDB"
Error while trying to open file
null


#6

Acima postei a documentação da URL, tente seguir ela. Troque a / antes da porta por :
Depois poste o código como ficou, mesmo se não deu certo.


#7

Eu li a documentação que você postou, nela ensina a fazer assim:

package hello;
import java.sql.*;
public class HelloServer {
public static void main(String[] args) throws Exception {
Class.forName(“org.firebirdsql.jdbc.FBDriver”);
Connection connection = DriverManager.getConnection(
“jdbc:firebirdsql:localhost/3050:c:/db/employee.fdb”,
“SYSDBA”, “masterkey”);
// do something here
}
}

O meu código esta assim:

try{

 Class.forName(classe);
conexao = DriverManager.getConnection("jdbc:firebirdsql:"+conexaoBD.getIp()+"/3050:c:/Sistema/BANCO_SCAB.fdb", "SYSDBA", "masterkey");
st = conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

}
catch(Exception erro){
excecao.mostra(null, erro, “O banco de dados não foi encontrado”);
}

Onde classe = “org.firebirdsql.jdbc.FBDriver”.

Mas tanto dessa forma quanto a outra, jdbc:firebirdsql://"+conexaoBD.getIp()+":3050/c:/Sistema/BANCO_SCAB.fdb aparece o mesmo erro.

Estou utilizando o jaybird-full-2.1.5.jar


#8

Boa tarde a todos,

Depois de estudar melhor a documentação que nosso amigo Rodrigo postou e o código que eu fiz, achei onde estava o erro.
No meu código, eu uso um método conexaoBD.getIp() onde esse método retorna o ip da maquina, o erro era que, ao testar na maquina em rede, em vez de pegar o ip do servidor, estava pegando o ip da maquina local, por isso que não estava encontrando o caminho do banco de dados. Substitui o ip local pelo ip do servidor e funcionou corretamente.
Pra quem esta com o mesmo problema, fica a dica e o modelo.