天天看點

夢回程式設計-JBOSS下的OCI配置

以前一直用thin的方式來連接配接Oracle,現在需要使用oci的方式,聽說性能要好些。

于是從jdbc:oracle:thin:@10.1.1.2:1521:dev-dbc改成:jdbc:oracle:oci8:@dev-dbcommon

我的環境是Ubuntu9.04,JBOSS1.4,Oracle 10.0.2,OCI

OCI方式(Oracle Client Interface):一組可對ORACLE資料庫進行存取的接口子例程(函數),通過在第三代程式設計語言(如C語言)中進行調用可達到存取ORACLE資料庫的目的。

有兩種方式可以得到OCI的

方式一、安裝Oracle 用戶端

方式二、下載下傳OTN的instant client(http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html)

方法一我嘗試了N次沒有成功,估計是Ubuntu安裝Oralce Client版本問題

成功的是使用方式二:

解壓到目錄:/opt/instantclient_10_2

2)配置環境變量:

ORACLE_HOME=/opt/instantclient_10_2

TNS_ADMIN=$ORACLE_HOME(貌似這個變量還是需要的,否則好像仍然會找不到tnsnames.ora,報TNS的錯誤)

LD_LIBRARY_PATH=$ORACLE_HOME/lib

export ORACLE_HOME

export TNS_ADMIN

export LD_LIBRARY_PATH(這個變量貌似不用配置,對應java.library.path,後面講)

3)設定classes12.jar和ojdbc.jar:

cp classes12.jar和ojdbc.jar到 /opt/jboss/server/default/lib下

4)配置tnsnames.ora:

在instantclinet_10_2下增加tnsname.ora檔案:

dev-dbcommon=

(description=

(address_list=(address=(protocol=tcp)(host=db.dev.dbc.taobao.net)(port=1521)))

(connect_data=(service_name=dev-dbc)(server=dedicated))

JBoss啟動過程中出現了幾個問題:

問題一:java.lang.UnsatisfiedLinkError: no XXX in java.library.path

解決方法:檢視Jboss啟動腳本

JBOSS_NATIVE_DIR=”$JBOSS_HOME/bin/native”

修改成:JBOSS_NATIVE_DIR=”/opt/instantclient_10_2″

問題二:java.sql.SQLException: ORA-12154: TNS:could not resolve the connect identifier specified

解決方法:配置TNS_ADMIN

但是有個比較奇怪的問題是必須用root使用者登入後,啟動Jboss,TNS才沒有問題,估計是檔案的權限問題。

本文轉自 神相 51CTO部落格,原文連結:http://blog.51cto.com/shenxiang/269200,如需轉載請自行聯系原作者