Instalei o Sql server 2000 na minha maquina e baixei o driver JDBC da Microsoft pra fazer conexao do SQL Serve com Java.
Esse é um programa teste que fiz . O drive é carregado normalmente,mas na hora de realizar a conexão com o banco, lança a seguinte execeção:
SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
O que devo fazer pra que não lance essa execeção??
public static void main(String args[]) {
// Criando as variáveis de conexão e de statement
Connection con;
Statement stmt;
String query = "select name , id from sysobjects";
// Verificando se o driver JDBC está instalado e pode ser utilizado
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
System.out.println("Drive carregado com sucesso");
} catch (java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
try {
// Abrindo a conexão com o servidor MAURO, login sa e sem senha
con = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433", "sa",
" ");
System.out.println("Conexão gerada com sucesso");
stmt = con.createStatement();
stmt.close();
con.close();
} catch (SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}
}
Sugestão - rode o comando netstat -an no servidor do SQL Server, e veja se aparece a porta 1433.
netstat -an | findstr 1433 | findstr LISTENING
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING (1)
TCP 127.0.0.1:1433 0.0.0.0:0 LISTENING (2)
TCP 10.100.12.34:1433 0.0.0.0:0 LISTENING (3)
Se aparecer algo parecido com a linha marcada com (1) ou (2) a sua string de conexão (localhost:1433) deveria funcionar. Mas se você vir apenas algo parecido com a linha (3) não se pode usar localhost, mas o IP correto do servidor (no exemplo acima, 10.100.12.34)
Eu já tive esse problema e mesmo trocando o driver não consegui fazer a conexão. O problema só foi resolvido com a atualização do ms sql server. A atualização do sp é fácil, faça o download no site da ms. Se tiver qq dúvida posta aí q nós ajudamos.
Há, não esqueça de dar um retorno sendo positivo ou negativo.
Galera ,
pegou a conexão depois que atualizei o sql server 200 com sp3. O sp3 baixei diretamente do emule.
Obrigado a todos que colaboram para solução do problema, o qual era o bendito service pack.
Falows !!!
Erro de socket ocorre quando a porta(TCP) não está disponível, provavelmente é na configuração do SQL.
experimente dar um ping para o nome do servidor para saber se o nome está sendo resolvido normalmente, no windows 2003 por padrão não responde, então coloque o ip do servidor ao invés do nome do servidor; Se tiver respondendo normalmente passe para o passo 1;
para tirar sua dúvida, use um software de sniffer para saber se a porta está disponível. Eu uso o nmap (www.insecure.org), basta instalar o nmap com o TCPDUMP e rode o comando no console do windows c:\nmap\nmap -sS nomedoservidor(ou IP), deverá mostrar como na figura(fig1.gif) em anexo.
Se a porta 1433 não estiver disponível, vá no console do sql, em propriedades e na opção de network configuration, lá habilite o pipe e TCP/IP.
Caríssimo Claudomir!!!
Sou iniciante no JAVA(Eclipse), depois de tanto sofrer tentando fazer o eclipse conectar no SQL Server 2000
consegi achar o seu código aqui no GUJ consegui fazer pelo menos as mensagens de “Sucesso” aparecerem na minha tela…srsr (Drive carregado com sucesso e Conexão gerada com sucesso ).
Amigo, agora como faço pra realmente ter a certeza que esou conectado no meu banco?
Vc pode me ajudar?!
Desde já, muito obrigado!