db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mayuresh Nirhali (JIRA)" <j...@apache.org>
Subject [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
Date Mon, 04 Jun 2007 11:31:43 GMT

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

Mayuresh Nirhali commented on DERBY-2017:
-----------------------------------------

Thanks narayanan for your comments.

As I mentioned earlier, this patch is incomplete. I was aware of 2) and 3) from your comments,
but wanted to put up a prototype for this different approach, so that it is clear; hence the
patch. 

But, with 1) that I missed, I see the challenges with this approach. Materializing large streams
at client side is not preferred at all. 

However, length must be known in order to construct appropriate DSS. JDBC 3.0 spec hints that
the length specified in setBinaryStream should be equal to the length of the stream. Validating
this is preferred at Client side to avoid the cost of data transfer in such error cases.

Making the behavior consistent with the embedded is tricky here due to the client-server nature.

... looking for more inputs.

> 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
>            Assignee: Mayuresh Nirhali
>         Attachments: derby2017_try1.diff, 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.


Mime
View raw message