[ 
https://issues.apache.org/jira/browse/DERBY-4687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995988#comment-12995988
 ] 

Kristian Waagan commented on DERBY-4687:
----------------------------------------

For normal operation commits are most important, but I assume that most 
connection pools that want to ensure clean connections would perform a rollback 
instead of a commit.
In applications with many short-lived business transactions, this may result in 
an unnecessary round-trip each time the logical connection is returned to the 
pool. We had the same issue earlier with the isolation level, but this was 
solved with the session state piggy-backing mechanism (enabled the client to 
know what the isolation level is on the server side).

> Avoid unnecessary round-trip for rollback in the client driver
> --------------------------------------------------------------
>
>                 Key: DERBY-4687
>                 URL: https://issues.apache.org/jira/browse/DERBY-4687
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client
>    Affects Versions: 10.6.1.0
>            Reporter: Lily Wei
>            Assignee: Lily Wei
>            Priority: Minor
>              Labels: Connection, client, derby_triage10_8, rollback
>
> Per fixing DERBY-4653, the same issue is happening for Connection.rollback().
> The methods Connection.rollback() in the client driver cause a round-trip to 
> the server even if the rollback is unnecessary (i.e. there is nothing to roll 
> back).
> Comments suggest (see below) that this can be optimized, such that the 
> commands are flowed to the server only when required. It can be seen that 
> this optimization has been used other places in the client driver. Never the 
> less, it must be checked that this optimization doesn't have side-effects and 
> does not create regression.
>     // Even if we're not in a transaction, all open result sets will be 
> closed.
>     // So we could probably just return if we're not in a transaction
>     // using the following code:
>     //     if (!this.inUnitOfWork)
>     //       return;
> The protocol tests should be added too.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to