Laboratorio 5 – JTA

Objetivos

  • Implementar un esquema sencillo de transacciones distribuidas para soportar nuevos requerimientos sobre la aplicación Muebles de Los Alpes.
  • Validar las funciones de commit y rollback mediante la utilización de dos bases de datos de diferentes proveedores.
  • Afianzar los conocimientos de JTA adquiridos en la sesión de clase.
  • Definir para el proyecto Muebles de los Alpes una nueva funcionalidad que esté basada en el uso de transacciones distribuidas.

Herramientas

  • Debe descargar este driver para poder crear la conexión al servidor de Oracle.

Actividades de Introducción al Laboratorio

  • Configure la conexión a la base de datos Oracle.

Requerimientos

  • Cada cliente puede tener asociada una tarjeta de crédito MueblesDeLosAlpes, la cual le permite realizar compras al cliente.
  • Esta tarjeta debe tener asociado un número y un monto en pesos.
  • El proceso de negocio asociado a este requerimiento se detalla a continuación:
    1. El cliente realiza una compra y como forma de pago elige la tarjeta MueblesDeLosAlpes.
    2. El sistema maneja dos (2) bases de datos: En la primera se registran las ventas (base de datos Oracle que se maneja actualmente); en la segunda (base de datos Derby) se mantienen los datos de la tarjeta (número, cliente y cupo de la tarjeta).
    3. En el momento de la venta se ejecuta una transacción, la primera operación de dicha transacción debe registrar la venta en la base de datos de Oracle, la segunda operación debe descontar el valor de la compra del cupo de la tarjeta MueblesDeLosAlpes del cliente, esta información debe estar en la base de datos Derby.
    4. Si el cupo de la tarjeta es inferior al valor de la compra se debe lanzar una excepción y reversar toda la transacción (los datos deben quedar como estaban antes de iniciar el proceso de compra).

    La siguiente imagen ilustra el proceso:

contexto-2

Desarrollo del Laboratorio

Para dar solución a los requerimientos enunciados en la sección anterior, debe tomar como base el código solución del taller de JPA y definir la siguiente funcionalidad para la aplicación Muebles de Los Alpes:

  1. En la base de datos alterna (Derby) cree una tabla llamada TarjetaCreditoAlpes, que represente una tarjeta de crédito del negocio. Dicha tabla debe permitir registrar el número, nombre del titular, nombre del banco, cupo, fecha de expedición y fecha de vencimiento de una tarjeta de crédito. NOTA: No olvide guardar la sentencia SQL para la creación de la tabla en un archivo llamado sentencia.txt. Este archivo debe estar en raíz de la estructura del archivo .zip que entregue para que sea visible en el momento de la calificación.
  2. Implemente una excepción de negocio llamada CupoInsuficienteException. Debe configurar la excepción para que al momento de ser lanzada en una transacción, dicha transacción sea revertida.
  3. Implemente el método void comprar(…) tanto en el EJB PersistenciaCMT como en PersistenciaBMTNOTA 1: Debe definir el conjunto de parámetros del método comprar, que a su criterio correspondan con la lógica solicitada en el enunciado de los nuevos requerimientos. NOTA 2: En ambos casos debe tener en cuenta la definición de la excepción implementada en el numeral anterior.
  4. Para probar la funcionalidad de compra implementada debe desarrollar dos pruebas unitarias, una para cada EJB implementado (BMT y CMT). NOTA: No basta con invocar los servicios de cada componente, debe asegurarse además, de utilizar clausulas de tipo assert para comprobar que el resultado arrojado por la ejecución de los métodos es el esperado.

Entregables

La entrega del laboratorio se debe hacer por Sicuaplus y consiste en un archivo .zip (login1-login2.zip) con la siguiente estructura de directorios interna:

  1. Laboratorio5\Lab3-MueblesDeLosAlpes\MueblesDeLosAlpes-ejb\src (completo)
  2. Laboratorio5\Lab3-MueblesDeLosAlpes\MueblesDeLosAlpes-war\src (completo)
  3. Un archivo sentencia.txt que contenga la sentencia para crear la tabla en la base de datos Derby. Este archivo debe estar en raíz de la estructura de archivos del .zip para que sea visible.

Evaluación

La evaluación de este taller se hará de acuerdo con la siguiente plantilla de calificación