Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
10.7.1.1
-
None
-
System: OS/400 V7R1M0 on PowerPC; JVM: IBM J9 VM 2.4 (consistently reproducible).
But also: Windows 2008 R2 on VMWare and Windows 7 64 bit with Sun VM (1.6) too (but not as consistently reproducible)
-
Patch Available
-
Seen in production
Description
A process starts derby as network server (new NetworkServerControl, start) and waits for derby to respond (retry ping until success). After the server has started, the same process makes a connection with DriverManager.getConnection().
The first time this process runs, this will always fail with "SQLNonTransientConnectionException: The connection was refused because the database Flows;create=true was not found." However, at the same time, "derby.log" and "Flows" directory are created in the derby home. The "Flows" directory contains "log", "seg0", "tmp", "db.lck", "service.properties", etc ...
The second time the process is started, the connection will succeed and the "Flows" database can be used successfully. From now on, every start will be successful. After cleaning the derby home directory, you get the exception again after the first start.
The attachment contains a Java program (DerbyGetConnection.java) that reproduces this problem consistently on our OS/400 V7R1M0 with IBM J9 VM. Probably this may happen on other systems too (Win7), but we were unable to reproduce it there (on my machine with Win7, this same program ran successful every run; might be a threading or I/O issue that occurs easily on slower hardware?).
The attachment contains also derby tracing ("derby.drda.traceAll") and logging/tracing of the DriverManager.
Attachments
Attachments
Issue Links
- is related to
-
DERBY-4149 test failure in jdbcapi.InternationalConnectSimpleDSTest fixture testSimpleDSConnect on IBM iseries - Database '?' not found.
- Closed