摘要:配置Java web應用使用OCI驅動來訪問oracle數據庫,如果在tomcat下有多個應用,且每個應用都要訪問Oracle數據庫時的注意項事。Oracle的即時客戶端配置等。
公司各種產品的前端、後端差不多都是用java開發的Web應用且運行在tomcat裡。根據Oracle的說法,Java程序連接Oracle數據庫時,用oci驅動要比用thin驅動性能好些。主要的區別是使用thin驅動時,不需要安裝oracle的客戶端,而使用oci時則要安裝Oracle的客戶端。
從使用thin驅動切換到oci驅動在配置來說很簡單,只需把連接字符串java:Oracle:thin:@hostip:1521:實例名換為Java:Oracle:oci@本地服務名即可。如:
從
改成
但這裡這台機需安裝oracle數據庫的客戶端並配置本地服務名,同時還需指定NLS_LANG環境變量,NLS_LANG環境變量是用來控制客戶端在顯示Oracle數據庫的數據時所用的字符集和本地化習慣。通常把NLS_LANG的字符集部分指定為數據庫所用的字符集則就不會存在Java顯示的亂碼問題了。
對於oracle數據庫客戶端的安裝,有二種選擇,一是老實的用Oracle數據庫的安裝光盤安裝對應版本的oracle客戶端。二是下載Oracle提從的即時客戶端,即時客戶端是不用安裝的,把下載包解壓即可。
要使Java web正常的通過oci驅動訪問Oracle,還需要客戶端正確的配置一下相關變量。主要如下:
對於Windows系統並使用Oracle客戶端時:
1. 把%Oracle_HOME%\lib加到PATH環境變量.
2. 把%Oracle_HOME%\jdbc\lib\classes12.jar加到CLASSPATH環境變量裡.也可以把classes12.jar拷貝到tomcat的comman\lib目錄下。
對於Windows系統並使用Oracle的即時客戶端時(假定即時客戶端解壓在d盤):
1. 把d:\instantclIEnt_10_2加到PATH環境變量
2. 把d:\instantclIEnt_10_2\classes12.jar加到CLASSPATH環境變量裡.也可以把classes12.jar拷貝到tomcat的comman\lib目錄下。
對於Linux系統並使用Oracle客戶端時:
1. 在使用tomcat的用戶主目錄下的.bash_profile文件中加入
exprot ORACLE_HOME=/u01/app/Oracle/product/9.2.0.4
export LD_LIBRARY_PATH=$Oracle_HOME/lib
2. 把classes12.jar拷貝到tomcat的comman\lib目錄下。
對於Linux系統並使用Oracle即時客戶端時:
1. 在使用tomcat的用戶主目錄下的.bash_profile文件中加入
exprot Oracle_HOME=/instantclIEnt_10_2
export LD_LIBRARY_PATH=$Oracle_HOME/lib
2. 把instantclIEnt_10_2目錄下的classes12.jar拷貝到tomcat的comman\lib目錄下。
如果一個tomcat下帶了幾個應用,且幾個應用都要連接Oracle數據庫時,則要注意的時,不要在每個應用的WEB-INF/lib目錄下放入Oracle的classes12.jar/zip文件。而應該把classes12.jar/zip文件放到tomcat的common/lib目錄下。否則會出來ojdbclib9/10庫重復加載的錯誤。