Quando desenvolvemos um serviço para atender aos clientes internos e externos de uma aplicação, é muito comum controlar as transações do serviço de forma manual, por meio do processo BMT (Bean Management Transaction), ou simplesmente delegando o controle transacional para o container de execução da aplicação, técnica esta conhecida como CMT (Container Management Transation). Na maior parte das aplicações, os desenvolvedores optam por trabalhar com o conceito de CMT, deixando que o container gerencie o processo de commit e rollback das transações.

Ainda que este controle seja delegado para o container, é possível passar certas instruções comportamentais relacionadas à propagação das transações nos métodos e/ou classes elegidas como transacionais. Além de abordar os conceitos básicos dos tipos de propagação de uma transação, será apresentado ao término deste post um exemplo prático de como declarar e instruir a propagação das transações numa classe de serviço desenvolvida com Enterprise Java Bean – EJB.

Continue reading