Controle de transações com Spring

Olá pessoal, tenho a seguinte dúvida no spring, quando eu tenho o clássico problema da reserva de passagens de avião, que preciso em um primeiro momento debitar o valor da passagem do cartão de crédito do passageiro e num segundo momento reservar um assento para ele no avião, digamos que eu faça o débito do cartão através de um WebService e a reserva do assento por DAO do Hibernate. Supondo que o um passageiro tenha dado entrada, o meu sistema executa o WebService da operadora de cartão de crédito e debita o valor normalmente, mas quando vou tentar reservar o assento é lançada uma exceção dizendo que não existe assentos disponíveis, eis a questão, o controle de transação do Spring consegue dar “rollback” na operação do cartão de crédito, e se caso eu estivesse outro serviço (EJB, JMS) mudaria a forma de tratar transações, preciso utilizar JTA?

Para esse cenário,você vai necessitar realmente da Api JTA. Entretanto o Spring fornece um manager para a mesma - JtaTransactionManager, que trabalha com os objetos javax.tranaction.UserTransaction e javax.transaction.TransactionManager, delegando responsabilidade de gerenciamento de transação a esses.

JTA + WebServices?

Olá

Toda transação de cartão de crédito, seja ela feita de que jeito for (até no mata pulga), tem a possibilidade de cancelamento.

Então, caso a reserva do assento não seja confirmada, simplesmente cancele a transação no cartão usando o mesmo código de autorização da transação de crédito (ou débito).

[]s
Luca