Dave Wolf wrote:
> >
> > > Very few application servers today can act as 2PC transaction
> > > managers. The
> > > only ones I am aware of are <VENDOR> Sybase EAServer </VENDOR>
> > as well as
> > > iPlanet 6 and <BLECK>MTS</BLECK>.
> >
> > any idea about Websphere Advanced Edition 3.5?
>
> Nope. Last time I checked they didnt, except maybe to DB2. Very
confusing
> data sheet.
See below for an answer to the question on WebSphere Advanced 3.5. Before I
get to the answer I'd like to
make two general comments:
Claims for generic support for 2PC w/o specifying the data source and a
driver do appear to be a little
vague to me. E.g. when testing JTA support for WebSphere, we found that a
leading db vendor's JDBC
driver does not implement the XAResource's forget() and recover() methods.
So, we can't claim support
for 2PC to this database, and this is what we try to put into the data
sheet. Unfortunately, this kind of detail
sometimes causes our data sheets to be difficult to read. I can assure you
that we would very much
prefer simpler statements but our experience is that we actually need to
prereq a very specific version for
many products, sometimes even specific fixpack levels, to make things work.
This applies to IBM products
as well as to other vendor's products.
The other general comment that I have is that support for the JTA
interfaces is only half of the story and
is sometimes misinterpreted as full, enterprise level support for 2PC.
Details of this statement are as follows: some vendors do implement JTA
interfaces but only do a 1PC
under the covers. They don't claim 2PC support but do this only for J2EE
compliance. The next level up
is to implement an external transaction manager in the app server in order
to drive XA messages through
the XAResources but without performing transaction logging in this
transaction manager. This is 2PC as
long as the app server doesn't crash. If it does crash, the external
transaction manager looses its state
and a transaction that is currently committing would hang or time out with
a heuristic outcome. The enterprise
level 2PC implementation requires XA messages to drive the two phases of
the commit process *and*
transaction logging in the external transaction manager. This allows a
recovery protocol to be driven in
the case of an app server failure and to recover the resources even if the
app server fails. As an
optimization, if only one resource is involved in a transaction, logging in
the external transaction manager
can be omitted because commit processing can be reduced to a single phase.
Transaction logging can have a significant performance impact and is
difficult to implement efficiently in
Java. This is due to arbitrary GC pauses of the JVM and to the fact Java
does not allow low level access
to disks. Current C++ implementations use a low level file I/O APIs for
transaction logging that actually take
into account things like disk rotation speed to improve the logging
performance. This is essential because
transaction logging can make or break the overall performance of a system.
Of course, if someone was
clever enough to configure OS swap files and transaction manager log files
to reside on the same physical
disk then there is not much you can do in your code to avoid a performance
hit.
Now, to answer the question above:
<VENDOR>
WebSphere Advanced 3.5 supports 2PC *w/o* transaction logging to DB2 and
Sybase. Oracle JTA
does not currently work due to problems with the Oracle thin JDBC driver.
WebSphere Enterprise 3.5 supports 2PC *with* transaction logging across
Oracle, Informix, DB2, CICS,
IMS and MQSeries.
The various product versions required for this functionality are documented
in the software prereqs,
available from
http://www.ibm.com/software/webservers/appserv/doc/v35/idx_aas.htm
</VENDOR>
I wonder if the products previously mentioned in this thread implement an
external transaction manager
(which I would assume) and if they support transaction logging in the
external transaction manager?
Regards
Rainer
----------------------------------------------------------------------------------------------
Rainer Kerth, IBM WebSphere Architecture, [EMAIL PROTECTED]
===========================================================================
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".