{"id":1606,"date":"2017-05-15T14:07:04","date_gmt":"2017-05-15T12:07:04","guid":{"rendered":"http:\/\/clemente.pamplona.name\/dba\/?p=1606"},"modified":"2017-05-15T14:56:41","modified_gmt":"2017-05-15T12:56:41","slug":"conexiones-jdbc-thin-a-una-base-de-datos-oracle","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/conexiones-jdbc-thin-a-una-base-de-datos-oracle\/","title":{"rendered":"Conexiones JDBC Thin a una base de datos Oracle"},"content":{"rendered":"<p>Hoy vamos a ver una entrada r\u00e1pida y \u00fatil sobre la manera de configurar los clientes JDBC para acceder a los motores de la base de datos. Tradicionalmente los desarrolladores e integradores Java son muy dados  a configurar los pooles de conexi\u00f3n  hardcodeando  los datos de la conexi\u00f3n en el fichero de propiedades de la misma de la manera <strong>IP:puerto:SID<\/strong><br \/>\nEsta codificaci\u00f3n pod\u00eda ser muy buena en los anales de la historia de Java, pero con la versi\u00f3n del jdbc del cliente  10.2.0.1 se introdujeron una serie de mejoras que, desgraciadamente no suelen ser aplicadas por los desarrolladores\/integradores.<\/p>\n<p>Veamos pues la maneras que hay de configurar el jdbc<\/p>\n<h1>Oracle JDBC Thin usando SID  <\/h1>\n<p>Desgraciadamente es la mas utilizada de todos,  en esta se fija  en cada fichero de pool de conexi\u00f3n tanto la Ip como el puerto como el SID de base de datos, lo que adem\u00e1s de hacer muy costoso el cambio de alguno de los tres elementos, imposibilita todas las funciones asociadas a los servicios de Oracle.<br \/>\n<code>jdbc:oracle:thin:@\/\/host:puerto:ORACLE_SID <\/code><br \/>\n<b>Ejemplo :<\/b><\/p>\n<pre> jdbc:oracle:thin:@\/\/192.168.73.6:1521:TEST<\/pre>\n<h1>Oracle JDBC Thin usando  Service Name: <\/h1>\n<p>Esta opci\u00f3n es similar a la anterior, solamente que se cambia el ORACLE_SID por el SERVICE_NAME, dista mucho de ser buena, pero al menos nos permite utilizar servicios.<br \/>\n<code>jdbc:oracle:thin:@ \/\/host:puerto:SERVICE_NAME <\/code><br \/>\n<b>Ejemplo :<\/b><\/p>\n<pre>jdbc:oracle:thin:@\/\/192.168.73.6:1521\/TEST<\/pre>\n<h1>Oracle JDBC Thin usando  a TNSName: <\/h1>\n<p>Este es el m\u00e9todo que deber\u00edamos de recomendar, puesto que mantiene centralizado en el TNSNAMES.ora la gesti\u00f3n de la notaci\u00f3n de las bases de datos Oracle<br \/>\n<code>jdbc:oracle:thin:@TNSName <\/code><br \/>\n<b>Ejemplo :<\/b><\/p>\n<pre>jdbc:oracle:thin:@TEST <\/pre>\n<p>Esta funcionalidad fue a\u00f1adida en la versi\u00f3n 10.2.0.1(lleva  disponible desde mediados del 2004) por lo que en un sistema bien mantenido no deber\u00edamos de tener  ning\u00fan problema la compatibilidad el driver jdbc de  Oracle que usemos  (al contrario deber\u00eda de ser un problema si usamos un driver mas antiguo de una 10.2.0.1) <\/p>\n<p>A la hora de utilizar el TNSNAMES, nos encontramos con que  el servidor de aplicaciones deber\u00e1 de conocer la ubicaci\u00f3n de este fichero. Para ello usamos la variable de entorno del sistema operativo que referencia a este fichero, la variable <\/i>TNS_ADMIN <\/i>.unido a la variable de entorno del sistema, el servidor de aplicaciones debe de contar con una propiedad espec\u00edfica para encontrarla  , esta propiedad es  <i>oracle.net.tns_admin<\/i>  que se le puede pasar en en arranque del java como   como   <b>java -Doracle.net.tns_admin=$TNS_ADMIN<\/b><\/p>\n<p>Mas informaci\u00f3n como siempre en las notas de soporte<\/p>\n<ul>\n<li>Can JDBC Thin Driver Connect Using Tns Entry in tnsnames.ora File (Doc ID 333686.1)\n<li>JDBC\/thin does not Currently Support the IFILE Clause Inside a TNSNAMES.ORA File (Doc ID 1270872.1)\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Hoy vamos a ver una entrada r\u00e1pida y \u00fatil sobre la manera de configurar los clientes JDBC para acceder a los motores de la base de datos. Tradicionalmente los desarrolladores e integradores Java son muy dados a configurar los pooles &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/conexiones-jdbc-thin-a-una-base-de-datos-oracle\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,60,9],"tags":[253,734,736],"class_list":["post-1606","post","type-post","status-publish","format-standard","hentry","category-11g","category-12c","category-dummie","tag-cliente","tag-jdbc","tag-tnsnames"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/comments?post=1606"}],"version-history":[{"count":16,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1606\/revisions"}],"predecessor-version":[{"id":1622,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1606\/revisions\/1622"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=1606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=1606"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=1606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}