Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
-Tutoriales

BEA WebLogic: Guía de Administración


Manejo de Conectividad JDBC

. Introducción al Control JDBC

La Consola de Administración proporciona un interface a las herramientas que nos permiten configurar y manejar características del Servidor WebLogic, incluyendo JDBC (conectividad de bases de datos con Java). Para la mayoría de las funciones administrativas de JDBC, que incluyen creacción, manejo y monitorización de conectividad, los administradores de sistemas usan la Consola Administrativa o el interface de la línea de comandos. Los desarrolladores de aplicaciones podrían querer usar el API JDBC.

Las tareas realizadas más frecuentemente para configurar y manejar la conectividad incluyen:

  • Definir los atributos que gobiernan la conectividad JDBC entre el Servidor WebLogic y nuestro sistema de control de la base de datos.
  • Manejar la conectividad establecida.
  • Monitorizar la conectividad establecida.

. Sobre la Consola Administrativa

Nuestra forma principal de configurar y manejar la conectividad JDBC es a través de la Consola de Administración. Usando la Consolsa de Administración, configuramos la conectividad estáticamente antes de arrancar el servidor. Para más información, puedes ver Arrancar la Consola de Administración.

Además de seleccionar la conectividad, la Consola de Administración nos permite manejar y monitorizar la conectivada establecida.

. Sobre el Interface de la Línea de Comandos

El interface de la línea de comandos proporciona una forma de crear y manejar dinámicamente Almacenes de Conexiones. Puedes encontrar más información sobre cómo usar el interface de la línea de comandos en Referencia de Interface de la Línea de Comandos para el Servidor WebLogic.

. Sobre la Conectividad JDBC

Para información sobre la configuración y el control de la conectividad programáticamente, pudesir a Programas WebLogic JDBC.

. Información Relacionada

Los drivers JDBC, usados localmente y en transaciones distribuidas, interfieren con muchos componentes del Servidor WebLogic y la información aparece en varios documentos. Por ejemplo, la información sobre los drivers JDBC está incluida en los conjuntos de documentación para JDBC, JTA y jDrivers WebLogic.

. Componentes JDBC - Almacenes de Conexiones, Fuentes de Datos y MultiPools

. Almacenes de Conexiones

Un Almacen de Conexiones contiene grupos nombrados de conexiones JDBC que son creadas cuando se registra el Almacen de Conexiones, normalmente cuando arranca el Servidor WebLogic. Nuestra aplicación toma una conexión del almacen, la usa, y luego la devuelve al almacen cerrándola.

Todas las configuraciones que hacemos en la Consola de Administración son estáticas, es decir, todas se hacen antes de que arranque el Servidor WebLogic. Podemos crear Almacenes de Conexiones dinámicamente--después de que el servidor arranque--usando la línea de comandos o programáticamente, usando el API (Programar WebLogic JDBC).

. MultiPools

Usados en transaciones locales (no distribuidas) o en configuraciones de un sólo Servidor WebLogic, los MultiPools ayudan en:

  • El balance de carga-- los almacenes se añaden sin ningún orden adjunto y son accedidos usando un esquema circular. Cuando se necesitan conexiones, se selecciona el Almacen de Conexiones que hay después del último accedido.
  • Alta disponibilidad-- configurar los almacenes como una lista ordenada determina el orden en el que ocurren los intercambios de conexiones. Por ejemplo, primero se selecciona el primer almacen de la lista, luego el segundo, etc.

Todas las conexiones de un Almacen de Conexiones particular son idénticas, es decir, están adjuntas a una misma base de datos. Sin embargo, los almacenes de conexiones dentro de un MultiPool podrían estar asociados con diferentes DBMS. Puedes leer más sobre la programación de MultiPools en Programar WebLogic JDBC.

. Fuentes de Datos

Un objeto Data Source permite a los clientes JDBC obtener una conexión DBMS. Cada objeto Data Source apunta a un Almacen de Conexiones o un MultiPool. Los objetos Data Source pueden definirse con o sin JTA, lo que proporciona soporte para transaciones distribuidas. Puedes leer más sobre la programación de Fuentes de Datos en Programar WebLogic JDBC.

Nota:
Los Data Sources Tx no pueden apuntar a MultiPools, sólo a Connection Pools, porque los MultiPools no están soportados en las transaciones distribuidas.

. Guías de Configuración JDBC, para Almacenes de Conexiones, Fuentes de Datos y MultiPools

