On Oct 17, 2007, at 6:13 PM, [EMAIL PROTECTED] wrote:
Hi,
I have a question about when to suspend a transaction in global
transaction?
If app server A calls a ejb method in app server B, and app server
A 's calling thread has a transaction, server A should ALWAYS
suspend current transaction before propagation it to server B?
Is there any exception that server A will not suspend the current
transaction before propagation?
The effect depends partly on the capabilities and configuration of
the app servers. At the moment geronimo cannot propagate
transactions between instances. If you use the corba transport then
propagation works as explained in the ejb specs: only calls where no
propagation is expected will succeed (B's ejb is NONE or REQUIRES_NEW
or A has no active transaction (NONE, NOT_SUPPORTED, SUPPPORTED with
not tx active)).
With the proprietary openejb transport the existence of a tx context
at A is simply ignored.
We could certainly use some help to implement distributed
transactions but I warn you that the topic is somewhat difficult and
there doesn't seem to be much demand for it.
If geronimo did support distributed transactions then there would be
no difference in transaction behavior whether A and B were on the
same server instance or different server instances.
I hope this answers your question.
thanks
david jencks
Thanks & Best Regards,