Women in Technology

Hear us Roar

  Adding Transactions to Servlets with JOTM
Subject:   Dangerous and misleading
Date:   2004-04-05 02:53:16
From:   guypardon

Nice article, but dangerous and misleading for the following reason: it claims that JOTM is a transaction manager with full distributed transaction support and this is just not true.

A real transaction manager will support crash/restart recovery, and JOTM never did that (did the article mention this somewhere? If so, I must have missed it).

Crashes are a part of life and tend to happen especially on high loads with a maximum number of active transactions. Not having recovery is like smoking a cigarette on a pile of dynamite.

Tricking people into believing that JOTM works correctly can lead to _very_ expensive crashes where data is permanently corrupted. It's like driving a car without brakes: it moves, but as soon as there is an obstacle you crash full speed.

Equally misleading is the article's statement that JOTM can be used to develop robust applications. Not true, especially since it doesn't do recovery.

The law against unfair competition forbids one to make false product claims in most parts of the world. In my opinion, this law has been violated in this article (even if JOTM is open source). The potential damage this article can do to people who believe it is, in my view, enormous.

Also, combining XAPool with MySQL is again dangerous because this combination doesn't support recovery either.

I just wanted to point this out. By the way, I do know what I am talking about since I have designed and developed many JTA transaction managers, all of which support recovery and full distributed transactions.

Best regards,

Full Threads Newest First

Showing messages 1 through 3 of 3.

  • Dangerous and misleading
    2004-04-05 05:40:47  jeff.mesnil [View]

    Guy, thank you for your feedback on this article and JOTM.

    I clearly stated that JOTM helps to create more robust web applications. It was never my intent to write that JOTM makes your web applications ultimately robust. I still believe that even without recovery, JOTM makes web applications more robust and simple. But it's true that there is much more to have robust web applications.

    Concerning recovery, JOTM team has never hidden the fact that it does not support recovery.
    In the context of this article, we introduced JOTM and focused on its features. Perhaps, I should have added a section on the current limitations of JOTM (guess what? it's not bug free! ;-).

    You're well aware that there isn't any Java Open Source Transaction manager which provides recovery. But, nevertheless, JOTM is pushing very hard to be the first to implement it. It has a unique opportunity to do so.
    Indeed, JOTM has been relicensed to become the defaut transaction manager of both ObjectWeb/JOnAS and Apache/Geronimo.
    The two communities have decide to join their effort and to contribute to JOTM and to its recovery subprojects (HOWL). So, we acknowledged we lack recovery but we're making big commitments to meet that need.

    I think you're unfair when you suggest that I deliberately lied in this article to trick people. You've followed the JOTM project for long enough to know that we don't cheat our users. We believe in Open Source, we're objective
    about our product and our concurrence (including your own product).

    However, I took into account your critics and I'd like to write a followup to this article when recovery is implemented in JOTM showing how it helps creating even more robust web applications.

    • Dangerous and misleading
      2004-04-07 23:59:10  guypardon [View]

      Hi Jeff,

      First of all, I certainly wasn't suggesting that you lied to people, and I apologize if that's how it looks. I know that you take pride in your work and that's good. We all do. I only think that maybe you were a bit too enthusiastic as an evangelist for JOTM here.

      The message that this article suggests and also the message that the other JOTM-related posts suggest (at least those that I've seen anyway) are all in the sense of "fully functional" etcetera.

      I know that you don't mislead people or lie to them when they ask about JOTM. Neither does the JOTM team, nor any other ObjectWeb team for that matter. All those that I've met or talked to (or even occasionally worked with!) are _very_ fine people doing a good job and I will be the first to admit that.

      But for novice developers/users that read a well-written article like this, it is probably impossible to distinguish between what JOTM does (and doesn't do) and what one reasonably expects a "fully functional" distributed transaction manager to do.

      I do realize that there are specs on one side and the compliance issue on the other. Getting 100% compliance is something that products rarely do. No problem with that. Even better if you're trying to improve that. Like I said, a good job being done by fine people.

      But still, if this article promotes a "fully functional" transaction manager and never mentions that there's no recovery then to me this is a bit like promoting a car that has no brakes. In my (admittedly personal) opinion, recovery is to a transaction manager like brakes are to a car. In that sense I think it's misleading, although certainly not intentionally.

      That's all I wanted to say, nothing more.
      Besides that, I think the article is very well written. And I'm sure I'm not the only one who feels that way.

      Best regards,

      • Dangerous and misleading
        2004-04-16 04:57:31  jeff.mesnil [View]

        You're right: I'm a little too enthusiastic about JOTM! :-) I should restrain for promoting JOTM as a fully functional transaction manager as long as it hasn't implemented recovery and passed the J2EE CTS with JOnAS.

        Your argument about a transaction manager without recovery is very valid and I think it could be interesting to raise more attention on that point.
        IMHO, the J2EE Open Source projects are not enough concerned about that fundamental aspect of enterprise computing. ObjectWeb (JOTM and JOnAS) are leading the way but we need to better explain how it's a mandatory requirements to build true robust applications.

        I'm thinking about writing an article on that topic (it'll be my way to redeem myself from my
        misleading in this article! :-)
        It could be worthwhile to examine the current state of the art in the J2EE Open Source stack wrt to recovery (e.g. DB, MOM, J2EE Server and TM) and what steps are required to support recovery for the whole stack.
        What do you think about it?