« Aspect or cglib | Main | cglib performance continued »

August 31, 2005

Maxims WebSphere JTA broken claim debunked...

Dimitri Maximovich recently posted a blog entry claiming that WebSphere didn't implement the JTA specification correctly.

Been knocking this around the block here and here is what I can come up with.

Maxims scenario is actually illegal according to the J2EE 1.4 spec. Look at section 4.2.3. It states that a connection cannot be shared between two transactions.

However, the JCA 1.5 spec in section 6.5.4.2 indicates that it may be allowed if the underlying JCA RA supported it but shouldn't be counted on.

So, in a nutshell, my previous statement about sharing a connection between threads depends heavily on the RA and can't be counted on. The only safe thing to do is get a new connection for each transaction.

I'm now not even sure that passing a connection allocated in component A to component A even in the same transaction is guaranteed safe by the spec.

The plot thickens.., but regardless the J2EE spec states that what is attempted in Maxims sample is illegal according to the spec.
Billy (IBM).

August 31, 2005 | Permalink

Comments

Billy,

See response in my blog: http://www.jroller.com/page/maximdim?entry=if_it_s_not_broken

Posted by: Dmitri Maximovich | Aug 31, 2005 2:49:57 PM

Post a comment