1. 미들웨어이야기/05. 상용미들웨어

Oracle oci 와 thin 간단 비교

OSSW(Open Source System SoftWare 2009. 6. 5. 14:03

SUN 에서는 DB Vender사에 4가지 종류의 JDBC JDBC Driver 있음을 공표 하였습니다. 중에서도 Type2 Type4 형태의 Driver 많이 제공하는데 Type2 JDBC Driver , Oracle 얘기하면 Sql*Net 필요로 하며, .dll 혹은 .so 형태의 H/W 종속적인 형태의 Native Module 통해 DB연결 됩니다. Oracle 경우 JDBC Type2 형태를 통산 OCI(Oracle Call Interface) Driver 부릅니다.

Type 4 형태의 JDBC Driver 순수하게 Java package만으로 바로 DB 연결이 가능합니다. Oracle에서는 통산 Thin Driver 부릅니다.

Oracle 데이터를 보면 성능 면에서 보면 Type 2 형태가 보다 빠른 성능을 냅니다. 반면 SQL*Net 같은 native module 항상 있어야 하므로 물리적인 H/W 구성에 다소 종속적인 형태가 밖에 없습니다.

반면 Type 4 형태일 경우는 Client에서 필요로 하는 것은 유일하게 Java 클래스만으로 DB 접속이 가능하니 어떤 H/W, OS에서도 유연하게 DB 연결이 가능합니다. 대신 OCI 형태보다 성능이 떨어집니다. 그러나 이건 어디까지나 Oracle JDBC Driver 한해서 그러할 뿐입니다.


Oracle Oci Driver Thin Driver 사용범 아래와 같습니다.

Oci Driver

libjdbc*.so 파일이 필요하며, 해당 디렉토리가 Shared Library Path 등록되어 있어야 합니다. , 최소한 Oracle Client 제품이 머신에 설치되어 있어야 합니다.

[사용법]
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:oci8:@ORA8i_alias";
String user = "scott";  String password = "tiger";
Class.forName(dirver);
Java.sql.Connection conn =

DriverManager.getConnection(url, user, password);

Thin Driver

thin 방식의 경우는 파일만 있으면 되며, Oracle관련 제품이 Local머신에 설치되어 있을 필요가 없습니다.

[사용법]
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@210.220.251.96:1521:ORA8i";
String user = "scott";  String password = "tiger";
Class.forName(dirver);
Java.sql.Connection conn =

DriverManager.getConnection(url, user, password);