Hi,

Today I found the problem. The Exception was a bit missleading, because it seemed to me, that derby tries to create the database at C:\db-derby-10.5.1.1-bin\bin\C:\myapp\db. At that location realy no such directory existed and I was wondering, why it tries to create the db at this location. Now it seems, that only path in the Exception message is wrong.

Derby realy tried to create the database at the *correct* location (C:\myapp\db). There an empty directory "db" already existed. I have not expcepted, that the empty directory could be a problem, but derby seems to insists on creating it's own directory and the creation of the database fails, if it can't do that.

Lesson learned: Make sure, derby can create it's database directory. Do not create your own database directory. Derby doesn't like that. Possible improvement: Make the Exception message more clear. Why does derby tell me, that it tries to create the database at "C:\db-derby-10.5.1.1-bin\bin\C:\myapp\db" instead of the correct location?


Damian

Am 30.12.09 18:58, schrieb Damian Hofmann:
Hi,

On a Windows Vista machine I get an SQLException, when my application is connecting to the derby network server. The Server runs on the same machine, as my application (localhost on port 1527).

The exception is:
java.sql.SQLException: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ041, SQLERRMC: Failed to create database 'C:\myapp\db', see the next exception for details.::SQLSTATE: XBM0JDirectory C:\db-derby-10.5.1.1-bin\bin\C:\myapp\db already exists.

The connection url looks like this:
jdbc:derby://127.0.1.1:1527/C:\myapp\db;create=true

It seems the Server is trying to create the database under C:\db-derby-10.5.1.1-bin\bin\C:\myapp\db what isn't the place i excepted the database to live. Derby is not only using the wrong place, but the directory also doesn't exist, contrary to the exceptions claim, that the directory is already there.

If I start the network server from a different working directory, the path before the second C:\ changes to the current working directory. So I belive, that this is actualy a problem with my derby server configuration, not with the my application.

The problem doesent' occur if I run the application on my Windows XP machine.

Any ideas, what causes the derby server to search for the database at the wrong place?

Thanks Damian



Here is the complete Stacktrace:

java.sql.SQLException: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ041, SQLERRMC: Failed to create database 'C:\verteilcenter\db\licenses', see the next exception for details.::SQLSTATE: XBM0JDirectory C:\Development\Galileo\SR1\eclipse\C:\verteilcenter\db\licenses already exists. at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
      at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
      at java.sql.DriverManager.getConnection(DriverManager.java:582)
      at java.sql.DriverManager.getConnection(DriverManager.java:154)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:111) at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339) at ag.leonardo.judocu.verteilcenter.model.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:37) at ag.leonardo.judocu.verteilcenter.model.util.HibernateUtil.<clinit>(HibernateUtil.java:29) at ag.leonardo.judocu.verteilcenter.model.ModelProvider.getSession(ModelProvider.java:104) at ag.leonardo.judocu.verteilcenter.model.ModelProvider.getBenutzerListe(ModelProvider.java:35) at ag.leonardo.judocu.verteilcenter.essentials.ui.editors.BenutzerEditor.createViewer(BenutzerEditor.java:156) at ag.leonardo.judocu.verteilcenter.essentials.ui.editors.BenutzerEditor.createControls(BenutzerEditor.java:103) at ag.leonardo.judocu.verteilcenter.essentials.ui.editors.BenutzerEditor.createPartControl(BenutzerEditor.java:73) at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:658) at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:429) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:594)
      at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:312)
at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:185) at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:265) at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:64) at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:478) at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1267) at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1220)
      at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1619)
      at org.eclipse.ui.internal.PartStack.add(PartStack.java:508)
      at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103)
      at org.eclipse.ui.internal.PartStack.add(PartStack.java:494)
      at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112)
at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:64) at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:217) at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:207) at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:782) at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:680) at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:640) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2716) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2630) at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2622) at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2574) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:66) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2569) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2553) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2536) at ag.leonardo.judocu.verteilcenter.essentials.ui.views.Navigation.selectionChanged(Navigation.java:120)
      at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:163)
      at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
      at org.eclipse.core.runtime.Platform.run(Platform.java:888)
      at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
      at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:161) at org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:2060) at org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredViewer.java:1136) at org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:1166) at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:223) at org.eclipse.jface.util.OpenStrategy.access$3(OpenStrategy.java:217) at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:394) at org.eclipse.swt.internal.widgets.UntypedEventAdapter.dispatchEvent(UntypedEventAdapter.java:594) at org.eclipse.swt.internal.widgets.UntypedEventAdapter.widgetSelected(UntypedEventAdapter.java:85) at org.eclipse.swt.events.SelectionEvent.dispatchToObserver(SelectionEvent.java:194) at org.eclipse.rwt.internal.events.Event.processEvent(Event.java:44) at org.eclipse.swt.events.TypedEvent.processEvent(TypedEvent.java:129) at org.eclipse.swt.events.TypedEvent.executeNext(TypedEvent.java:169) at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.readAndDispatch(RWTLifeCycle.java:240) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:981) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2396)
      at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2355)
      at org.eclipse.ui.internal.Workbench.access$5(Workbench.java:2206)
      at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:424)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.jface.internal.databinding.realmadapter.RealmAdapter.run(RealmAdapter.java:44) at org.eclipse.rap.ui.internal.RealmAdapterHook.runWithDefault(RealmAdapterHook.java:48) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:427) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:157) at ag.leonardo.judocu.verteilcenter.essentials.application.EntryPoint.createUI(EntryPoint.java:13) at org.eclipse.rwt.internal.lifecycle.EntryPointManager.createUI(EntryPointManager.java:92) at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:227) at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:115)
      at java.lang.Thread.run(Thread.java:619)
at org.eclipse.rwt.internal.lifecycle.UIThread.run(UIThread.java:80) Caused by: org.apache.derby.client.am.SqlException: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ041, SQLERRMC: Failed to create database 'C:\verteilcenter\db\licenses', see the next exception for details.::SQLSTATE: XBM0JDirectory C:\Development\Galileo\SR1\eclipse\C:\verteilcenter\db\licenses already exists. at org.apache.derby.client.am.Connection.completeSqlca(Unknown Source) at org.apache.derby.client.net.NetConnectionReply.parseRdbAccessFailed(Unknown Source) at org.apache.derby.client.net.NetConnectionReply.parseAccessRdbError(Unknown Source) at org.apache.derby.client.net.NetConnectionReply.parseACCRDBreply(Unknown Source) at org.apache.derby.client.net.NetConnectionReply.readAccessDatabase(Unknown Source) at org.apache.derby.client.net.NetConnection.readSecurityCheckAndAccessRdb(Unknown Source) at org.apache.derby.client.net.NetConnection.flowSecurityCheckAndAccessRdb(Unknown Source) at org.apache.derby.client.net.NetConnection.flowUSRIDONLconnect(Unknown Source) at org.apache.derby.client.net.NetConnection.flowConnect(Unknown Source)
      at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
at org.apache.derby.client.net.NetConnection40.<init>(Unknown Source) at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40.newNetConnection(Unknown Source)
      ... 80 more

Reply via email to