Ola pessoal… estou tentando realizar uma conexao com o banco DB2 em um servidor remoto…
.java
package conexao;
import java.sql.*;
public class conecta {
public Connection con;
public Statement stm;
public ResultSet res = null;
private String sit = "";
public conecta()
{
try
{
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
con = DriverManager.getConnection("jdbc:db2:SERVIDOR","user","senha");
stm = con.createStatement();
sit = "Conexao realizada com sucesso";
}
catch(Exception e)
{
sit = "Nao foi possivel conectar " +e.getMessage();
}
}
public String getSituacao()
{
return sit;
}
}
.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@page import="java.sql.*"%>
<jsp:useBean id="con" class="conexao.conecta"/>
<%--
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
--%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'testeConexao.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>Testando a Conexao</h1>
<p>Status da Conexao :
<jsp:getProperty name="con" property="situacao"/>
</p>
</body>
</html>
ERRO APRESENTADO
Status da Conexao : Nao foi possivel conectar No suitable driver
por favor… alguem sabe onde esta o problema?.. parece ser problema de driver… mais nao sei como resolve-lo…
agradeço a todos…
Tente criar uma instancia do Driver do DB2…
package conexao;
import java.sql.*;
public class conecta {
public Connection con;
public Statement stm;
public ResultSet res = null;
private String sit = "";
public conecta()
{
try
{
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();
con = DriverManager.getConnection("jdbc:db2:SERVIDOR","user","senha");
stm = con.createStatement();
sit = "Conexao realizada com sucesso";
}
catch(Exception e)
{
sit = "Nao foi possivel conectar " +e.getMessage();
}
}
public String getSituacao()
{
return sit;
}
}
Olá Humbertim2 ,
Já existe alguns tópicos respondidos sobre conexão com DB2-Express.
Quando isso aconteceu comigo, foi solucionado depois que copiei o arquivo *.jar que contém o driver JDBC DB2 para as pastas $TOMCAT_HOME/common/lib e $TOMCAT_HOME/shared/lib .
$TOMCAT_HOME = a pasta onde está instalado o seu Tomcat.
Você colocou as libs (.jar e .zip) do Db2 dentro do seu diretorio WEB-INF/lib?
Pessoal obrigado pelas respostas… só que meu problema persisti…
No meu caso estou utilizando o Jboss… jah copie .jar e .zip para a pasta
C:\Arquivos de programas\jboss-4.0.4RC1\server\default\lib
e para a pasta…
C:\Arquivos de programas\jboss-4.0.4RC1\server\default\deploy\Hello.war\WEB-INF\lib
já inclui o .jar nas libraries no Java Build Path…
tem necessidade de copia-la para outra pasta…
Detalhe…
-Utilizando o MyEclipse DataBase Explorer, a conexão é realizada sem problemas…
-Utilizando o Assistente de configuração de controle do DB2, tbm funciona sem problemas…
só apresenta o erro na pagina jsp mesmo…
criando a instancia como o bernardo.rafael me aconselhou… o erro mudou… segue abaixo
Status da Conexao : Nao foi possivel conectar java.lang.UnsatisfiedLinkError: no db2jdbc in java.library.path
não sei mais o que fazer…
agradeço de já…
Cara, verifique o endereço do servidor e a URL de conexão…
Dê uma procurada na documentação da IBM, lá você pode encontrar alguma coisa…
abraços.
kra mudei meu código pra esse…
[code]
package conexao;
import java.sql.*;
public class conecta {
public Connection con;
public Statement stm;
public ResultSet res = null;
private String sit = "";
public conecta()
{
try
{
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver");
//DriverManager.registerDriver(new COM.ibm.db2.jdbc.app.DB2Driver());
String url = "jdbc:db2://<server_name>:<port>/<name_base>:" +
"user=login;password=password;";
con = DriverManager.getConnection(url);
//jdbc:db2://<host_name>:<port>/<dbname>
stm = con.createStatement();
sit = "Conexao realizada com sucesso";
}
catch(Exception e)
{
sit = "Nao foi possivel conectar " +e.getMessage();
}
}
public String getSituacao()
{
return sit;
}
}[/code]
repare que mudei Driver… tentei com o .app e o .net do driver2… com o .app apresentou aquele primeiro erro que enviei no começo desse tópico…
agora com o driver .net o erro passou a ser o seguinte…
Testando a Conexao
Status da Conexao : Nao foi possivel conectar [IBM][Controlador JDBC] CLI0615E Erro durante recepção do soquete, o servidor não está respondendo. SQLSTATE=08S01
pelo que entendi esta tendo conflito de versões… alguém já passou por esse problema…
Utilize os seguintes .jar, jogue eles dentro do diretório WEB-INF/lib da sua aplicação, igual o Leonardo disse
- db2jcc.jar
- db2jcc_javax.jar
- db2jcc_license_cisuz.jar
- db2jcc_license_cu.jar
Eles estão presentes no diretório java do DB2.
Para fazer a conexão, use o seguinte:
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection con = DriverManager.getConnection("jdbc:db2://host:porta","user","senha");
Isso certamente irá funcionar.
Olá…ManchesteR…
valeu pela dica cara… soh não consegui testar ainda… apareceu algumas outras prioridades… assim que conseguir testar, posto uma msg para finalizar este tópico…
porém de imediato eu reparei que na versão que instalei (db2 7.2) não consta o driver .jcc apenas os drivers .app e .net, que ficam na pasta C:\Arquivos de Programa\SQLLIB\java.
Essa imcompatibilidade de drivers do db2 com jdbc, faz perder um tempo precioso, deveria ser um só… não acham?
[quote=Humbertim2]Olá…ManchesteR…
valeu pela dica cara… soh não consegui testar ainda… apareceu algumas outras prioridades… assim que conseguir testar, posto uma msg para finalizar este tópico…
porém de imediato eu reparei que na versão que instalei (db2 7.2) não consta o driver .jcc apenas os drivers .app e .net, que ficam na pasta C:\Arquivos de Programa\SQLLIB\java.
Essa imcompatibilidade de drivers do db2 com jdbc, faz perder um tempo precioso, deveria ser um só… não acham?
[/quote]
Tenta adicionar os drivers que voce tem, certamente irá funcionar
Eu trabalho com a versão 8, e nelas consta os drivers que eu citei.
Olá, estou com o mesmo problema que o Humbertim2, quero me conectar a um servidor na rede, e a versão do DB2 utilizada aqui é a 7.
a classe que utilizo para estabelecer a conexão é esta:
public class ConexaoJDBC {
private static Connection connection;
static {
try {
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException{
connection = DriverManager.getConnection("jdbc:db2://[ip do banco]:[porta]/[nome do banco]","[usuario]","[senha]");
return connection;
}
(...)
}
o erro retornado pelo compilador é este:
COM.ibm.db2.jdbc.DB2Exception: [IBM][Controlador JDBC] CLI0615E Erro durante recepção do soquete, o servidor não está respondendo. SQLSTATE=08S01
alguém pode me ajudar?
[quote=CaioMelqui]
o erro retornado pelo compilador é este:
COM.ibm.db2.jdbc.DB2Exception: [IBM][Controlador JDBC] CLI0615E Erro durante recepção do soquete, o servidor não está respondendo. SQLSTATE=08S01
alguém pode me ajudar?[/quote]
olá CaioMelqui,
vc conseguiu realizar a conexao através de uma console? esse erro esta parecendo mais de rede ou problemas com o bd server na maquina remota do que com sua aplicação.
tenta conectar pela console e caso nao role veja se o server da base esta “startado”
abrço
[quote]
COM.ibm.db2.jdbc.DB2Exception: [IBM][Controlador JDBC] CLI0615E Erro durante recepção do soquete, o servidor não está respondendo. SQLSTATE=08S01 [/quote]Realmente seu servidor não está startado. Use somente JDBC tipo 4 pois os outros tipos estão descontinuados e tente mudar o seu código de conexão.:
[code]static String driver = “com.ibm.db2.jcc.DB2Driver”;
static String url = “jdbc:db2://localhost:50000/test”; // substitua pelo seu Ip e instancia do banco de dados
static String pw =“username”;
static String user=“password”;
public static void DBConnection()
{
try
{
Class.forName(driver);
System.out.println(“Driver Loaded”);
Connection connection = DriverManager.getConnection(url, user,
pw);
}
catch(Exception e){
System.out.println("Exception : " + e.getMessage());
}
}[/code]
Getting Started with DB2 Express-C - http://www.ibm.com/developerworks/wikis/display/DB2/FREE+Book-+Getting+Started+with+DB2+Express-C
sds.
Valeu a ajuda pessoal. Consegui resolver o problema, falei com uma pessoa responsável pela rede e ela disse que a versão do servidor DB2 é 8 e os clientes são 7, e eu estava tentando usar um driver da versão 7, que utiliza este padrão: Class.forName(“COM.ibm.db2.jdbc.net.DB2Driver”), pra me conectar ao servidor. Copiei os arquivos db2jcc.rar e db2jcc_license_cu.jar do servidor, coloquei na minha aplicação e alterei o comando da classe de conexão com o banco para Class.forName(“com.ibm.db2.jcc.DB2Driver”) e funcionou.