【Oracle/Java】JDBCドライバーによるOCIとThinの違いについて
JavaでOracleに接続する際に使用する「JDBCドライバー」のOCI接続、Thinクライアント接続の違いについて紹介します。
[そもそもJDBCとは]
JDBCとは、「Java」と「リレーショナルデータベース(RDBMS)」間の接続を行うためのAPIです。
そのなかで、Oracleに接続するJDBCには接続方法が2つ存在します。
[OCIとThinの違い]
■OCI
Oracleクライアントのライブラリを利用して接続する方式
前提:Oracleクライアント
JDBCドライバー
実行時にOCIのライブラリ(インストールディレクトリの「lib」以下)が必要で、実質的にOracle Clientがインストールされているマシンでしか使用することができません。
■Thin
Javaのライブラリのみを利用して接続する方式
前提:JDBCドライバーのみ
クラスライブラリだけで動作する事ができるので、Oracle Clientがインストールされていないマシンでも動作させる事が可能です。
[どっちを使えばいいの?]
昔はどの端末にもOracleクライアントを導入していた経緯から、OCIを採用する例が多かったですが、最近の傾向としては「pure Java」で動くThinが主流となりつつあります。
「OCIのほうが早い」と聞いたことがありますが、ソースがなかったです。。
[乗り換えには?]
JDBCドライバーを利用するアプリケーションの場合、JavaEEアプリばかりかと思います。
ですので、APサーバのコネクションプールの設定変更のみで対応できます。
アプリ影響は経験則になりますが、ないかと思われます。
<参考>
(補足)Oracleへの接続 | TECHSCORE(テックスコア)
Oracle JDBC OCIとThinの違いについて - log4jk
<愛読書>