On Jul 17, 2009, at 3:59 AM, Henning wrote:
While trying to understand OfBiz better, I found that OfBiz relies on
Geronimo's JTA implementation. I have a few questions on that (sorry
if
I missed that in the documentation).
By default OFBiz does use the Geronimo JTA implementation. Which
transaction manager used does depend on the configuration in the
entityengine.xml file. If you are deploying OFBiz in an external
application server the typical configuration is to get the JTA objects
from JNDI.
Is OfBiz actually using XAResources and therefore 2-phase-commits?
And if, is that because of the JMS usage?
Yes, we are enlisting XA resources as part of transaction management.
The original reason was to support transactions across multiple
databases, and JMS transactions are also supported this way. With the
recent discussions about the potential use of the Java content
repository, specifically the Apache Jackrabbit implementation, that
would also be enlisted in the same transactions.
Doesn't that imply a performance penalty that should be avoided if
possible and is there a way to configure OfBiz to handle everything
always in a non-distributed tx?
I don't know what sort of performance penalty might be involved in
this. It would be interesting to test both ways and see, as some
deployments don't need multiple databases or other enlisted resources.
Is this something that you have played with before, and are you saying
that you would like to experiment with it? I'm not sure how many code
changes would be required as I haven't really dug into this stuff for
a while, but it should be possible to have things work one way or the
other based on configuration.
-David