Java · Oracle

Mantener viva una conexión JDBC de Oracle

oracle linux support
El Cliente Oracle utiliza la funcionalidad TCP KeepAlive del Sistema Operativo (en mi caso Linux).

Para habilitar el uso de esta característica en el Cliente Oracle hay que especificar el parámetro ENABLE=BROKEN en la cláusula DESCRIPTION del descriptor de conexión. Por ejemplo:


jdbc:oracle:thin:@(DESCRIPTION=(ENABLE=BROKEN)(ADDRESS=(PROTOCOL=tcp)(PORT=1521)(HOST=myhost))(CONNECT_DATA=(SID=orcl)))

Seguir leyendo «Mantener viva una conexión JDBC de Oracle»

Servidores de Aplicaciones

Factoría de URLs en Tomcat

Tomcat
Hace algún tiempo me encontré con la necesidad de «simular» el funcionamiento de obtención de recursos de tipo URL mediante JNDI que proporciona WebShpere Application Server, pero en Tomcat.

En su día escribí una factoría para Tomcat pero, lamentablemente, perdí el código así que hoy me he puesto manos a la obra para reescribirla (ya que, realmente, no es nada complicado).

La definición de un recurso URL solamente requiere de un nombre, un nombre JNDI y la URL.

Aquí está disponible la factoría para todo aquel que la desee utilizar (código fuente incluido).

Los pasos a seguir para poder hacer uso de la misma son los siguientes:

  1. Asegúrate que la URLFactory está disponible para Tomcat:
    Pon el fichero tomcat-factory-url.jar en el directorio $CATALINA_HOME/lib.
  2. Declara tu recurso:
    Modifica el descriptor de despliegue de de tu aplicación web (/WEB-INF/web.xml) para definir el nombre JNDI bajo el que solicitarás las nuevas instancias de URL. El modo más sencillo de hacerlo es utilizar el elemento <resource-env-ref>, tal que así:

    <resource-env-ref>
    <description>
    Object factory for URL instances.
    </description>
    <resource-env-ref-name>
    url/MyURL
    </resource-env-ref-name>
    <resource-env-ref-type>
    java.net.URL
    </resource-env-ref-type>
    </resource-env-ref>
  3. Codifica tu aplicación para utilizar este recurso:
    Un uso típico de referencia de recurso de entorno sería algo así:

    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    URL url = (URL) envCtx.lookup("url/MyURL");
    writer.println(«url = » + url.toString());
  4. Configura la factoría de recursos de Tomcat:
    Edita el META-INF/context.xml de tu aplicación o el $CATALINA_HOME/conf/server.xml si quieres que el recurso esté disponible para todo el sistema:

    <Resource name="url/MyURL" auth="Container"
    type="java.net.URL"
    factory="org.eu.rubensa.tomcat.factory.URLFactory"
    url="http://blog.rubena.eu.org/" />

Algunos enlaces de interés
Apache Tomcat 6.0 JNDI Resources HOW-TO