Suppose you have to plan a world trip (Ed Romans Trip Planning example) and
there are three legs and you want to be able to retry each leg if it fails
and if it continues to fail you then want to roll back the entire
transaction.

How do you structure the methods and their transaction attributes to support
this?

The key here is that just because you fail to plan a leg the first time
doesn't mean that you will roll back everything. However, if you continue to
fail you will want to roll back everything that took place before.

Can somebody describe the transaction attributes if you have

planTrip()
        purchaseFirstLeg()
        purchaseSecondLeg()
        purchaseThirdLeg()

What would the transaction attributes have to be for this to work?

What I don't understand is if you need to be able to both rollback just an
individual leg and also have the flexibility to roll back the planTrip all
together. How can you do this when you use TX_REQUIRES_NEW for the inner
legs and choose not to keep conversational state that indicates failure with
any one inner level?

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to