. Introducción a la Configuración JDBC

Para Configurar la conectividad JDBCm configuramos Connection Pools, objetos Data Source (siempre recomendados, pero opcionales en algunos casos) y MultiPools (opcionales) para definir atributos en la Consola de Administración y, para definir almacenes de conexiones dinámicamente, en la línea de comandos. Hay tres tipos de transaciones:

  • Localtransación no distribuida.
  • Distribuida con Driver XA negociación de dos fases.
  • Distribuida sin Driver XA controlador de un sólo recurso y un sólo ejemplar de base de datos.

La siguiente tabla describe cómo usar estos objetos en transaciones locales y distribuidas:

Decripción/
Objeto
Transaciones Locales Transaciones Distribuidas
con Driver XA
Transaciones Distribuidas
sin Driver XA
JDBC driver
  • WebLogic jDriver para Oracle, Microsoft SQL Server, e Informix.
  • Drivers de terceras partes compatibles.
  • jDriver WebLogic para Oracle/XA.
  • Drivers de terceras partes compatibles.
  • jDriver WebLogic para Oracle, Microsoft SQL Server, e Informix.
  • Drivers de terceras partes compatibles.
Data Source Objeto Data Source recomendado. (Si no hay Data Source, usar el API JDBC). Tx Data Source requerido. Tx Data Source requerido.

Seleccionamos two-phase commit=true si hay más de un recurso.

Connection Pool Requiere un objeto Data Source cuando se configura en la Consola de Administración. Requiere TX Data Source. Requiere TX Data Source.
MultiPool Se requieren Connection Pool y Data Source

Sólo se usa en configuraciones de un sólo servidor.

No soportado en transaciones distribuidas. No soportado en transaciones distribuidas.

Nota:
Las transaciones distribuidas usan el jDriver WebLogic para Oracle/XA, el modo de transación para el jDriver WebLogic para Oracle.

Drivers Soportados para Transaciones Locales:

  • Los drivers JDBC 2.0 que soportan el JDBC Core 2.0 API (java.sql), incluyendo los jDrivers de WebLogic para Oracle, Microsoft SQL Server, e Informix. El API nos permite crear objetos de clases necesarios para establecer una conexión con una fuente de datos, enviar consultas y sentencias de actualización a la fuente de datos, y procesar los resultados.

Drivers Soportados para Transaciones Distribuidas:

  • Cualqier driver JDBC 2.0 que soporte los interfaces estándar de transaciones distribuidas JDBC 2.0 (javax.sql.XADataSource, javax.sql.XAConnection, javax.transaction.xa.XAResource), incluyendo el jDriver de WebLogic para Oracle/XA.
  • Cualquier driver JDBC que soporta el JDBC 2.0 Core API pero no soporta los interfaces estándar de transaciones distribuidas JDBC 2.0. Sólo un driver JDBC no-XA en un momento dado puede participar en una transación distribuida.

. Configurar Drivers JDBC

Configurar Drivers JDBC para Transaciones Locales

Para configurar los drivers JDBC para transaciones locales, configuramos el Connection Pool JDBC de esta forma:

  • Especificamos el atributo Driver Classname como el nombre de la clase que soporta el interface java.sql.Driver.
  • Especificamos las propiedades de datos. Estas propiedades se pasan al driver específico como propiedades del driver.

La siguiente tabla muestra un ejemplo de configuración de Connection Pool usando el jDriver de WebLogic para Oracle:

Nombre de Atributo Valor del Atributo
Name myConnectionPool
Targets myserver
DriverClassname weblogic.jdbc.oci.Driver
Initial Capacity 0
MaxCapacity 5
CapacityIncrement 1
Properties user=scott;server=localdb

La siguiente tabla muestra un ejemplo de configuración de Data Source usando el jDriver de WebLogic para Oracle:

Nombre de Atributo Valor del Atributo
Name myDataSource
Targets myserver
JNDIName myconnection
PoolName myConnectionPool

La siguiente tabla muestra un ejemplo de configuración de Connection Pool usando el jDriver de WebLogic para Microsoft SQL Server:

Nombre de Atributo Valor del Atributo
Name myConnectionPool
Targets myserver
DriverClassname weblogic.jdbc.mssqlsvr4.Driver
Initial Capacity 0
MaxCapacity 5
CapacityIncrement 1
Properties
user=sa;password=secret;db=pubs;
server=myHost:1433;appname=MyApplication;
hostn ame=myhostName

