An EJB server can provide a "transaction coordinator" to coordinate
2PC transactions. But in the end, you have to have JTA-compatible
"transaction resources" in order to achieve real 2PC across heterogenous
databases, messaging services, etc..
The transaction coordinator isn't that hard to build. Adding 2PC
support to a database driver... now that's hard... especially without
the cooperation of that vendor. And in most cases, developers are
relying on the vendor to provide the database driver. Ie, you go to
Oracle for an Oracle JDBC driver; you go to Sybase for a Sybase JDBC
driver; etc.. These vendors aren't really that speedy in supporting
2PC in their drivers.
So, although you will see advertising copy that touts "distributed
transactions"... don't be fooled. In reality, the app server vendors
are far ahead of the database vendors in supporting distributed
transactions. And until big enough thumb screws are applied to
the DBMS and MOM vendors, real distributed transactions aren't going
to be a reality in Java. My guess is that it will take at least a
year... probably two... for full 2PC support from Oracle, Sybase,
Informix, and MQSeries.
If anyone can provide information about vendor release dates for
JTA compatible resources, I'm sure it would be of interest to many.
-eric
"Robert C. Seacord" wrote:
>
> Anne Thomas wrote:
>
> > The EJB spec requires the EJB Server to provide support for distributed
> > transactions, but that doesn't mean that the EJB server has to support 2PC
> > operations across heterogeneous data sources. Only a handful of EJB servers
> > provide an integrated distributed transaction coordinator: Inprise AS,
> > OrchidSoft Vanda, NetDynamics 5.0 (I think), Component Broker (I think),
> > GemStone/J (I think). Most EJB servers rely on the database to coordinate
> > distributed database transactions -- which limits you to homogeneous
> > transactions (e.g., only Oracle or only Sybase).
>
> i'm confused by this. i have some experience with VisiBroker ITS which is the
> transaction service included with Inprise AS (as far as I can tell).
>
> The 1.x version of the JDBC driver used by ITS does not support interfaces to
> perform two-phase commit. My
> understanding is that failure to support two-phase commit makes it impossible
> to support transactions to multiple databases, even homogeneous databases.
> VisiBroker ITS does support two-phase commit in their C++ product line, but
> only for Oracle v7.3 -- but aren't Enterprise JavaBeans written in Java?
>
> I also have some experience with BEA WebLogic. They do not support two-phase
> commit either, for the same reasons
> (their implementations are based on JDBC 1.0 which does not support two-phase
> commit). Am I missing something?
>
> rCs
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".