Jtds - Connection refused: connect

16 respostas
W

Ola meus companheiro JavaBoys estou precisando da ajuda de voces para que eu possa solucionar um pequeno problema, que esta me deixando muito louco.

estou fazendo uma migracao de um sistema antigo (que e de outra empresa), para um sistema que foi desenvolvido pela empresa que eu trabalho.

o banco de dados que o sistema antigo usa e sql server 2000 entao, fiz uma classe para fazer a migracao dos dados. so que ao tentar conectar estou recebendo o seguinte erro: Connection refused: connect

e nem imagino como resolver, pois ja tentei varias sugestoes, inclusive algumas achei aqui, porem todas sem sucesso. por isso resolver postar essa duvida aqui espero que alguem possa me ajudar

abaixo codigo da minha classes

private static Connection con;
		try {

			Class.forName("net.sourceforge.jtds.jdbc.Driver");

            con = (Connection) DriverManager.getConnection("jdbc:jTDS:sqlserver://localhost:1433/Escolar2010","sa","");
            
            migrarAlunos();
            
        }
        catch (SQLException e) {
          System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%  Falha na Conexão!");
          e.printStackTrace();
        }            
        catch (ClassNotFoundException e) {
          System.out.println("Classe de Driver Não Localizada!");
          e.printStackTrace();
		}

e quando executo que chega na linha de obter a conexao eu recebo o seguinte erro

%%%%%%%%%%%%%%%%%%%%%%%%%  Falha na Conexão!
java.sql.SQLException: Network error IOException: Connection refused: connect
	at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:385)
	at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
	at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182)
	at java.sql.DriverManager.getConnection(DriverManager.java:620)
	at java.sql.DriverManager.getConnection(DriverManager.java:200)
	at br.com.linkzsistemas.linkztraining.util.RoboMigracaoMerito.main(RoboMigracaoMerito.java:55)
Caused by: java.net.ConnectException: Connection refused: connect
	at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:316)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:177)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:164)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:154)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:354)
	at java.net.Socket.connect(Socket.java:574)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:613)
	at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:304)
	at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:255)
	at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:310)
	... 5 more

entao pessoal conto com a ajuda de voces.

de ja deixo aqui o meu agredecimento…

16 Respostas

paulofafism

Você esta migrando a base de dados para uma versão nova do SQL Server ou esta utilizando a versão antiga? Existe um utilitário no SQL Server SQL chamado: Server Configuration Manager. Nele você deve configurar a porta que você está utilizando que é a 1433.

Tenta verificar se é isso que esta ocasionando o problema.

W

Bom dia paulofafism, não eu não estou migrando para um versao mais nova do SQL Server, sim para Mysql, pois e como eu expliquei estou migrando um sistema de terceiros para o sistema um novo sistema que a empresa que eu trabalho desenvolveu, e eu fiquei encubido de fazer essa migracao.

e quanto a porta utilizada estou usado a 1433 mesmo.

marcos1EM

Você está tentando conectar no SqlServer ou MySql?
Verifique se o banco está rodando.

W

paulofafism estou tentando conectar ao Sql Server, quanto ao Mysql consigo conectar sem problema.

e quanto à sua observacao wellington.nogueira da string “jdbc:jTDS:sqlserver” esse ai e o padrao do jtds mas pode ser usado tambem como voce postou “jdbc:jtds:sqlserver”, e inclusive ja tentei assim tambem. na documentacao do jtds diz que quando esse erro ocorre realmente e por causa de falha na conexao, porem eu garanto que o usuario e senha sao esses mesmo. usuario padrao “sa” e senha em branco. é exatamente por isso que eu estou encabulado pois nao consigo enteder o realmente motivo deste erro. Seria alguma configuracao no Sql Server que esta barrando a minha conexao ?

W

Infelizmente parace ser um beco sem saida…

W

o banco esta na minha maquina mesmo. entao ja foi reiniciado varias vezes.

e eu ja tentei com o proprio drive da microsoft. so nao estou lembrado qual era o erro que dava com o drive deles

Rodrigo.Lima

Você trabalha com instancia no sql server?

Se sim, use no final da sua string de conexão:

;instance=NOME_DA_INSTANCIA

