--- In [email protected], "Zubin Wadia" <[EMAIL PROTECTED]> wrote:
>
> Hi Sumit,
> 
> Distributed Transactions is a vast topic that takes many years to
master yet
> is an essential part of a programmer's toolkit.
> 
> A transaction can be XA-style where it is multiple Instances/Schemas
> executing transactions inside a single boundary.
> 
> Or it can be across two different systems - where transaction state
from one
> system needs to be propagated to the other for a secondary dependent
> decision.
> 
> XA is the more "controllable" of the two because when you are using the
> native DB transaction manager, it can give you much more control
over the
> transaction behavior.
> 
> When you go across systems, it is much more complex and the error
handling
> and detail is reduced significantly. So if you get into trouble,
debugging
> will be harder.
> 
> Choose the approach wisely... there are many situations where it may
appear
> that DT is needed, but with good compensation mechanisms,
consistency can
> still be achieved reliably.
> 
> >>>>>>>>>>>>>>>>>>>>
> 
> You can also do DT at the method/function level. A DT does not HAVE to
> involve a DB. It can be across file-systems, it can be across web
service
> interfaces. The key is to understand when you need it and the general
> patterns for implementation.
> 
> >>>>>>>>>>>>>>>>>>>>
> 
> My favorite transaction management factory right now in the Java
world is
> Spring. The current Spring 2.0 transaction manager factory is even more
> flexible than EJB3.0 in the sense that you can "chain" transactions in a
> nested fashion, which allows you to execute a DT within a DT, the
result of
> which may or may not have a dependency on the other.
> 
> For PHP and Perl - I do not have exposure there, but I would be
surprised if
> mechanisms did not exist.
> 
> >>>>>>>>>>>>>>>>>>>>
> 
> Hope this helps,
> 
> Zubin.
>


Zubin,

Thanks for this detailed explanation.

Sumit

Reply via email to