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