Ihav e some questions about the EJB spec saying that a container must support
two-phase commit.  I know what a two-phase commit is. I owned code at IBM to
do it for DB2/MVS.  What I don't understand is what the term "supports' means
here.  Since the container isn't a database enginre, what items in a container
have to vote on doing commit phase 2 during commit phase 1?  What's more, I
can imagein all kinds of scenarios that essentailly make this notion useless.
Trans 1 starts (CMT or BMT)
Session bean method A is called
Method A calls methods B, C and D of three separate entity beans, which map to
two separate databases, Sybase and Oracle.
The database updates are done,method A completes
The container's TM calls commit on the transaction.
This causes, I'm assuming, a commit call against both the Oracle and Sybase
database.  The Sybase update succeeds (I worked there, so I have to tive htem
some credit).  THe Oracle update fails.  Having th3 container do a two-phase
commit here is totally irrelevant so far as I can see, since the TM cannot
rollback the committed changes in the Sybase database.  The transaction can be
rolled back, which might cau;se a rollback in Oracle, but Sybase is already
committed.  It's too late.  So what good does it do to have the global
transaction rolled back in a two-phase, container-level transaction?


Ken

===========================================================================
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".

Reply via email to