2013-06-12 2 views
0

Я пытаюсь использовать Firebird поместить его DB вместе с Hibernate, но я получаю следующее сообщение об ошибке при попытке создать базу данных:Embeded Firebird Database и Hibernate

Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544344. I/O error during "CreateFile (open)" operation for file "D:\DB\FIREBIRD.FDB" 
Error while trying to open file 
null 
    at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:123) 
    at org.firebirdsql.jdbc.AbstractDriver.connect(AbstractDriver.java:126) 
    at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:204) 
    at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:292) 
    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:214) 
    ... 32 more 
Caused by: org.firebirdsql.gds.GDSException: I/O error during "CreateFile (open)" operation for file "D:\DB\FIREBIRD.FDB" 
Error while trying to open file 
null 
    at org.firebirdsql.gds.impl.jni.JniGDSImpl.native_isc_attach_database(Native Method) 
    at org.firebirdsql.gds.impl.jni.BaseGDSImpl.iscAttachDatabase(BaseGDSImpl.java:158) 
    at org.firebirdsql.jca.FBManagedConnection.<init>(FBManagedConnection.java:105) 
    at org.firebirdsql.jca.FBManagedConnectionFactory.createManagedConnection(FBManagedConnectionFactory.java:490) 
    at org.firebirdsql.jca.FBStandAloneConnectionManager.allocateConnection(FBStandAloneConnectionManager.java:69) 
    at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:120) 
    ... 36 more 

То, что я не сделал до сих пор:

  1. Я установил конфигурацию спящего режима.
    Драйвер = "org.firebirdsql.jdbc.FBDriver",
    Диалект = "org.hibernate.dialect.FirebirdDialect",
    URL = "JDBC: firebirdsql: встроенные D: \ DB \ FIREBIRD.FDB",

  2. Я добавил jaybird-full jar к моему пути к классам.

  3. Я добавил jaybird22.dll, fbembed.dll (вся папка) на моем пути.

Библиотеки DLL, кажется, должны быть загружены, так как если я удалить DLL, я получаю и исключения говорили мне, что jaybird22.dll не может быть найден.

Любая идея, что может быть неправильным?

+0

Я предполагаю, что D: \ DB существует и у вас есть разрешение на создание в нем файлы. Попробуйте jdbc: firebirdsql: embedded: D: /DB/FIREBIRD.FDB. Вы можете использовать базу данных без использования спящего режима? – BevynQ

ответ

1

Кажется шаг я пропускал создавал файл базы данных вручную:

FBManager manager = new FBManager(GDSType.getType("EMBEDDED")); 
manager.start(); 
manager.createDatabase(myDbFile, username, password); 
manager.stop(); 
Смежные вопросы