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 |
|
|
|
| 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 |
|
La Data Source y el Connection Pool asignados a la misma fuente. |
| 2 | Data Source B con
Connection Pool B |
|
La Data Source y el Connection asignado a las fuentes server/cluster relacionados. |
| 3 | Data Source C con
Connection Pool C |
- Y - |
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:
- Arrancamos la Consola de Administraci�n.
- Localizamos el nodo Services en el panel izquierdo, luego expandimos el nodo JDBC.
- Seleccionamos la pesta�a espec�fica del componente que queremos configurar o manejar � Connection Pools, MultiPools, Data Source, o Tx Data Source.
- 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.