Problema de conexao de java + sql server 2000 com driver JDBC

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??

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class ConDBSQL {

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());
	}
}

}

Claudomir,

Não sou expert em SQLServer, porém pesquisando achei um tópico no forum da sun, veja:
http://forum.java.sun.com/thread.jspa?threadID=419214

Obs.: quando for postar um código, coloque entre as tags , fica mais fácil para entender.

Valeu,

Paulo

Ja tive alguns problemas inexplicaveis com o drive da Micro$oft.

Da uma olhada no JTDS to usando ele a muito tempo e nunca tive problema.

claudomir,

ja verificou se seus arquivos .jar do driver da Microsoft estao no seu classpath ??

acho que se vc coloca-los no lugar certo imagino que va funcionar !

falo

PS: qdo utilizar comando em Java colocar o codigo entre Codes, fica mais facil de ler

Faz a instalação do sp caso não tenha feito.

Att,

Ricardo

sp ???

service pack!!!

Att,

Ricardo

entendi ! mas acho que esse erro nao é do sp, mas nao custa perguntar ! nao eh

Pode ser sim, pois eu estava com um problema parecido que só foi solucionado quando eu instalei o sp do sql 2000.

Att,

Ricardo

Eu acho que é o sp mesmo, pois já fiz todas tentativas possiveis.É facil instalar o sp no sqlserver?

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)

discordo, os dois drivers sao bons, basta saber utiliza-los !!!
mas a questao nao é essa !

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.

Att,

Ricardo

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 !!!

Consegui fazer a conexão.Fiz atualização do sql server 200 com service pack3 e pegou sem problemas a conexão com java.
Falows

Saudações,

Erro de socket ocorre quando a porta(TCP) não está disponível, provavelmente é na configuração do SQL.

  1. 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;

  2. 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.

  3. 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.

Grande abraço



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!

o driver da microsoft não funciona direito mesmo …

tenta usar o JTDS, funciona perfeitamente comigo …

não eh aconselhado usar o da MC