La siguiente tabla muestra un ejemplo de configuración de Data Source usando el jDriver de WebLogic para Microsoft SQL Server:

Nombre de Atributo Valor del Atributo
Name myDataSource
Targets myserver
JNDIName myconnection
PoolName myConnectionPool

La siguiente tabla muestra un ejemplo de configuración de Connection Pool usando el jDriver de WebLogic para Informix:

Nombre de Atributo Valor del Atributo
Name myConnectionPool
Targets myserver
DriverClassname weblogic.jdbc.informix4.Driver
Initial Capacity 0
MaxCapacity 5
CapacityIncrement 1
Properties
user=informix;password=secret;
server=myDBHost;port=1493;
db=myDB

La siguiente tabla muestra un ejemplo de configuración de Data Source usando el jDriver de WebLogic para Informix:

Nombre de Atributo Valor del Atributo
Name myDataSource
Targets myserver
JNDIName myconnection
PoolName myConnectionPool

Configuriar los Drivers XA JDBC para Transaciones Distribuidas

Para permitir que los drivers XA JDBC participen en transaciones distribuidas, configuramos el JDBC Connection Pool de esta forma:

  • Especificamos el atributo Driver Classname como el nombre de la clase que soporta el interface javax.sql.XADataSource interface.
  • Nos aseguramos de que se han especificado las propiedades de la base de datos. Estas propiedades se pasan al XADataSource especificado como propiedades de la fuente de datos.

Los siguientes atributos son un ejemplo de una configuración JDBC Connection Pool usando el jDriver de WebLogic para Oracle en modo XA:

Nombre de Atributo Valor del Atributo
Name fundsXferAppPool
Targets myserver
DriverClassname weblogic.jdbc.oci.xa.XADataSource
Initial Capacity 0
MaxCapacity 5
CapacityIncrement 1
Properties user=scott;password=tiger;server=localdb

Los siguientes atributos son un ejemplo de una configuración Tx Data Source usando el jDriver de WebLogic para Oracle en modo XA:

Nombre de Atributo Valor del Atributo
Name fundsXferData Source
Targets myserver
JNDIName myapp.fundsXfer
PoolName fundsXferAppPool

También podemos configurar el JDBC Connection Pool para usar un driver de terceras partes en modo XA. En dichos casos, las propiedades de la fuente de datos se seleccionan mediante reflection sobre el ejemplar XADataSource usando el patrón de diseño de los JavaBeans. En otras palabras, para la propiedad abc, el ejemplar XADataSource debe soportar los métodos get y set con los nombres getAbc y setAbc, respectivamente.

Los siguientes atributos son un ejemplo de una configuración JDBC Connection Pool usando el Driver Thin para Oracle:

Nombre de Atributo Valor del Atributo
Name jtaXAPool
Targets myserver,server1
DriverClassname oracle.jdbc.xa.client.OracleXADataSource
Initial Capacity 1
MaxCapacity 20
CapacityIncrement 2
Properties
user=scott;password=tiger;
url=jdbc:oracle:thin:@baybridge:1521:bay817

Los siguientes atributos son un ejemplo de una configuración Tx Data Source usando el Driver Thin para Oracle:

Nombre de Atributo Valor del Atributo
Name jtaXADS
Targets myserver,server1
JNDIName jtaXADS
PoolName jtaXAPool

Configuramos el JDBC Connection Pool para usarlo con un driver Cloudscape de esta forma:

Nombre de Atributo Valor del Atributo
Name jtaXAPool
Targets myserver,server1
DriverClassname COM.cloudscape.core.XADataSource
Initial Capacity 1
MaxCapacity 10
CapacityIncrement 2
Properties databaseName=CloudscapeDB
SupportsLocalTransaction true

Configuramos el Tx Data Source para usarlo con un driver Cloudscape de esta forma:

Nombre de Atributo Valor del Atributo
Name jtaZADS
Targets myserver,myserver1
JNDIName JTAXADS
PoolName jtaXAPool

WebLogic jDriver para Oracle/XA Data Source Properties

La siguiente tabla lista las propiedades de fuente de datos soportadas por WebLogic jDriver para Oracle. La columna JDBC 2.0 indica si una propiedad específica de fuente de datos es una propiedad estándar JDBC 2.0 (Y) o un extensión del Servidor WebLogic para JDBC (N).

