Excepciones del servicio de transacciones
A continuación se muestran las excepciones que el servicio de transacciones de WebSphere Application Server puede generar, junto con un resumen de cada excepción.
Si el contenedor de EJB capta una excepción del sistema del método de empresa de un enterprise bean y el método se ejecuta dentro de una transacción gestionada por contenedor, el contenedor retrotrae la transacción antes de pasar la excepción al cliente. Para obtener más información acerca de cómo el contenedor maneja las excepciones generadas por los métodos de empresa de los beans con una demarcación de transacción gestionada por contenedor, consulte el tema Manejo de excepciones en Especificación Enterprise JavaBeans 2.0. En esta sección se especifica la acción del contenedor como una función de la condición bajo la que se ejecuta el método de empresa y la excepción que genera el método de empresa. También se ilustra la excepción que recibe el cliente y el procedimiento de recuperación que puede realizar.
Excepciones estándar
Las excepciones estándar como, por ejemplo, TransactionRequiredException, TransactionRolledbackException e InvalidTransactionException, están definidas en la especificación Java™ Transaction API (JTA) 1.1.- InvalidTransactionException
- Esta excepción indica que la solicitud lleva un contexto de transacción no válido.
- TransactionRequiredException
- Esta excepción indica que una solicitud llevaba un contexto de transacción nulo y el objeto de destino requiere una transacción activa.
- TransactionRolledbackException
- Esta excepción indica que se ha retrotraído la transacción asociada con el proceso de la solicitud o se ha marcado para retrotracción. Por lo tanto, la operación solicitada no se ha podido realizar o no se ha realizado debido a que sería inútil realizar procesos adicionales en nombre de la transacción.
Excepciones heurísticas
Una decisión heurística es una decisión unilateral tomada por uno o varios participantes de una transacción para confirmar o retrotraer las actualizaciones sin obtener en primer lugar el resultado consensuado que ha determinado el servicio de transacciones. Las decisiones heurísticas se adoptan después de que el participante se haya preparado y la segunda fase del proceso de compromiso se esté llevando a cabo. Normalmente, las decisiones heurísticas se realizan sólo en circunstancias excepcionales como, por ejemplo, cuando el gestor de transacciones sufre repetidas veces anomalías en la comunicación con un gestor de recursos durante el compromiso de dos fases. Si se toma una decisión heurística, se corre el riesgo de que la decisión sea diferente al resultado consensuado, lo que provocaría una pérdida de datos.La lista siguiente proporciona un resumen de las excepciones heurísticas. Si desea más detalles, consulte la Especificación Java Transaction API (JTA) 1.1.
- HeuristicRollback
- Esta excepción surge durante la operación de compromiso para informar de que se ha tomado una decisión heurística y que se han retrotraído todas las actualizaciones relevantes.
- HeuristicMixed
- Esta excepción surge durante la operación de compromiso para informar de que se ha tomado una decisión heurística y que algunas actualizaciones relevantes se han confirmado y otras se han retrotraído.