ERROR XJ004: Database 'nevercreated' not found.
ij(CONNECTION0)> --
--   Licensed to the Apache Software Foundation (ASF) under one or more
--   contributor license agreements.  See the NOTICE file distributed with
--   this work for additional information regarding copyright ownership.
--   The ASF licenses this file to You under the Apache License, Version 2.0
--   (the "License"); you may not use this file except in compliance with
--   the License.  You may obtain a copy of the License at
--
--      http://www.apache.org/licenses/LICENSE-2.0
--
--   Unless required by applicable law or agreed to in writing, software
--   distributed under the License is distributed on an "AS IS" BASIS,
--   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--   See the License for the specific language governing permissions and
--   limitations under the License.
--
-- assumes the connection connOne is set up already
-- and that connThree, connFour failed to be setup correctly (bad URLs)

--disconnect connection created by ScriptTestCase 
show connections;
CONNECTION0* - 	jdbc:derby:wombat
CONNONE - 	jdbc:derby:wombat
* = current connection
WARNING 01J01: Database 'wombat' not created, connection made to existing database instead.
ij(CONNECTION0)> disconnect CONNECTION0;
ij> set connection connOne;
ij> -- expect connOne to be active
show connections;
CONNONE* - 	jdbc:derby:wombat
* = current connection
ij> connect 'jdbc:derby:lemming;create=true' as connTwo;
ij(CONNTWO)> set connection connOne;
ij(CONNONE)> values 1;
1          
-----------
1          
ij(CONNONE)> set connection connTwo;
ij(CONNTWO)> values 1;
1          
-----------
1          
ij(CONNTWO)> -- connThree doesn't exist, it failed at boot time
set connection connThree;
IJ ERROR: No connection exists with the name CONNTHREE
ij(CONNTWO)> -- connFour doesn't exist, it failed at boot time
set connection connFour;
IJ ERROR: No connection exists with the name CONNFOUR
ij(CONNTWO)> -- connTwo is still active
show connections;
CONNONE - 	jdbc:derby:wombat
CONNTWO* - 	jdbc:derby:lemming
* = current connection
ij(CONNTWO)> -- no such connection to disconnect
disconnect noName;
IJ ERROR: No connection exists with the name NONAME
ij(CONNTWO)> disconnect connOne;
ij> -- connOne no longer exists
set connection connOne;
IJ ERROR: No connection exists with the name CONNONE
ij> disconnect current;
ij> -- see no more connections to use
show connections;
No connections available.
ij> -- shutdown system
connect 'jdbc:derby:;shutdown=true';
ERROR XJ015: Derby system shutdown.
ij> 
