2011-10-03 16 views
7

Hay 2 sintaxis de URL, sintaxis antigua que solo funcionará con SID y la nueva con el nombre de servicio de Oracle.
sintaxis Antiguo¿Cuál es la sintaxis correcta de JDBC URL si se usan los monederos de Oracle?

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

nueva sintaxis

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

Qué es correcta sintaxis de URL JDBC si se utilizan carteras de Oracle?
Según this article siguiente sintaxis URL debe utilizarse:

jdbc:oracle:thin:/@db_alias 

Pero como puede ver la siguiente URL funciona demasiado:

jdbc:oracle:thin:@db_alias 

¿Cuál de estas sintaxis son correctas?

Respuesta

19

Cuando está utilizando Oracle Wallet con una cadena JDBC, ambas sintaxis están permitidas, siempre y cuando su "db_alias" esté configurado en su tienda Wallet obviamente.

Ahora, por lo que el uso de SQL * Plus con Oracle Wallet, el único formato permitido con Oracle Wallet es:

/@db_alias 

Por cierto, que en el artículo al que hizo referencia (y others) especifica que sólo se puede conectar usando JDBC si usa los controladores OCI, y no el Thin Client. Esto es/era típicamente porque Java no tenía conocimiento de los archivos de Oracle TNS y SQLNET. Esto de hecho no es verdad; Usted puede conectarse utilizando el controlador delgado JDBC con los últimos controladores JDBC de Oracle Client &, pero solo requiere cierta configuración. Consulte http://tech.shopzilla.com/2011/09/oracle-wallet-with-thin-driver-with-connection-pool-with-database-timeouts/ para obtener más información al respecto y a continuación un breve resumen.

mediante Oracle Monedero con JDBC Delgado Conductor

  1. Configurar Oracle Monedero as usual (que viene con la base de datos de clientes de Oracle), creando las entradas apropiadas en sus archivos tnsnames.ora y sqlnet.ora, así como la entrada de credencial en su billetera
  2. Agregue los siguientes JAR a su classpath de Java.Usted debe obtener estos datos del cliente de Oracle 11g, y se les puede encontrar en los directorios o "JDBC" y/o "JLIB" de que el cliente de instalación se
    • Oracle JDBC Driver - ojdbc6.jar
    • Oracle Monedero - oraclepki.jar
    • Oracle Seguridad Certificados - osdt_cert.jar
    • Oracle Seguridad Core - osdt_core.jar
  3. iniciar la aplicación Java con las siguientes propiedades del sistema, señalando sus respectivos TNS y la cartera directorios:
    • -Doracle.net.tns_admin=C:\myTNSdir
    • -Doracle.net.wallet_location=C:\mywalletdir
  4. entonces se puede utilizar una cadena de conexión JDBC delgada en su aplicación, así: jdbc:oracle:thin:/@MY_WALLET_DB_ENTRY
+1

bien wokred sin ningún problema. Gracias David! –

+0

Estoy tratando de lograr lo mismo desde la aplicación Hibernate, que debería funcionar. Pero obtengo oracle.net.ns.NetException: SO Exception se generó \t en oracle.net.resolver.AddrResolution.resolveAddrTree (AddrResolution.java:629) – Betta

Cuestiones relacionadas