Charles Crain wrote:
> - Resolve the conflict between the EnterpriseContext-owned transactions
> and the MethodInvocation-owned transactions
What's the conflict?
I see some hairy code in NoPassivationEntityInstanceCache, but don't
know about any conflicts.
> - Provide UserTransactions to clients within the jBoss VM
This should be simple.
> - Support distributed transactions between jBoss instances in different
> VM's
> - POSSIBLY provide UserTransactions to out-of-VM clients.
These two are hard, and I am not aware of anybody that have done
it with the RMI transport. To correctly implement two phase commit
and revovery we have to a few network-accessible objects:
- XA resources participating in a distributed transaction need
to be accessible across the network.
- Some kind of transaction coordinator that XA resources can use
to register themselves with to participate in the transaction.
- Transaction synchronization objects need to be accessible across
the network for the coordinator to be able to call them.
And to get reasonable performance we should also support
interpositioning.
This is like the CORBA transaction service OTS, and we have to
reimplement this (except for nested transactions) for RMI.
JTS is the Java mapping of OTS, and SUN used this in J2EE-RI.
But the J2EE-RI JTS implementation alone is more lines of code
than we currently have in the jBoss CVS module...
> Of course, this is a pretty huge project, and means some major
> refactoring of the transaction manager. I can't promise any time frame
> on this, but it all needs done, and I will do what I can in the spare
> time I have. I would see it taking 3 weeks at minimum.
I am currently doing some internal refactoring on the org.jboss.tm
package. Not to support distributed transactions (too big job
for me right now), but for better performance.
But of course distributed transactions should be supported.
Before I can start using jBoss for real, I need:
1) CORBA 2.3 compliant IIOP support.
2) Real distributed transactions that interoperate seamlessly
with other transaction managers.
Fortunately I don't need jBoss for real until in about ten
months time.
So the way I was thinking about implementing distributed
transactions is:
- Add IIOP support using one or more of the open source
CORBA 2.3 implementations for Java.
- Add distributed transactions using one of the open source
CORBA OTS transaction managers.
- POSSIBLY add RMI support for distributed transactions by
writing a RMI interface to the CORBA OTS transaction
manager.
Comments anyone ?
Best Regards,
Ole Husgaard.