[ 
https://issues.apache.org/jira/browse/DERBY-3237?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kathey Marsden updated DERBY-3237:
----------------------------------

              Priority: Minor  (was: Major)
               Urgency: Low
    Bug behavior facts: [Embedded/Client difference]

Triaged for 10.5.2. Set urgency to Low. I think it would be a lot of work to 
try to make all the API's on existing connections well behaved when derby is 
shutdown. DERBY-4165 will at least document that the behavior is unpredictable.


> 3 JDBC4.0 apis on Connection object behave differently in Network Server and 
> Embedded mode after Derby is shutdown
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3237
>                 URL: https://issues.apache.org/jira/browse/DERBY-3237
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.3.1.4, 10.4.1.3
>            Reporter: Mamta A. Satoor
>            Priority: Minor
>         Attachments: DERBY_3172_Repro.java
>
>
> While working on DERBY-3172, I found that following 3 JDBC4.0 apis, isValid, 
> isWrapperFor and unwrap on Connection object behave differently in Network 
> Server and Embedded mode after Network Server/Embedded Derby is shutdown. I 
> have attached a reproducible case to show the behavior difference but here is 
> brief description of the problem.
> In JDBC4, two methods isWrapperFor and unwrap on Connection object do not go 
> to the server when Derby is being accessed in client server mode and because 
> of this, we never detect that the server is down and hence no connection 
> error event or connection closed exception is thrown in client server mode 
> for these 2 apis. But when the same apis are called in embedded Derby after 
> the engine is shutdown, we get connection error event and connection closed 
> exception. 
> And lastly, the new JDBC4 api isValid on Connection object has different 
> behavior in client server mode and embedded mode. Embedded throws exception 
> that the connection is down but Network Server incorrectly returns true from 
> isValid even when the Network Server has been shutdown. In addition, in 
> embedded mode, after the engine is shutdown, an isValid call on Connection 
> object raises a connection closed event. In client server mode, after the 
> Network Server is shutdown, an isValid call on Connection object does not 
> raise any event. Again, I am not sure if this is expected bahavior difference 
> between the 2 configurations of Derby. Lastly, as per Connection.isValid api 
> Java specification, a SQLException is thrown under following condition which 
> is not being followed in embedded
> Throws: 
> SQLException - if the value supplied for timeout is less then 0 
> Based on this, I am not sure if our behavior is correct to throw an 
> SQLException if the engine is down. 

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