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

Saurabh Vyas commented on DERBY-2017:
-------------------------------------

Thanks Kristian for bringing this issue to attention and another round of 
discussion over it.

Till now, according to my approach, While an error occurs, in the network mode, 
the complete transaction will be rolled back. This is to make sure that Data is 
in consistent state, but this approach also rollbacks some correct operations 
on database (all insert, updates &  delete prior to the erroneous statement). 
This behavior is is different from that of the embedded mode.

To make the consistent behavior for both embedded & network mode, there should 
be an mechanism by which the client should be able to communicate to server 
that the last operation is invalid & only this operation has to be reverted. 
This implies that at the time of error rather than ignoring the read error, the 
client need to fire another statement to revert the current changes done at 
server (currently client calls connection_.writeCommitSubstitute_(); ). So how 
should we go ahead for this approach ?

> Client driver can insert and commit partial data when a LOB stream throws 
> IOException or does not match the specified length
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-2017
>                 URL: https://issues.apache.org/jira/browse/DERBY-2017
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.2.1.6
>            Reporter: Knut Anders Hatlen
>         Assigned To: Saurabh Vyas
>         Attachments: Derby_2017_v1.diff, Derby_2017_v1.stat, 
> StreamErrRepro.java
>
>
> When a LOB stream throws an exception or does not match the specified length, 
> the client driver does not raise an exception until it has finished executing 
> the statement. Therefore, the statement will be executed (and possibly 
> committed) on the server even though the client reports that the statement 
> failed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to