Hi,

Charles Crain wrote:
> 
> Actually, JoNaS, another open source app server, does distributed
> transactions over RMI.  From what I can tell looking at their source code,
> each VM has its own TransactionManager that handles XAResources from that VM
> only.  Then the Transactions themselves expose RMI interfaces so that they
> can coordinate a 2-phase commit.  Overall, it doesn't look too bad.  I've
> entertained the idea of trying to integrate the JoNaS transaction manager
> into jBoss and see what happens, but their tm has some dependencies on the
> rest of their code, so I dunno how easy that would be.  It might be easier to
> just use the ideas and roll our own.

Careful: The Jonas license is _not_ GPL. Besides the main Jonas license various
parts of Jonas have other licences with special restrictions. For example:
If you use the Jonas JMS implementation you acknowledge that someone has a
patent on the software (they cannot defend it in court as the European Patent
Convention forbids patents on software, but they don't have to if you have
acknowledged their patent), and that you do not have a license to use that
patent.

However, rolling out our own distributed transaction manager might be just
as easy.

> I don't want to start hacking around with this until Marc's additions and
> your refactoring is done with the tm.  But some time down the road I'd like
> to take a crack at it.

I think it would be better to implement another TM instead of changing the
existing TM: This way we do not introduce new TM bugs in the existing TM,
and people can reconfigure to the new TM when it is stable. The existing
TM will probably perform better than a fully distributed TM, so people that
do not need transactions travelling to different VMs would probably want to
stay with the existing TM.

As for how to design the interface to such a distributed transaction manager:
I think we should base the design on OTS/JTS rather than JTA. OTS is a proven
distributed technology that can interoperate with just about anything. On the
other side JTA does not adress distribution issues at all. Of course our DTM
should have a JTA interface for local use. While it would be tempting to cut
of parts of the OTS interface that we do not implement (like nested
transactions) this would make it harder to implement these at a later time and
to interoperate with transaction managers that do have these features.
Another advantage of basing the design on OTS is that we only need to write
some thin wrappers when we get an IIOP transport.

If there is sufficient interest that jBoss should have its own full-blown
distributed transaction manager, I also would be willing to spend some time
on this.

What do you think?


Best Regards,

Ole Husgaard.

Reply via email to