Olá pessoal,
Estou tentando conectar minha aplicação a uma base de dados do cliente remotamente, o banco de dados é o SQLSever 2005.
Eu fiz as seguintes configurações no servidor do cliente:
-configurei o sqlserver para receber conexões remotas na porta 1433.
-reiniciei o service do SQLServer(varias vezes)
-configurei o sqlbrowser para executar automaticamente.
-adicionei os arquivos sqlserv.exe e sqlbrowser.exe no firewall do windows no servidor, para as conexões não serem bloqueadas.
-criei uma regra de entrada e saida para a porta 1433 no firewall do windows
-configurei o roteador para liberar a porta 1433.
monto minha url de conexão corretamente
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class TestaConexaoRemota {
private Connection connection;
private CredenciaisBancoServidor cbs;
public TestaConexaoRemota(CredenciaisBancoServidor cbs) {
this.cbs = cbs;
}
public Connection getConnection() {
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
String url = "jdbc:jtds:sqlserver://" + cbs.getIp() + ":" + cbs.getPorta() + "/" + cbs.getNomeBanco();
System.out.println(url);
//connection = DriverManager.getConnection(urlCompleta, cbs.getUsuario(), cbs.getSenha());
connection = DriverManager.getConnection(url, cbs.getUsuario(), cbs.getSenha());
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
public void setConnection(Connection connection) {
this.connection = connection;
}
}
Porém quando executo a aplicação passando o IP do servidor, a porta 1433 e o nome do banco de dados, recebo a seguinte mensagem:
java.sql.SQLException: Connection timed out: connect
at net.sourceforge.jtds.jdbc.TdsConnection.allocateTds(Unknown Source)
at net.sourceforge.jtds.jdbc.TdsConnection.<init>(Unknown Source)
at net.sourceforge.jtds.jdbc.Driver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at TestaConexaoRemota.getConnection(TestaConexaoRemota.java:29)
at Main.main(Main.java:44) Exception in thread "main" java.lang.NullPointerException
at Main.main(Main.java:56)
Estou usando o driver jtds.
Será que eu preciso fazer mais alguma alteração no servidor?
Se eu tento conectar uma base de dados localmente, passsando o IP 127.0.0.1, a conexão é estabelecida com sucesso.
Além de todas essas configurações, preciso fazer mais algum procedimento para conseguir estabelecer a conexão com a base de dados do cliente?
Já fiz muitas pesquisas desde a semana passada, os caras dizem que a única diferença na url de uma conexão local para uma conexão remota, é o endereço IP que no caso de uma conexão remota deve ser passado o IP público estático.
Grato.