Hey

I've been thinking about the implicit tx passing that we do currently.
I.e., instead of setting a tx in a threadlocal on call we pass it
implicitly and only set it once it reaches the bean. 

I don't think this works really. The reason it works now is because we
only have one JVM apps with the RMI optimization in place. Without the
RMI optimization (i.e. a call to another bean in same JVM uses same
thread) or with multi-JVM calls, it will break. 

Why? Because code in between the container invoker and the instance
invocation needs the tx to be set in the tx manager. I am specifically
thinking about the synchronization interceptor. If the state of an
entity instance needs to be loaded, then a JDBC call is done. The JDBC
pool checks for tx in the TM, but if the caller of the entity used a
real RMI call then the JDBC pool won't see a tx *even though there is
one being sent along the interceptor chain implicitly*.

Do you see what I mean?

If I am not missing something completely this breaks our reasoning on
implicit passing of the tx, and we must instead do the thread
association directly before the interceptors.

regards,
  Rickard

-- 
Rickard �berg

Email: [EMAIL PROTECTED]
http://www.telkel.com
http://www.jboss.org
http://www.dreambean.com


Reply via email to