Erro ao conectar banco de dados em rede [RESOLVIDO]

6 respostas
bancoprogramaçãojava
B

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?

6 Respostas

R


Tente isso.

B

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

B

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

R

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.

B

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

B

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.

Criado 24 de novembro de 2017
Ultima resposta 27 de nov. de 2017
Respostas 6
Participantes 2