W

não trabalho com instanciano SQL Server, ou melhor eu nao trabalho com SQL Server.
Esta conexao servirá apenas para me fazer a migracao dos dados.

W

acho que a alternativo que vou adotar, e procurar um ferramenta para migrar os dados do sql server para o mysql e de la mesmo, alimentar o meu banco.

porem seria bom se eu conseguisse resolver esse problema, pois ai serviria como lições aprendidas, para mim e para mais alguem que venha a ter esse problema.

marcos1EM

Tente fazer como foi feito no link abaixo: namedpipe=true

http://www.guj.com.br/posts/list/141520.java

W

tentei igual o companheiro guilherme recomendou, pelo ao menos o erro mudou

java.sql.SQLException: Network error IOException: \localhost\pipe\sql\query (Você não foi conectado porque existe um nome duplicado na rede. Vá para 'Sistema' no 'Painel de controle' para alterar o nome do computador e tente novamente) at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:385) at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50) at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182) at java.sql.DriverManager.getConnection(DriverManager.java:620) at java.sql.DriverManager.getConnection(DriverManager.java:200) at br.com.linkzsistemas.linkztraining.util.RoboMigracaoMerito.main(RoboMigracaoMerito.java:55) Caused by: java.io.FileNotFoundException: \localhost\pipe\sql\query (Você não foi conectado porque existe um nome duplicado na rede. Vá para 'Sistema' no 'Painel de controle' para alterar o nome do computador e tente novamente) at java.io.RandomAccessFile.open(Native Method) at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233) at java.io.RandomAccessFile.<init>(RandomAccessFile.java:118) at net.sourceforge.jtds.jdbc.SharedLocalNamedPipe.<init>(SharedLocalNamedPipe.java:61) at net.sourceforge.jtds.jdbc.ConnectionJDBC2.createNamedPipe(ConnectionJDBC2.java:467) at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:307) ... 5 more

W

ah e tambem ja resolve a advertencia que ele fez. sobre o nome duplicado.

so que continua dando o mesmo erro.

PadrE

Já tentou desabilitar o Firewall ?
Derrepente ele está bloquando a porta…

WellingtonRamos

Significa que algo foi feito errado nos parâmetros de conexão.

Ou o usuário, ou a senha, o nome completo do driver (“net.sourceforge.jtds.jdbc.Driver”) ou a URL está errada (aliás, verifique a string “jdbc:jTDS:sqlserver” se não é “jdbc:jtds:sqlserver”.

WellingtonRamos

Welson Santos:
paulofafism estou tentando conectar ao Sql Server, quanto ao Mysql consigo conectar sem problema.

e quanto à sua observacao wellington.nogueira da string “jdbc:jTDS:sqlserver” esse ai e o padrao do jtds mas pode ser usado tambem como voce postou “jdbc:jtds:sqlserver”, e inclusive ja tentei assim tambem. na documentacao do jtds diz que quando esse erro ocorre realmente e por causa de falha na conexao, porem eu garanto que o usuario e senha sao esses mesmo. usuario padrao “sa” e senha em branco. é exatamente por isso que eu estou encabulado pois nao consigo enteder o realmente motivo deste erro. Seria alguma configuracao no Sql Server que esta barrando a minha conexao ?

Tranquilo,
É que quando utilizei o jtds, usei tudo minusculo mesmo.
É interessante, talvez, revisar a url “://localhost:1433/Escolar2010”. Verifique o estado da porta, se o nome da base está correto, troque o localhost pelo nome da máquina.
Infelizmente a exceção é demasiadamente genérica e acaba por não ajudar muito…

WellingtonRamos

Welson Santos:
Infelizmente parace ser um beco sem saida…
Não sei se é possível ou se já tentou mas tente reiniciar a máquina onde está o SQLServer…

É um sistema microsoft, logo tudo resolve-se reiniciando o equipamento :P

Outras formas de conectar-se ao servidor funcionam normalmente? Tente trocar o Driver JDBC, há um outro (não lembro o nome agora) específico também para SQL Server.

Criado 15 de novembro de 2010
Ultima resposta 16 de nov. de 2010
Respostas 16
Participantes 6