On Wed, 20 Sep 2000, Dan OConnor wrote:
> Hi Aaron,
> 
> All resource manager accesses between the 
> UserTransaction.begin and UserTransaction.commit calls are part 
> of the transaction.  In other words, if the user touches a new or 
> preexisting transaction (i.e. by executing a statement or prepared 
> statement) that connection must be enlisted in the transaction.  
> The user does not have flexibility in this regard.
> 
> -Dan

        Okay, now we're getting somewhere.  I guess this means that we
need to keep a mapping of resource to thread, so if someone calls
UserTransaction.begin then we can look up all the resource managers
associated with that thread and add them to the transaction.  The
alternative, performing an on-the-fly association when you actually did
something with a resource, would be too horrible to contemplate
(overriding *every* method of JDBC, etc.).
        Of course, this sounds pretty heinous to implement, since the
UserTransaction implementation must reach into Minerva, etc. every time a
UserTransaction is started and check for any unassigned resources and
assign them.  Is there any sort of standard listener mechanism so Minerva
can get notified when a UserTransaction is started?

Aaron


Reply via email to