JDBC連接ORACLE 12C PDB數據庫


應用環境 :
  應用服務器linux,中間件:tomcat 6,jdk版本:1.6.0_43,jdbc驅動:ojdbc6,數據庫oracle12c pdb。
 
問題描述
  環境搭建完成之后, 連接使用的連接串格式為:jdbc:oracle:thin:@127.0.0.1:1521/pdborcl
       在應用連接數據庫的時候一直報錯:
        java.sql.SQLException: Io 異常: Invalid connection string format, a valid format is: "host:port:sid" 。
                            
解決過程
        1、首先在應用當中做了很多的嘗試,無法得到解決,網上查詢資料,說是低版本的ojdbc驅動就會出現這樣的問題,但是使用的驅動是沒有問題的,版本都是匹配的。
        2、之后改變連接串格式為:jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.9.20.41)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MANAGER))),但是這種方式還是報錯了,查詢資料之后需要在oracle的安裝目錄的/NETWORK/ADMIN/sqlnet.ora中添加版本支持的參數,添加完成參數之后本地連接本地庫成功。但是服務器是oracle一體機,做了集群,只能操作數據庫,不能訪問系統,無法做這樣的嘗試,並且跟oracle一體機的管理人員溝通表示,我們的連接串(jdbc:oracle:thin:@127.0.0.1:1521/pdborcl)是沒有問題的,而且必須是這樣,所以還是得解決在原先連接串下的問題。
        3、本機使用java-jdbc的小例子,用ojdbc6驅動連接數據庫沒有任何問題,可以查出數據,那么驅動包是沒有問題的。
        4、后來請教部門技術專家分析認為是jar包加載的問題,按照工程啟動時jar包的加載順序:jdk-tomcat-project,提供的解決辦法,將ojdbc6在jdk相關jar包目錄、tomcat 相關jar包目錄中都拷貝了ojdbc6驅動,啟動正常,問題解決。
        5、之后我試了一下,只有將ojdbc6包拷貝到jdk的jre的lib(jdk1.6.0_43\jre\lib)下才好用,但是在jdk中未發現其他類似jdbc包的痕跡,暫不清楚是那個文件引起的這個錯誤。
 
解決方法
  將ojdbc6包copy到jdk1.6.0_43\jre\lib或相關加載路徑下優先去加載驅動包,問題解決。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM