2011-10-03 12 views
7

2つのURL構文があります。古い構文はSIDでのみ機能し、新しい構文はOracleサービス名で使用します。
旧構文Oracle Walletが使用されている場合、正しいJDBC URL構文は何ですか?

jdbc:oracle:thin:@[HOST][:PORT]:SID 

新しい構文

jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE 

Oracleウォレットがを使用している場合は、正しいJDBC URL構文は何ですか? this article次のURL構文によると
を使用する必要があります。

jdbc:oracle:thin:/@db_alias 

しかし、私は、次のURLがあまりにも作品見ることができるようにこれらの構文の

jdbc:oracle:thin:@db_alias 

どちらが正しいですか?

答えて

19

JDBC文字列でOracle Walletを使用している場合、「db_alias」がWalletストアに明示的に設定されている限り、両方の構文が使用できます。

今、限りSQL *を使用するなど、プラスのOracleウォレットは、Oracleの財布で許される唯一の形式は次のとおりです。ところで

/@db_alias 

、その参照先の記事(およびothersは)あなただけ接続することができますを指定しますThinクライアントではなくOCIドライバを使用する場合はJDBCを使用します。これは通常、JavaはOracle TNSおよびSQLNETファイルを認識していないためです。実際にはそうではありません。 は、最新のOracle Client & JDBCドライバでJDBCシンドライバを使用して接続しますが、設定が必要です。その情報については、http://tech.shopzilla.com/2011/09/oracle-wallet-with-thin-driver-with-connection-pool-with-database-timeouts/を参照してください。 JDBCシン・ドライバを使用したOracleウォレットを使用して

  1. 設定オラクルあなたのtnsnames.oraとsqlnet.oraファイルに適切なエントリを作成し、(Oracleデータベース・クライアントが付属しています)だけでなく、財布as usualあなたの財布の資格情報の入力
  2. Javaクラスパスに次のJARを追加します。あなたは、Oracle 11gのクライアントからこれらを取得する必要があります、そして、彼らは、クライアントがインストールところの「JDBC」および/または「jlibに」ディレクトリで見つけることができ
    • のOracle JDBCドライバである - ojdbc6.jar
    • たOracle Wallet - oraclepki.jar
    • Oracleセキュリティサート - osdt_cert.jar
    • Oracleセキュリティコア - osdt_core.jar
  3. を指し、以下のシステムプロパティを使用してJavaアプリケーションを起動しますあなたのそれぞれのTNSと財布のディレクトリ:
    • -Doracle.net.tns_admin=C:\myTNSdir
    • -Doracle.net.wallet_location=C:\mywalletdir
  4. は、その後、あなたはそのようなあなたのアプリケーションに薄いJDBC接続文字列を使用することができます。jdbc:oracle:thin:/@MY_WALLET_DB_ENTRY
+1

Wokred罰金を何の問題もなく。ダビッドありがとう! –

+0

私は動作するはずの休止状態のアプリケーションから同じことを達成しようとしています。しかし、oracle.net.ns.NetExceptionが発生しています.Oracle.net.resolver.AddrResolution.resolveAddrTree(AddrResolution.java:629)で \tが生成されました。 – Betta

関連する問題