database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
ㆍDB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DB2 Q&A 867 게시물 읽기
No. 867
JDBC로 DB2접속이 않됩니다.
작성자
이상식
작성일
2005-10-27 15:42
조회수
10,175

아래와 같이 odbc로 연결할때는 접속도 잘되고 데이터도 잘 받아오고 있습니다.
근데 JDBC로 접속을 시도하면 드라이버까지는 등록되는데 그뒤로는 아무런
응답도 없고 멈춰 있습니다.
IP와 PORT DATABASE 이름은 JDBC와 ODBC 동일하게 세팅하였습니다.
JDBC 드라이버는 db2java.zip 으로 7버전과 8버전 두가지로 테스트 해봤습니다.
서버에서 JDBC드라이버를 꼭 받아와서 세팅해야 하나요?
현제 서버 관리자와 연락이 닿기가 너무 힘들어서요...
벌써 몇일째 삽질하고 있습니다.
DB2 아시는 분은 도와 주세요.
ㅠㅠ

import java.sql.*;
import java.util.*; //등록된 드라이버를 확인하기 위함 (안써도 됨)
import java.lang.*;

public class MT1 {
public static void main(String[]args)
{
Connection con=null;
Statement stmt;
System.out.println("드라이버를 로드시작 합니다");
try{
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver").newInstance();
/* ODBC 연결 드라이버 */

//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

System.out.println("드라이버 등록 완료!");
Enumeration m=DriverManager.getDrivers();
System.out.println("등록된 드라이버는 ");
while(m.hasMoreElements())
{
System.out.println("name: "+m.nextElement());//예외발생하면예외발생한드라이버명을표시
}
}catch(Exception e) {
System.out.println("드라이버가 없거나 오류입니다.");
Enumeration m=DriverManager.getDrivers();
System.out.println("등록된 드라이버는 ");
while(m.hasMoreElements())
{
System.out.println("name: "+m.nextElement());//예외발생하면예외발생한드라이버명을표시
}
}
//1.드라이버를 드라이버매니저에 등록하는 부분...(종료)
try{
String URL = "jdbc:odbc:DB2";
String user = "kimjj";
String pass = "12qwaszx";

//con = DriverManager.getConnection("jdbc:odbc:DB2","kimjj","12qwaszx");
con = DriverManager.getConnection("jdbc:db2://158.98.108.114:50000/TSD621AI","kimjj","12qwaszx");
if(con!=null) System.out.println("DB2 연결됨");

stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select problem_code from TSD621AI.PROBLEM_VIEW");

while(rs.next()){
String tt = rs.getString(1);
System.out.println(tt);
}
}catch(Exception ex){System.out.println("연결안됨:"+ex);}//db서버가 꺼져있거나
}
}

 

이 글에 대한 댓글이 총 3건 있습니다.

 

DB2 v8 기준으로 말씀드리겠습니다.

 

v8 이전의 JDBC driver을 DB2 JDBC drvier라고 하고,

v8 이후에 새롭게 추가된 JDBC driver를 Universal JDBC driver라고 명명하고 설명합니다.

v8 이상에서는 Universal JDBC Driver를 사용할 것을 권장합니다.

 

Class files

- db2java.zip : DB2 JDBC Type 2 and Type 3 Driver

- db2jcc.jar   : Universal Type 2 and Type 4 Driver

License jar files (Universal JDBC driver를 사용할 때 필요)

- db2jcc_license_cu.jar : for connecting DB2 v8 for LUW

- db2jcc_license_cisuz.jar : for connecting DB2 for iSeries and z/OS

JDBC Drvier class name

- DB2 JDBC Type 2 Driver : COM.ibm.db2.jdbc.app.DB2Driver

- DB2 JDBC Type 3 Driver : COM.ibm.db2.jdbc.net.DB2Driver

- Universal JDBC Type 2 Driver : com.ibm.db2.jcc.DB2Driver

- Universal JDBC Type 4 Driver : com.ibm.db2.jcc.DB2Driver

JDBC url name

- DB2 JDBC Type 2 Driver : jdbc:db2:db_name

