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.

Reply via email to