Conectar com Sybase via jdbc

17 respostas
L

Pessoal

Estou tendo que conectar com um server Sybase e para teste instalei na minha máquina o SQL Anywhere 12.
Pelo Sybase Central eu consigo conectar no BD, porém se eu tento conectar via Java com Jdbc (Jtds) recebo
o erro

java.sql.SQLException: Network error IOException: Connection refused: connect

Abaixo a classe de conexão

public class Conexao {
      
	private static Connection connection = null;
	
	public static Connection getConnection(){  
		try {  
			Class.forName("net.sourceforge.jtds.jdbc.Driver");  
			if (connection == null || connection.isClosed()) {
				connection = DriverManager.getConnection(
						"jdbc:jtds:sybase://localhost:2638/nomeBD",
						"DBA",
						"senha"
				);
				connection.setAutoCommit(false);
			}
		} catch(Exception e) {  
			System.out.println(e);
		}  
		
		return connection;
    }

}

Tentei achar o jConnect (Jdbc) da sybase mas não consegui…

17 Respostas

F

Usei por 5 anos o jTDS - http://jtds.sourceforge.net/

L

É esse que estou usando tbm, mas estou tendo o erro reportado no post original

F

Possiveis erros para Connection refused: connect

  • Servidor de banco não esta ligado
  • porta socket errada
  • problemas na rede…
L

Pois é, mas se eu conecto pelo Sybase Central não tenho erro nenhum,
só quando tento via jdbc.

A rede é “local mesmo”, o server e client estão no meu notebook mesmo.
No Sybase Central quando eu vou conectar em um servidor uso as mesmas
informações da conexão via jdbc e conecta.

Não sei o que pode ser

L

Mais uma informação:
O SqlState = 08S01 (peguei no stacktrace)

F

Connection refused
Error message
Could not connect to <jdbc:sybase:Tds:localHost:5001/emb>: JZ006: Caught IOException: java.net.ConnectException: Connection refused: connectJZ006:
Explanation
The Mirror Replication Agent attempted to connect to a Sybase server on a host called localHost and port 5001. The error indicates no server was found.

Veja a doc = http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.mro12.6.mro126ag/html/mro126ag/mro126ag126.htm

Tem alguma coisa errada…vc acha que sua conexão jdbc esta igual,…mas tudo indica q não… infelizmente não tenho como ajudar mais daqui.

F
  • Veja se pelo IP de loopback 127 ele conecta…
  • Veja se essa porta mesmo que vc ta usando no manager…
L

Sim, já tentei 127.0.0.1 e o nome da maquina,
No Sybase Central vai e via jdbc não vai…

L

Outros testes que fiz foi utilizar o driver jdbc da sybase mesmo no seguinte formato

try {  
			Class.forName("com.sybase.jdbc3.jdbc.SybDriver");  
			if (connection == null || connection.isClosed()) {
				connection = DriverManager.getConnection(
						"jdbc:sybase:Tds:localhost:2638?ServiceName=nome_bd",
						"DBA",
						"dba"
				);
				connection.setAutoCommit(false);
			}
		} catch(Exception e) {  
			System.out.println(e);
		}  
		return connection;

Utilizando o JTDS

try {  
			Class.forName("net.sourceforge.jtds.jdbc.Driver");  
			if (connection == null || connection.isClosed()) {
				connection = DriverManager.getConnection(
						"jdbc:jtds:sybase://localhost:2638/nome_bd",
						"DBA",
						"dba"
				);
				connection.setAutoCommit(false);
			}
		} catch(Exception e) {  
			System.out.println(e);
		}  
		return connection;

Tentei informando a porta, sem informar a porta, tentando a porta 7000.
Tentei também informando 127.0.0.1, tentei com nome da máquina e via
JDBC nada de conectar…
Pelo Sybase Central conecta…

Tentei rodando no Win7 sem firewall ativado…
Tentei rodando no XP sem firewall ativado e nada…

Já estou ficando sem opções, se alguém saber de algum
“macete” para conectar no “dito cujo” do Sybase por favor
entre em contato, se puder passar o driver jdbc, sei lá, de repente
a versão que estou usando pode ser o problema (jtds 1.2.5 e a do sybase jconn3)

F

Então amigo…não tem macete e nem segredos…é simples assim mesmo.
Mas dentro do seu ambiente ai tem alguma coisa especifica que esta gerando esse problema…
Agente aqui de fora não tem com ajudar…
Minha dica é…seu erro diz que a tentativa de conexão nem esta chegando no servidor…
problema com rede, ip, firewall, porta bloqueada, etc, etc…
OU seja…seu socket esta tentando fazer uma conexão TCP com o socket do servidor rodando o banco mas a maquina destina não esta sendo encontrada…
Veja que isso é um problema no seu ambiente…
No resto é 1 minuto parra fazer essa conexão…
T+

L

Pois é Fernando,

Já conectei com vários outros bancos com jdbc e sempre foi tranquilo. O Sybase é que está me dando dor de cabeça.
Pior que nem to encontrando no próprio SybaseCentral nem na net como configurar acesso tcp/ip no Sybase.

F

leojribeiro:
Pois é Fernando,

Já conectei com vários outros bancos com jdbc e sempre foi tranquilo. O Sybase é que está me dando dor de cabeça.
Pior que nem to encontrando no próprio SybaseCentral nem na net como configurar acesso tcp/ip no Sybase.


Mais um motivo para ver que é algo relacionado com o próprio banco ou infra em torno do banco…
Gostaria de poder ajudar mais…

F

Já tentou telnet 127.0.0.1 2638 ou telner localhost 2638 para ver se a porta está “escutando” ?

Abraço,

Fred

L

Opa,

Eu utilizei o free port scan e a porta 2638 que eu conectei via SybaseCentral no BD, segundo o programa está
fechada:

Port Status: closed
Port Name: sybaseanywhere
Description: sybase anywhere, sybase database

F

Está usando windows ? Veja se não existe algum serviço do sybase que só é iniciado pelo sybase central.

Abraço,

Fred

L

Pois é,

Conectando via SybaseCentral vejo que o serviço dbeng12.exe (SQL Anywhere Personal Server) é iniciado,
mas mesmo assim via jdbc continuo recebendo

Connection Refused

Cara eu não sei mais o que fazer, sempre conectei via jdbc com outros bancos como
PostgreSQL, SQL Server, Oracle, MySQL e nunca tive problema…Mas esse Sybase
ta incomodando…

L

Pessoal,

Consegui conectar no Sybase (SQL Anywhere).
O que ocorria é que o Sybase Central startava o Personal Server.
Pesquisando aqui vi que tinha um “Network Server”.
Estartei esse cara na mão e agora conectou via jdbc.

Agradeço a todos os colegas que responderam o tópico.

Att

Criado 16 de setembro de 2011
Ultima resposta 21 de set. de 2011
Respostas 17
Participantes 3