You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Saurabh Vyas (JIRA)" <ji...@apache.org> on 2007/01/24 12:19:49 UTC

[jira] Commented: (DERBY-2017) Client driver can insert and commit partial data when a LOB stream throws IOException or does not match the specified length

    [ 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.