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

John H. Embretsen commented on DERBY-3217:
------------------------------------------

As far as I can see, there is no documented way to shut down the Derby engine 
when you are using a DataSource (I've only looked at EmbeddedSimpleDataSource 
(used for Java ME) and EmbeddedDataSource). 

However, I found that it is actually possible, by first setting the 
databaseName to the empty String, then setting the connection attribute 
"shutdown=true", and finally trying to obtain a connection. The exception is 
the same as I get when shutting down the engine using DriverManager.

        // Create an EmbeddedSimpleDataSource, setDatabaseName, 
setCreateDatabase, getConnection...

        try {
            derbyDs.setDatabaseName("");
            derbyDs.setConnectionAttributes("shutdown=true");
            System.out.println("Shutting down engine...?");
            derbyDs.getConnection();
        } catch (SQLException ex) {
                do {
                    System.err.println("----- SQLException -----");
                    System.err.println("SQLState:   " + ex.getSQLState());
                    System.err.println("Error code: " + ex.getErrorCode());
                    //ex.printStackTrace();
                    ex = ex.getNextException();
                } while (ex != null);
            }
        }


To restart the engine, create a new datasource object and set the correct 
databaseName, then getConnection().
It seems that the engine is started on the first call to getConnection().

The test harness is a bit more complicated (less direct) in the way it sets 
DataSource properties, but it should be possible to implement something like 
this there as well, if needed. 

> ErrorStreamTest failing on ibm j9 jvm
> -------------------------------------
>
>                 Key: DERBY-3217
>                 URL: https://issues.apache.org/jira/browse/DERBY-3217
>             Project: Derby
>          Issue Type: Bug
>          Components: Regression Test Failure
>    Affects Versions: 10.4.0.0
>         Environment: J9 - VM for the Java(TM) platform, Version 2.3
> (c) Copyright IBM Corp. 1991, 2006  All Rights Reserved
> Target: 20061023_08962_lHdSMR (Windows XP 5.1 build 2600 Service Pack 2 x86)
> JIT  - 20060629_1804ifx1_r8
>            Reporter: Mike Matrigali
>            Assignee: Vemund Østgaard
>
> Getting the following junit tests failures on just on the j9 jvm  platform 
> running on windows:
> There were 11 failures:
> 1) 
> testDefault(org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest)junit.framework.AssertionFailedError:
>  shutdown engine not implemened
>       at 
> org.apache.derbyTesting.junit.DataSourceConnector.shutEngine(DataSourceConnector.java:130)
>       at 
> org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1091)
>       at 
> org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest.testDefault(ErrorStreamTest.java:128)
>       at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)
>       at <unknown class>.<unknown method>(Unknown Source)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)
> 2) 
> testFile(org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest)junit.framework.AssertionFailedError:
>  shutdown engine not implemened
>       at 
> org.apache.derbyTesting.junit.DataSourceConnector.shutEngine(DataSourceConnector.java:130)
>       at 
> org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1091)
>       at 
> org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest.testFile(ErrorStreamTest.java:141)
>       at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)
>       at <unknown class>.<unknown method>(Unknown Source)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)
> 3) 
> testWrongFile(org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest)junit.framework.AssertionFailedError:
>  shutdown engine not implemened
>       at 
> org.apache.derbyTesting.junit.DataSourceConnector.shutEngine(DataSourceConnector.java:130)
>       at 
> org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1091)
>       at 
> org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest.testWrongFile(ErrorStreamTest.java:160)
>       at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)
>       at <unknown class>.<unknown method>(Unknown Source)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)
> 4) 
> testMethod(org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest)junit.framework.AssertionFailedError:
>  shutdown engine not implemened
>       at 
> org.apache.derbyTesting.junit.DataSourceConnector.shutEngine(DataSourceConnector.java:130)
>       at 
> org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1091)
>       at 
> org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest.testMethod(ErrorStreamTest.java:179)
>       at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)
>       at <unknown class>.<unknown method>(Unknown Source)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)
> 5) 
> testWrongMethod(org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest)junit.framework.AssertionFailedError:
>  shutdown engine not implemened
>       at 
> org.apache.derbyTesting.junit.DataSourceConnector.shutEngine(DataSourceConnector.java:130)
>       at 
> org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1091)
>       at 
> org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest.testWrongMethod(ErrorStreamTest.java:198)
>       at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)
>       at <unknown class>.<unknown method>(Unknown Source)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)
> 6) 
> testField(org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest)junit.framework.AssertionFailedError:
>  shutdown engine not implemened
>       at 
> org.apache.derbyTesting.junit.DataSourceConnector.shutEngine(DataSourceConnector.java:130)
>       at 
> org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1091)
>       at 
> org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest.testField(ErrorStreamTest.java:217)
>       at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)
>       at <unknown class>.<unknown method>(Unknown Source)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)
> 7) 
> testWrongField(org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest)junit.framework.AssertionFailedError:
>  shutdown engine not implemened
>       at 
> org.apache.derbyTesting.junit.DataSourceConnector.shutEngine(DataSourceConnector.java:130)
>       at 
> org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1091)
>       at 
> org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest.testWrongField(ErrorStreamTest.java:236)
>       at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)
>       at <unknown class>.<unknown method>(Unknown Source)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)
> 8) 
> testFileOverMethod(org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest)junit.framework.AssertionFailedError:
>  shutdown engine not implemened
>       at 
> org.apache.derbyTesting.junit.DataSourceConnector.shutEngine(DataSourceConnector.java:130)
>       at 
> org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1091)
>       at 
> org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest.testFileOverMethod(ErrorStreamTest.java:257)
>       at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)
>       at <unknown class>.<unknown method>(Unknown Source)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)
> 9) 
> testFileOverField(org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest)junit.framework.AssertionFailedError:
>  shutdown engine not implemened
>       at 
> org.apache.derbyTesting.junit.DataSourceConnector.shutEngine(DataSourceConnector.java:130)
>       at 
> org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1091)
>       at 
> org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest.testFileOverField(ErrorStreamTest.java:278)
>       at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)
>       at <unknown class>.<unknown method>(Unknown Source)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)
> 10) 
> testFileOverMethodAndField(org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest)junit.framework.AssertionFailedError:
>  shutdown engine not implemened
>       at 
> org.apache.derbyTesting.junit.DataSourceConnector.shutEngine(DataSourceConnector.java:130)
>       at 
> org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1091)
>       at 
> org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest.testFileOverMethodAndField(ErrorStreamTest.java:302)
>       at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)
>       at <unknown class>.<unknown method>(Unknown Source)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)
> 11) 
> testMethodOverField(org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest)junit.framework.AssertionFailedError:
>  shutdown engine not implemened
>       at 
> org.apache.derbyTesting.junit.DataSourceConnector.shutEngine(DataSourceConnector.java:130)
>       at 
> org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1091)
>       at 
> org.apache.derbyTesting.functionTests.tests.engine.ErrorStreamTest.testMethodOverField(ErrorStreamTest.java:326)
>       at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)
>       at <unknown class>.<unknown method>(Unknown Source)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)

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