La columna Opcional indica si una propiedad de fuente de datos particular es opcional o no. Las propiedades marcadas con Y* son mapeadas a sus correspondientes campos en el string xa_open de Oracle (valor de la propiedad openString). Si no se especifican, sus valores por defecto se toman de la propiedad openString. Si se especifican, sus valores por defecto deberían corresponder con los especificados en la propiedades openString.

Si las propiedades no corresponden, se lanza una SQLException cuando intentamos una conexión XA.

Las propiedades obligatorias están marcadas con N* y también son mapeadas a sus correspondientes campos del string xa-open de Oracle. Especificamos estas propiedades cuando las especifica el string xa-open de Oracle. Si no se especifican, o se especifican pero no corresponden, se lanzará una SQLException cuando intentemos una conexión XA.

Los nombres de propiedades marcados con ** son soportados, por no usados, por el Servidor WebLogic.

Nombre de Propiedad Tipo Descripción JDBC 2.0 Opcional Valor por
Defecto
databaseName** String Nombre de una base de datos particular en el servidor Y Y Ninguno
dataSourceName String Un nombre de fuente de datos; usado para nombrar un XADataSource subyacente. Y Y Nombre del Connection Pool
description String Descripción de esta fuente de datos. Y Y Ninguno
networkProtocol** String Protocolo de red usado para comunicar con el servidor. Y Y Ninguno
password String Una password de base de datos. Y N* Ninguno
portNumber** Int Número de puerto en el que el servidor escucha peticiones. Y Y Ninguno
roleName** String El nombre del rol SQL inicial Y Y Ninguno
serverName String Nombre del Servidor de bases de datos. Y Y* Ninguno
user String Nombre de la cuenta de usuario. Y N* Ninguno
openString String String XA abierto de Oracle. N Y Ninguno
oracleXATrace String Indica si está activa la salida XA tracing. Si está activa (true), se situará un fichero con el formato xa_poolnamedate.trc en el directorio donde se arrancó el servidor. N Y true

La siguiente tabla lista el mapeo entre los campos string xa_open de Oracle y las propiedades de la fuente de datos:

Nombre de campo String xa_open Oracle Atributo de fuente de datos JDBC 2.0 Opcional
acc user, password N
sqlnet ServerName

 

Observa que también los usuarios podrían especificar Threads=true en un string xa_open de Oracle. Para una completa descricpión de los campos xa_open puedes consular la documentación de Oracle.

Configurar Drivers JDBC No-XA para Transaciones Distribuidas

Cuando configuramos el JDBC Connection Pool para permitir que los drivers JDBC no-XA participen con otros recursos en transaciones distribuidas, especificamos el atributo Enable Two-Phase Commit para el JDBC Tx Data Source. (Este parámetro es ignorado por recursos que soportan el interface XAResource.) Observa que sólo un almacén de conexiones no-XA puede participar en una transación distribuida.

No-XA Driver/Single Resource

Si estámos usando un sólo driver no-XA y es el único recurso de la transación, dejamos la opción Enable Two-Phase Commit sin marcar en la Consola (aceptamos el valor por defecto enableTwoPhaseCommit = false). En este caso, el Transaction Manager realiza una optimización de una fase.

No-XA Driver/Multiple Resources

Si estámos usando un driver JDBC no-XA con otros recursos XA, marcamos Enable Two-Phase Commit en la Consola (enableTwoPhaseCommit = true).

Cuando enableTwoPhaseCommit se selecciona a true, los recursos JDBC no-XA siempre devuelven XA-OK durante la llamada al método XAResource.prepare(). El recurso intenta negociar o volver a su transación local en respuesta a las subsecuentes llamadas a XAResource.commit() o XAResource.rollback(). Si la negociación o el retorno falla, resulta un error heurísitico. Los datos de la aplicación se podrían quedar en un estado inconsistente como resultado de un fallo heurístico.

Cuando Enable Two-Phase Commit no se selecciona en la Consola (enableTwoPhaseCommit=false), el recurso JDBC no-XA hace que XAResource.prepare() falle. Este mecanismo asegura que sólo hay un participante en la transación, ya que commit() lanza una SystemException en este caso.

Cuando sólo hay un recurso participando en una transación, la única fase de optimización pasa de XAResource.prepare(), y la transación se negocia con éxito en la mayoría de los ejemplares.

