db-torque-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Fox <thomas....@seitenbau.com>
Subject Re: svn commit: r1839284 - in /db/torque/torque4/trunk: torque-runtime/src/main/java/org/apache/torque/ torque-runtime/src/main/java/org/apache/torque/oid/ torque-runtime/src/main/java/org/apache/torque/util/ torque-runtime/src/test/java/org/apache/torque/...
Date Tue, 11 Sep 2018 03:41:35 GMT
On 9. 7. 2018, Thomas Vandahl wrote:
> On 9/6/18 7:03 AM, Thomas Fox wrote:
> > Ok, but should we not reset the committed and rolledBack Flag when the user could
have issued further statements after a commit/rollback, e.g. when connection.createStatement()
ist called?
> 
> Yes, I agree - at least in the general case. I our case, however,
> TorqueConnection is returned from our TransactionManagerImpl which
> happens to *close* the connection right after commit.

I agree. In Torque's current usage, there is no need for handling operations after commit
or rollback. However, as the connection is passed to the user, some users might be tempted
to call rollback and commit on the connection itself, and things will become strange then
(no rollback on connection.close() for example).

> I was thinking that probably the easiest way to handle the connection
> state is to rollback unconditionally before close. If work had been
> committed, no harm would be done. If not, we need to rollback anyway.
> WDYT? Do you have any idea of the performance implications?

Probably this will work in most cases. I'm not sure whether it will work in all cases. I have
no idea about performance implications though I suspect them to be small.
Personally I like such behavior to be configurable for handling edge cases.

Another idea: Not TorqueConnectionImpl.rollback() and TorqueConnectionImpl.commit() set the
flag to not rollback on close(), but TransactionImpl.rollback() and TransactionImpl.commit().
So in this case the user can commit() and rollback() on the connection to his heart's content,
but only a call on  TorqueConnectionImpl.commit()/.rollback()(which closes the connection
anyway) changes the connection close behavior. What do you think?

    Thomas

Mime
View raw message