|
Buscador
Secciones
Registro
¡Colabora!
Ganamos
Servicios
|
Inicio > Tutoriales > Lenguajes orientados a objeto > Java > Servidores de Aplicaciones Java > BEA WebLogic: Guía de Administración
|
| 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:
Drivers Soportados para Transaciones Distribuidas:
Configurar Drivers JDBCConfigurar Drivers JDBC para Transaciones Locales
Para configurar los drivers JDBC para transaciones locales, configuramos el Connection Pool JDBC de esta forma:
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:
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 JDBCUsando 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:
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:
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.
| Leer comentarios (26) | |
| Escribir comentario | |
| Puntuación: |
|
| Votar | |
| Recomendar este tutorial | |
| Estadísticas |
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