Enfoques de la coordinación del acceso a recursos capaces de confirmación de una fase y de confirmación de dos fases en la misma transacción

El soporte de último participante permite utilizar un solo recurso con capacidad de compromiso de una fase con cualquier número de recursos con capacidad de compromiso de dos fases en la misma transacción global. Puede tener varias interacciones que implican el recurso de confirmación de una fase en la misma transacción, pero sólo puede intervenir un recurso de este estilo.

En la confirmación de transacción, primero se preparan los recursos de confirmación de dos fases utilizando el protocolo de confirmación de dos fases y, si éste es satisfactorio, se llama al recurso de confirmación de una fase para confirmarlo. A continuación, se confirman o retrotraen los recursos de confirmación de dos fases, según la respuesta del recurso de confirmación de una fase.

Nota: Si la transacción global se ha distribuido en varios servidores de aplicaciones que se ejecutan todos ellos en WebSphere Application Server versión 6.1 o posterior, puede beneficiarse del soporte de último participante para coordinar un recurso con capacidad de confirmación de una fase y cualquier número de recursos con capacidad de confirmación de dos fases en la misma transacción, en un número limitado de escenarios.
  • El escenario principal es aquel en que se accede al proveedor del recurso de una fase en el proceso del servidor de aplicaciones (el servidor "raíz de transacción") en el que se inicia la transacción.

    En este escenario, el soporte de último participante puede coordinar un recurso con capacidad de confirmación de una fase y cualquier número de recursos con capacidad de confirmación de dos fases en la misma transacción.

  • Si se accede al proveedor de recursos de confirmación de una fase en un servidor de aplicaciones diferente (un servidor "de transacciones subordinado") al servidor desde el que se ha iniciado la transacción. Por ejemplo, como resultado de invocar una transacción en una interfaz EJB remota donde la implementación del EJB accede a un proveedor de recursos de confirmación de una fase.

    En este escenario, generalmente la transacción no se puede confirmar. Para poder confirmar (como parte de una transacción global) un recurso de confirmación de una fase listado en un servidor de transacciones subordinado, el servicio de transacciones debe delegar la responsabilidad de la coordinación del servidor raíz al servidor subordinado de transacciones. Esto solamente se produce si no se han registrado otros recursos con el servidor raíz de transacciones.

El soporte de último participante presenta un riesgo mayor de obtener un resultado heurístico para la transacción. Es decir el gestor de la transacción no puede estar seguro de que se han completado todos los recursos en la misma dirección (ya sean comprometidos o retrotraídos). Por este motivo, para habilitar una aplicación para que coordine el acceso a recursos con capacidad de una fase y dos fases en la misma transacción, debe configurar la aplicación de modo que acepte el riesgo heurístico, es decir, el riesgo mayor de obtener un resultado heurístico.

Se producirá un resultado heurístico si el servicio de transacción (JTS) no recibe una respuesta del flujo de confirmación de una fase en el recurso de confirmación de dos fases. En esta situación, el servicio de transacciones no puede determinar si los cambios del recurso de confirmación de una fase se han comprometido o retrotraído, por lo que no puede manejar de forma fiable el resultado correcto de la transacción global en los otros recursos de confirmación de dos fases.

Puede configurar el servicio de transacciones para que un servidor de aplicaciones acepte el riesgo heurístico, o puede configurar las aplicaciones individualmente para que acepten el riesgo heurístico. Puede configurar las aplicaciones individualmente cuando se ensamblan o una vez desplegadas.

Puede configurar el servicio de transacciones para que un servidor de aplicaciones indique si debe registrar o no que está a punto de confirmar el recurso de confirmación de una fase. Esto no disminuye el peligro de un resultado heurístico, pero garantiza que cualquier anomalía y recuperación posterior del servidor de aplicaciones durante la fase de confirmación de una fase se produzca sabiendo si se le ha solicitado o no la confirmación de recurso de confirmación de una fase.
  • Si se le ha solicitado la confirmación del recurso de confirmación de una fase, se informa del resultado heurístico en el registro de actividades.
  • Si no se le ha solicitado la confirmación del recurso de confirmación de una fase, la transacción se retrotrae de forma coherente.

Excepciones de transacción que incluyen recursos de confirmación de una fase y de dos fases

Las excepciones que pueden generar las transacciones en las que participan recursos de confirmación de una y dos fases son las mismas que pueden generar las transacciones en las que sólo participan recursos de confirmación de dos fases.

Las excepciones que se pueden generar se listan en la información de referencia de la interfaz de programación de aplicaciones (API) del Information Center de WebSphere Application Server.


Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cla_ovrvw
File name: cla_ovrvw.html