- DB2 JDBC Type 3 Driver : jdbc:db2://host_name:port_name/db_name

- Universal JDBC Type 2 Driver : jdbc:db2:sample

- Universal JDBC Type 4 Driver : jdbc:db2://host_name:port_name/db_name

 

Sample program

import java.sql.*;
Connection con;
Statement stmt;
ResultSet rs;
Class.forName(“com.ibm.db2.jcc.DB2Driver”);
con = DriverManager.getConnection(“db2:jdbc://server1:50000/sample”);
stmt = con.createStatement();
rs = stmt.executeQuery(“select EMPNO from EMPLOYEE”);
while (rs.next()) {
s = rs.getString(1);
}
rs.close();
stmt.close();
con.close();

 

DB2 and JAVA Developer Domain

 http://www7b.boulder.ibm.com/dmdd/zones/java/

 

도움이 되시길 바랍니다.

 

 

 

이정권(jkwonl)님이 2005-10-28 23:01에 작성한 댓글입니다.

V8 JDBC는 위에 글에 자세히 설명되어 있으니 참조하세요.

db2의 JDBC DRIVER type에는 4가지 type이 있습니다.

님께서 처음에 odbc로 연결할때 사용하셨다는 driver는

type1 driver로 JDBC-ODBC bridge driver라고 합니다. 이 것은 odbc conversion때문에 사용하지만 일반적으로 사용되지는 않습니다. 그다음에 테스트하신 driver는

type 3 driver로 일반적으로 net driver라고 부릅니다.

db2 V7까지는 사용되었습니다. 하지만 V8부터 type4 driver가 지원되면서 거의 사용하지는 않습니다.

type 4 driver가 일반적으로 말하면 jdbc thin driver라고 할수 있습니다. 순수 자바로 구현되어 있습니다.

db2 V7까지는 type 4 driver가 지원하지 않았기 때문에 일반적으로 type 2 driver를 사용하였고 그다음에 type 3 driver를 사용하였습니다.

type 2 driver는 app driver라고 합니다. type 2 driver는 클라이언트에 db2 client 를 설치하고 서버 db와 카탈로그를 설정한 상태에서 사용하는 방식입니다.

위의 소스에서 님께서 테스트하다가 실패하신 방식은 type 3 driver방식입니다. 하지만 이방식은 먼저 선행 작업이 서버에서 이루어 져야 합니다.

서버에서 db2jd라는 프로세스가 구동되어야 합니다.

db2jstrt 포트번호 

라고 치면 db2jd라는 프로세스가 설정한 포트번호를 가지고 구동을 합니다.

그러면 net driver에서 그포트번호로 연결을 하셔야 합니다.

예) db2strt 51000

jdbc:db2://158.98.108.114:51000/TSD621AI

그리고 클라이언트의 db2jdbc.zip은 서버의 jdbc driver와 버젼이 일치하여야 합니다. 만일 db 서버가 db2 v8이면 위의 글과 같은 type 4 driver를 사용하시고 v7이면 type 4를 사용하시지 못하기 때문에 type2나 type3를 사용하시면 됩니다.

 

 

김동주님이 2005-10-29 10:22에 작성한 댓글입니다. Edit

두분다 감사합니다

 

모르던 부분을 알았습니다.

이상식님이 2005-10-31 12:22에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
870segmentation violation 문제에 대해서... [1]
db2man
2005-10-31
7679
869Quest에서 Toad for DB2 를 출시하였습니다.
김동주
2005-10-31
6967
868AS400에서 전체테이블 리스트및 컬럼리스트 보는 SQL구문좀 알려주세요 [2]
차상x
2005-10-28
6460
867JDBC로 DB2접속이 않됩니다. [3]
이상식
2005-10-27
10175
866인스턴스가 Shutdown 되었을때 트랩파일이 떨어지지 않는다?
dbman
2005-10-26
5180
865솔라리에서 pkgadd로 DB2설치 방법? [1]
db2man
2005-10-24
5390
864쿼리문 질문입니다...ㅡㅡ^ [3]
김종진
2005-10-23
7181
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다