2011-10-03 10 views
7

Istnieją dwie składnie URL, stara składnia, która będzie działać tylko z SID, a nowa z nazwą usługi Oracle.
Old składniaJaka jest prawidłowa składnia adresu JDBC, jeśli używane są portfele Oracle?

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

Nowa składnia

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

Jaki jest poprawny adres URL JDBC składnia jeśli portfele Oracle są wykorzystywane?
Według this article następującą składnię URL należy stosować:

jdbc:oracle:thin:/@db_alias 

Ale jak widzę następujący adres URL działa zbyt:

jdbc:oracle:thin:@db_alias 

Które z tych składni są prawidłowe?

Odpowiedz

19

Podczas korzystania z Portfela Oracle z ciągiem JDBC, obie składnie są dozwolone, o ile oczywiście "db_alias" jest skonfigurowany w Twoim sklepie w Portfelu.

Teraz, o ile za pomocą SQL * Plus z Oracle Portfel, jedyny format dozwolony z Oracle Portfel jest:

/@db_alias 

Nawiasem mówiąc, że artykuł, który odwołuje się (i others) określa można podłączyć tylko przy użyciu JDBC, jeśli używasz sterowników OCI, a nie cienkiego klienta. Jest to/było zazwyczaj spowodowane tym, że Java nie miała wiedzy o plikach TNS i SQLNET Oracle. To w rzeczywistości nie jest prawdą; możesz można połączyć za pomocą cienkiego sterownika JDBC z najnowszymi sterownikami Oracle Client Client & JDBC, ale wymaga to tylko trochę konfiguracji. Zobacz http://tech.shopzilla.com/2011/09/oracle-wallet-with-thin-driver-with-connection-pool-with-database-timeouts/, aby uzyskać informacje na ten temat, a poniżej krótkie podsumowanie.

Korzystanie z JDBC Oracle Portfel Cienka Sterownik

  1. Konfiguracja Oracle Wallet as usual (który pochodzi z bazy danych Oracle Client), tworząc odpowiednie wpisy w TNSNAMES.ORA i sqlnet.ora plików, jak również wpis poświadczenia w portfelu
  2. Dodaj następujące pliki JAR do ścieżki klas Java.Powinieneś dostać te z 11g Oracle Client, i można je znaleźć w "JDBC" i/lub "jlib" katalogów gdzie zainstalować klient jest
    • Oracle JDBC Driver - ojdbc6.jar
    • Oracle Wallet - oraclepki.jar
    • Oracle Bezpieczeństwo Certs - osdt_cert.jar
    • Oracle Bezpieczeństwo Rdzeń - osdt_core.jar
  3. Uruchom aplikację Java z następujących właściwości systemu, wskazując na waszych TNS i portfel katalogi:
    • -Doracle.net.tns_admin=C:\myTNSdir
    • -Doracle.net.wallet_location=C:\mywalletdir
  4. Następnie można użyć cienkiej ciąg połączenia JDBC w aplikacji tak: jdbc:oracle:thin:/@MY_WALLET_DB_ENTRY
+1

Wokred dobrze bez żadnych problemów. Dzięki David! –

+0

Próbuję osiągnąć to samo z aplikacji hibernacji, która powinna działać. Ale otrzymuję Oracle.net.ns.NetException: Wyjątek SO został wygenerowany \t w oracle.net.resolver.AddrResolution.resolveAddrTree (AddrResolution.java:629) – Betta

Powiązane problemy