Thanks for link on the maven info.

I tried a workaround by not using the embedded version of derby for my tests. So I started up a network server of derby that is running inside JBoss and access it via the db2jcc drivers. So the build script worked without a problem. It was able to connect twice to the network server. Which is not supprising, since it is a standard scenario. But it showed me that the build script is working fine.

Beside this I just fixed another incompatiblity between Windows and Linux in another piece of software of us. The problem arised out of the fact, that the interaction between locks and channels in the Java NIO package is different on Windows than on Linux. On Linux the locks are handled on a per OS process/JVM level. So that when I open a channel on a file on Linux and lock this file, another channel in the *same* OS process/JVM is still able to access the file. While under Windows the second channel would receive an exception because this file is locked by the first channel, even it is running in the *same* JVM.

I could guess that there is something similar inside derby. Since derby is locking the db-file when the DBMS is started. So I could imagine that when I access the derby db the second time a second channel is opened, and there are still locks around of the first channel that is used during the first time. Which results in a exception that is than translated to the error "Failed to start database" on windows.And on Linux it would work perfectly fine.

Well it's just a guess and I'm not familiar with the architecture of derby to go through the source code to verify this possiblity.

Does anybody have experience with a similar scenario?

Thanks

Thomas



[EMAIL PROTECTED] wrote:

This doesn't address why you get the failure on Windows and not on Linux. But I searched for "maven" on the derby lists and found the instructions Jeremy posted in December on using derby from maven:

http://mail-archives.apache.org/eyebrowse/[EMAIL PROTECTED]&msgId=2033145

I wonder if eliminating one moving part from your scenario might help isolate the actual problem.

-jean


Thomas Neumann wrote:



Hello,

since I had problems with our local mailer daemon to confirm my subscription to the derby mailing list I do not know if this mail was send to the other list members. So this actually the second trial to send this mail. Sorry for any inconvenience if you have received this mail twice.

I have a problem with the embedded Cloudscape/Derby version on Windows
in my maven build script. This build script uses the maven hibernate
plug in to create the dbms. The connection URL for the db is
jdbc:derby:db/derby/dmstest;create=true
This works fine. Afterwards when the schema creation is finished in a
second step unit tests should run on this db using the same connection
URL. They fail with the following exception.

Caused by: SQL Exception: Failed to start database 'db/derby/dmstest',
see the next exception for details.
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java)
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java)
at
org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(EmbedConnection.java)


at
org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(EmbedConnection.java)


at org.apache.derby.impl.jdbc.EmbedConnection.(EmbedConnection.java)
at org.apache.derby.impl.jdbc.EmbedConnection20.(EmbedConnection20.java)
at org.apache.derby.impl.jdbc.EmbedConnection30.(EmbedConnection30.java)
at org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Driver30.java)
at org.apache.derby.jdbc.Driver169.connect(Driver169.java)
at org.apache.derby.jdbc.EmbeddedDriver.connect(EmbeddedDriver.java)
at org.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java:342)


This is the same exception as if a second JVM is running with an
embedded Cloudscape/Derby instance in it already accessing the same
database. But I sware there is no second JVM running.

Another curiosity on this, the same build script is running on a linux
box without any problems.

I'm using windows xp pro, JDK 1.4.2-06 and Cloudscape/Derby 10 for this
scenario

Can anybody give me a hint or knows a workaround for this problem?

Thanks in advance










Reply via email to