Aquí tenemos la configuración de los atributos para un ejemplo de JDBC Connection Pool usando un driver JDBC no-XA:

Nombre de Atributo Valor del Atributo
Name fundsXferAppPool
Targets myserver
DriverClassname weblogic.jdbc.oci.Driver
Initial Capacity 0
MaxCapacity 5
CapacityIncrement 1
Properties jdbc:weblogic:oracle

Aquí tenemos la configuración de los atributos para un ejemplo de Tx Data Source usando un driver JDBC no-XA:

Nombre de Atributo Valor del Atributo
Name fundsXferDataSource
Targets myserver,server1
JNDIName myapp.fundsXfer
PoolName fundsXferAppPool
EnableTwoPhaseCommit true

. Seleccionar y Manejar Almacenes de Conexiones, Fuentes de Datos y MultiPools

. Configuración y Asignación JDBC

Usando las Consola de Adminstración, podemos configurar la conectividad estáticamente especificando atributos y propiedades de bases de datos para los componentes JDBC —Connection Pools, Data Sources, y MultiPools.

Los Data Sources están asociados con los Connection Pools o MultiPools ("pool")—toda Data Source está comunmente asociado con un almacen específico. La Data Source y el almacen son asignados a la misma fuente—al mismo servidor o server/cluster relacionado. No podemos asignar una Data Source a un servidor, y luego el Connection Pool a otro. En la siguiente tabla encontraremos más información:

Escenario
Nº:
Asociación... Asigna... Descripción
Fuente...
1 Data Source A con
Connection Pool A
  1. La Data Source A para el servidor controlado 1, y
  2. El Connection Pool para el servidor controlado 1
La Data Source y el Connection Pool asignados a la misma fuente.
2 Data Source B con
Connection Pool B
  • La Data Source B al Cluster X, entonces
  • El Connection Pool B al servidor Controlado 2 en el Cluster X.
La Data Source y el Connection asignado a las fuentes server/cluster relacionados.
3 Data Source C con
Connection Pool C
  • La Data Source A y el Connection Pool A al servidor controlado 1
  • - Y -

  • La Data Source al Cluster X; leugo asignamos el Connection Pool A al servidor controlad 2 en el cluster X.
La Data Source y el Connection Pool asignados como una unidad a dos fuentes diferentes.

(Podemos asignar más de una Data Source a un almacen, pero no haa un propósito práctico para esto). Podemos asignar estas combinaciones de Data Source/pool a más de un servidor o cluster, pero deben asignarse combinadas. Por ejemplo, no podemos asignar un Data Source a un Servidor Controlado A si está asociado a un Connection Pool que está asignado sólo a un Servidor B.

Podemos configurar dinámicamente los Connection Pools (después de arrancar el servidor) usando el interface de la línea de comandos. También podemos configurarlos programáticamente usando el API.

Configuraciones JDBC para Servidores o Clusters

Una vez que hemos configurado y asociado la Data Source y el Connection Pool (o MultiPool), entonces asignamos cada objeto al mismo servidor o servidor/cluster. Aquí podemos ver algunos escenarios comunes:

  • En un cluster, asignamos la Data Source al cluster, y asignamos el Connection Pool asociado a cada servidor controlador en el cluster.
  • En una configuración de un sólo servidor, asignamos cada Data Source y su Connection Pool asociado al servidor.
  • Si estámos usando un MultiPool, asignamos los Connection Pools al MultiPool; luego asignamos la Data Source a todos los Connection Pools y el MultiPool al servidor.

Configurar la Conectividad JDBC Usando la Consola de Administración

La Consola de Administración nos permite configurar, manejar y monitorizar la conectividad JDBC. Para mostrar las pestañas que usaremos para realizar estas tareas, completamos el siguiente procedimiento:

  1. Arrancamos la Consola de Administración.
  2. Localizamos el nodo Services en el panel izquierdo, luego expandimos el nodo JDBC.
  3. Seleccionamos la pestaña específica del componente que queremos configurar o manejar — Connection Pools, MultiPools, Data Source, o Tx Data Source.
  4. Seguimos las instrucciones de la Ayuda en Línea...

Configurar la Conectividad JDBC Usando el Interface de la Línea de Comandos

Puedes encontrar más información sobre cómo usar el interface de la línea de comandos en Referencia de Interface de la Línea de Comandos para el Servidor WebLogic.

 
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network