Por favor me ajudem(Error establishing socket)-Resolvido

9 respostas
I

Peguei um código na net ra testar minha conexão com o sql server2000, instalei o service pack 3 e o driver jdbc e quando executo surge ess mensagem.

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

Não sei mais o que fazer, ja tentei de tudo.
Segue o meu código

import java.sql.*;
import javax.swing.JOptionPane;

public class Conexao {

    public static void main(String args[]) {

        try {

            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            Connection conn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://ivan:1433", "sa", "");
            Statement stmt = conn.createStatement();
            JOptionPane.showMessageDialog(null, "Conectou!");
	
        } catch(Exception e) {

            JOptionPane.showMessageDialog(null, e.toString());
			System.out.print(e.toString());
        }

    }

}

9 Respostas

I

Por favor só uma dica

Abdon

Ola.

Faça o seguinte teste:

  • va em uma janela promp e digite telnet hostDoBanco 1433

1433 é a porta que o sql server é instalado por default, caso vc tenha alterado isso, coloque a porta especificada.
Caso o telnet conectar, o problema esta na versão do seu driver

Caso contrario o Sql server não esta habilitado para receber conexão via tcp/ip. Isto precisa esta habilitado para funfar

link para habilitar tcp/ip
http://support.microsoft.com/kb/841252/pt-br

I

Obrigado pela atenção.

Eu desabilitei meu firewall, tentei conectar com o comando telnet mas não conectou.
Abri o client network utlity que estava hablilitada e a porta é a 1433.
Troquei a instalação do sql que era o o Personal edition para o Developer edition porque me disseram que essa versão era especial para XP que é o sistema operacional que eu uso.
Mas não consegui.

Não sei mais o que fazer.

Abdon

Não é so uma opção no firewall, vc tem que alterar no sqlserver, eu não me lembro onde, vc vai precisar fazer uma pesquisa sobre habilitar conexões tcp/ip.

I

Procurei em toda a net e não achei nada que resolva o problema, o comando telnet não conecta mas eu consigo abrir o Enterprise normalmente.
Vou tentar instalar novamente o SQL bem devagar e ver se esqueci de algum detalhe, mas agradeço a ajuda e se tiver mais alguma idéia será bem vida.

I

Mudei o jeito de configurar o classpath, mas não deu em nada, nem sinal da porta 1433.

I

vou tentar instalar o servicepack4

T

Também estou com o mesmo problema, decidi entaum instalar o JTDS, soh que ocorreu outro problema, a conexão foi negada.
Não faço idéia que Diabos seja isso, se alguém puder me ajudar…

Vlw
Thiago Dantas

I

Consegui fazer a conexão, tinha instalado o servicePack errado.

Para quem está passando pelo mesmo que eu passei, vou descrever o que eu fiz bem mastigado porque eu gostaria de ter achado algo do tipo quando estava tentando de tudo e não conseguia, e se eu falar alguma besteira peço que seja corrigido.

1º Baixar o service pack 4 do SQL server 2000, pode ser usado o 3 só que eu não testei.
O service pack 4 pode ser baixado no:
http://www.microsoft.com/downloads/details.aspx?familyid=8E2DFC8D-C20E-4446-99A9-B7F0213F8BC5&displaylang=en%20%20%20%20&displaylang=en

Eu baixei o SQL2000-KB884525-SP4-x86-ENU.EXE, tem várias opções nesse link que passei, não sei a diferença deles, mas num tutorial falava pra baixar esse e deu certo pra mim.

2º Instalar o service pack 4:
Eu vacilei nesse passo, porque quando executei o arquivo que baixei, eu pensei tinha sido instalado, mas na realidade o executável só descompacta o arquivo no diretório escolhido.
Abre a pasta do service pack 4 e clica no arquivo setup.bat que está lá dentro, aí sim vai ser instalado.

3° Baixar os drives JDBC ou JTDS:
Esses drives são responsáveis pela conexão com o banco, eu fiz o teste com os dois e funcionaram numa boa.
O JDBC é o drive da microsoft e o JTDS é um drive alternativo e a maioria dos fóruns que li, fala que é melhor do que o da microsoft porque não tem as limitações que tem o JDBC.
Pra baixar o JTDS: http://sourceforge.net/project/showfiles.php?group_id=33291&package_id=25350&release_id=369359
Tem duas opções, eu baixei o arquivo menor, porque mais uma vez eu não sei a diferença dos dois.

Pra baixar o JDBC: http://www.microsoft.com/downloads/details.aspx?familyid=86212D54-8488-481D-B46B-AF29BB18E1E5&displaylang=en

4º Configurar as variáveis de ambiente ?classpath?:
Executa o drive JDBC , esse procedimento só vai descompactar e deixar ele pronto pra uso, que para isso deve-se configurar o classpath.
Eu fiz dessa forma:
Clica com o direito no ícone ?Meu computador? ? propriedades ? vai abrir as propriedades de sistema ? na aba avançado clica em ?Variáveis de ambiente? ? se já tiver uma classpath nas variáveis de usuário é só clicar em ?editar? se não em ?Nova?.
Na tela que abrir coloca classpath no nome da variável e no valor da variável coloca o caminho até a pasta onde esta os .jar .
No meu ficou assim no caso do JDBC:
.;C:\Arquivos de programas\Microsoft SQL Server 2000 Driver for JDBC\lib

Não se esqueça do ponto e ponto e vírgula antes, e se for colocar mais algum jar na sua variável separa elas por ponto e vírgula.
Igual mandar um email pra várias pessoas.

No caso do JTDS o drive vem zipado, eu descompactei ele, copia o arquivo jtds-1.2.jar que vai aparecer no diretótio onde esta os .jar do JRE:
O meu foi colado aqui:
C:\Arquivos de programas\Java\jdk1.6.0\jre\lib\ext daí é só pegar esse caminho e configurar o classpath.

A meu classpath ficaria assim se eu só tivesse usado o jtds.
.; C:\Arquivos de programas\Java\jdk1.6.0\jre\lib\ext

Mas como eu testei o dois drives eu configurei assim:
.;C:\Arquivos de programas\Microsoft SQL Server 2000 Driver for JDBC\lib; C:\Arquivos de programas\Java\jdk1.6.0\jre\lib\ext

Esse foi o procedimento que eu usei e depois de muita luta deu certo.

Segue dois exemplos de código com os dois drives.
//Exemplo com JTDS
import java.sql.*;
import javax.swing.JOptionPane;

public class Conexao {

    public static void main(String args[]) {

        try {

            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:jtds:sqlserver://ivan:1433","sa","");
            Statement stmt = conn.createStatement();
            JOptionPane.showMessageDialog(null, "Conectou!");

        } catch(Exception e) {

            JOptionPane.showMessageDialog(null, e.toString());
			System.out.print(e.toString());
        }

    }

}
//Exemplo com JDBC

import java.sql.*;
import javax.swing.JOptionPane;

public class Conexao {

    public static void main(String args[]) {

        try {

            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://ivan:1433","sa","");
            Statement stmt = conn.createStatement();
            JOptionPane.showMessageDialog(null, "Conectou!");

        } catch(Exception e) {

            JOptionPane.showMessageDialog(null, e.toString());
			System.out.print(e.toString());
        }

    }

}

Valeu!!

Criado 17 de março de 2007
Ultima resposta 3 de abr. de 2007
Respostas 9
Participantes 3