Manejar Transaciones
Esta sección proporciona guías para configurar y manejar transaciones a través de la Consola de Administración. Para información sobre la configuración de los almacenes de conexiones JDBC para permitir que los drivers JDBC participen en las transaciones ditribuidas, puedes ver Manejar Conectividad JDBC.
Introducción
La Consola de Administración proporciona un interface para las herramientas que nos permiten configurar las características del Servidor WebLogic, incluyendo el API JavaTransaction (JTA).
El proceso de configuración implica especificar valores para atributos. Estros atributos definen varios aspectos del entorno de transaciones, incluyendo:
- Time-outs de transaciones y límites.
- Control de comportamiento de transaciones.
- Prefijo del fichero log de transaciones.
Antes de configurar nuestro entorno de transaciones, deberíamos familiarizarnos con los componentes J2EE que pueden participar en las transaciones, como EJBs, JDBC, y JMS.
- EJBs (Enterprise JavaBeans) usan JTA para soporte de transaciones. Varios descriptores de despliegue se relacionan con el manejo de transaciones. Para más información sobre programación con EJBs y JTA, podrás ver próximanente Programar WebLogic Enterprise JavaBeans.
- JDBC (Java Database Connectivity) proporciona interfaces estándar para acceder a sistemas de bases de datos relacionales desde Java. JTA proporciona soporte de transaciones sobre conexiones recuperadas usando un driver JDBC y la fuente de datos de la transación. Para más información podrás ver próximanente Programar WebLogic JDBC.
- JMS (Java Messaging Service) usa JTA para soportar transaciones entre múltiples fuentes de datos. WebLogic JMS es un controlador de recursos compatible XA. Para más información sobe programación de JMS y JTA, podrás ver próximamente Programar WebLogic JMS.
Configurar Transaciones
La Consola de Administración proporciona valores por defecto para todos los atributos de configuración JTA. Si especificamos un valor inválido para cualquier atributo de configuración, el Servidor WebLogic no arrancará.
Las selecciones de configuración para JTA son aplicables a nivel de dominio. Esto significa que los atributos de configuración se aplican a todos los servidores del dominio. La tareas de monitorizado y de log para JTA se realizan a nivel de servidor.
Una vez que hayamos configurado WebLogic JTA y cualquier transación particiante, el sistema puede realizar transaciones usando el API JTA y las extensiones WebLogic JTA.
Podemos configurar cualquier atributo de transación antes de ejecutar las aplicaciones (configuración estática) o, con una excepción, en el momento de ejecución de la aplicación (configuración dinámica). El atributo TransactionLogFilePrefix debe configurarse antes de ejecutar las aplicaciones.
Para configurar los atributos de transación, completamos el siguiente procedimiento:
- Arrancamos la Consola de Administración.
- Seleccionamos el nodo del dominio en el panel izquierdo. Por defecto se muestra la pestaña Configuration del dominio.
- Pulsamos sobre la pestaña JTA.
- Por cada atributo, especificamos un valor, o si está disponible, aceptamos el valor por defecto.
- Pulsamos el botón Apply para almacenar los nuevos valores de atributos.
- Nos aseguramos de que el atributo Transaction Log File Prefix está seleccionado cuando configuramos el servidor. Para más información sobre el atributo loggin, puedes ver la sección Monitorizar y hacer Logs de Transaciones.
La siguiente tabla describe brevemente los atributos de transaciones disponibles en el Servidor WebLogic:
| Atributo |
Descripción |
| Timeout Seconds |
El tiempo, en segundos, que una transación podría estar activa antes de que el sistema fuerce a terminarla. |
| Abandon Timeout Seconds |
El tiempo máximo, en segudos, que un coordinador de transación persiste en intentar completar una transación. |
Before Completion
Iteration Limit |
El número de retrollamadas beforeCompletion que se procesan antes de que el sistema fuerce su terminación |
| Max Transactions |
El número máximo de transaciones que podrían estar activas en un servidor particular en un momento dado. |
| Max Unique Name Statistics |
El número máximo de nombres de transaciones únicas que podrían ser seguridas por un servidor en un momento dado. |
| Forget Heuristics |
Un valor booleano especificando si el controlador de transaciones debería instruir a un recurso para que olvide cualquier transación con un salida heurística. |
Monitorizar y Hacer Logs de Transaciones
La Consola de Administración nos permite monitorizar las transaciones y especificar el prefijo del fichero de log de transaciones. Las tareas de monitorización y loggin se realizan a nivel de servidor. Las estadísticas de transaciones se muestran para un servidor específico y cada servidor tiene un fichero log de transaciones.
Para mostrar las estadísticas de transaciones y configuar el prefijo para los ficheros de log de transaciones, completamos el siguiente procedimiento:
- Arrancamos la Consola de Administración.
- Pulsamos en el nodo server en el panel izquierdo.
- Seleccionamos un servidor específico en el panel izquierdo.
- Pulsamos en la pestaña Monitoring.
- Pulsamos la pestaña JTA. Los totales para las estadísticas de transaciones se muestran en el diálogo JTA.
(También podemos pulsar los enlaces de texto de monitorización para monitorizar las transaciones por recurso, o por nombre, o para monitorizar todas las transaciones activas.)
- Pulsamos la pestaña Logging.
- Pulsamos la pestaña JTA.
- Introducimos un prefijo para el fichero log de transaciones y pulsamos sobre Apply para grabar la selección de atributos.
Mover un Servidor a otra Máquina
Cuando un servidor de aplicaciones se mueve a otra máquina, debe poder localizar los ficheros de log de transaciones en el nuevo disco. Por esta razón, recomendamos mover este fichero a la nueva máquina antes de arrancar el servidor allí. Haciendo esto podemos asegurarnos de que recovery funciona correctamente. Si el path es diferente en la nueva máquina, actualizamos el atributo TransactionLogFilePrefix con el nuevo path antes de arrancar el servidor.
Cuando migramos logs de transaciones después de un fallo de servidor, hacemos que todos los fichero de log de transaciones estén disponibles en la nueva máquina antes de arrancar el servidor allí. Podemo conseguir esto almacenando los fichero de log de transaciones en un disco de doble puerto disponible en ámbas máquinas. Como el caso de una migración planeada, actualizamos el atributo TransactionLogFilePrefix con el nuevo path antes de arrancar el servidor si el path es diferente en la nueva máquina. De otro modo, las transaciones que estuvieran en el proceso de ser enviadas en el momento del crash podrían no resolverse correctamente, resultando en una inconsistencia de datos.