Hi;
Is there a particular reason why GlobalTransaction.create(...) is synchronized?
As far as I can tell, the only thing it's doing that requires synchronization during GlobalTransaction construction is the call to newId() from the GlobalTransaction constructor. Since newId() is already a synchronized method, there seems little sense in holding the exclusive static lock on GlobalTransaction.class for longer than necessary.
Brian.
done