错误数据库锁定获取失败(嵌入hsqldb的Hibernate)

时间:2013-09-02 18:11:35

标签: java hibernate netbeans hsqldb

我尝试使用嵌入式hsqldb运行此示例Hibernate annotation (这是我第一次尝试使用嵌入式数据库)

所以这是我的hibernate conf文件:

<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="hibernate.connection.url">
jdbc:hsqldb:C:\Users\Desktop\testdb</property>
<property name="connection.pool_size">1</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">create</property>


这是日志文件:

run:
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.annotations.Version <clinit>
Infos: Hibernate Annotations 3.3.1.GA
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Environment <clinit>
Infos: Hibernate 3.2.5
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Environment <clinit>
Infos: hibernate.properties not found
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Environment buildBytecodeProvider
Infos: Bytecode provider name : cglib
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Environment <clinit>
Infos: using JDK 1.4 java.sql.Timestamp handling
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Configuration configure
Infos: configuring from resource: /hibernate.cfg.xml
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Configuration getConfigurationInputStream
Infos: Configuration resource: /hibernate.cfg.xml
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.Configuration doConfigure
Infos: Configured SessionFactory: null
sept. 02, 2013 6:55:11 PM org.hibernate.cfg.AnnotationConfiguration addPackage
Infos: Mapping package model
sept. 02, 2013 6:55:12 PM org.hibernate.cfg.AnnotationBinder bindPackage
Avertissement: Package not found or wo package-info.java: model
sept. 02, 2013 6:55:12 PM org.hibernate.cfg.AnnotationBinder bindClass
Infos: Binding entity from annotated class: model.City
sept. 02, 2013 6:55:12 PM org.hibernate.cfg.annotations.EntityBinder bindTable
Infos: Bind entity model.City on table City
sept. 02, 2013 6:55:12 PM org.hibernate.cfg.AnnotationConfiguration secondPassCompile
Infos: Hibernate Validator not found: ignoring
sept. 02, 2013 6:55:12 PM org.hibernate.connection.DriverManagerConnectionProvider       configure
Infos: Using Hibernate built-in connection pool (not for production use!)
sept. 02, 2013 6:55:12 PM org.hibernate.connection.DriverManagerConnectionProvider configure
 Infos: Hibernate connection pool size: 1
 sept. 02, 2013 6:55:12 PM org.hibernate.connection.DriverManagerConnectionProvider configure
 Infos: autocommit mode: false
 sept. 02, 2013 6:55:12 PM org.hibernate.connection.DriverManagerConnectionProvider configure
 Infos: using driver: org.hsqldb.jdbcDriver at URL:     jdbc:hsqldb:C:\Users\nbouhlel\Desktop\testdb
 sept. 02, 2013 6:55:12 PM org.hibernate.connection.DriverManagerConnectionProvider configure
 Infos: connection properties: {}
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Avertissement: Could not obtain connection metadata
 java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@887efe65[file =C:\Users\Desktop\testdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2013-09-02 17:55:22 heartbeat - read: -5767 ms.
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:190)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at cityproject.HibernateUtil.<clinit>(HibernateUtil.java:16)
at cityproject.CityDAO.saveCity(CityDAO.java:20)
at cityproject.CityProject.main(CityProject.java:21)
    Caused by: org.hsqldb.HsqlException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@887efe65[file =C:\Users\Desktop\testdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2013-09-02 17:55:22 heartbeat - read: -5767 ms.
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.persist.LockFile.newLockFileLock(Unknown Source)
at org.hsqldb.persist.Logger.acquireLock(Unknown Source)
at org.hsqldb.persist.Logger.open(Unknown Source)
at org.hsqldb.Database.reopen(Unknown Source)
at org.hsqldb.Database.open(Unknown Source)
at org.hsqldb.DatabaseManager.getDatabase(Unknown Source)
at org.hsqldb.DatabaseManager.newSession(Unknown Source)
... 13 more

  sept. 02, 2013 6:55:23 PM org.hibernate.dialect.Dialect <init>
  Infos: Using dialect: org.hibernate.dialect.HSQLDialect
  sept. 02, 2013 6:55:23 PM org.hibernate.transaction.TransactionFactoryFactory  buildTransactionFactory
  Infos: Using default transaction strategy (direct JDBC transactions)
  sept. 02, 2013 6:55:23 PM org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
  Infos: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Automatic flush during beforeCompletion(): disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Automatic session close at end of transaction: disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Scrollable result sets: disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: JDBC3 getGeneratedKeys(): disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Connection release mode: auto
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Default batch fetch size: 1
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Generate SQL with comments: disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Order SQL updates by primary key: disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Order SQL inserts for batching: disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory  createQueryTranslatorFactory
 Infos: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
 sept. 02, 2013 6:55:23 PM org.hibernate.hql.ast.ASTQueryTranslatorFactory <init>
 Infos: Using ASTQueryTranslatorFactory
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Query language substitutions: {}
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: JPA-QL strict compliance: disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Second-level cache: enabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Query cache: disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory createCacheProvider
 Infos: Cache provider: org.hibernate.cache.NoCacheProvider
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Optimize cache for minimal puts: disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Structured second-level cache entries: disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Echoing all SQL to stdout
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Statistics: disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Deleted entity synthetic identifier rollback: disabled
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Default entity-mode: pojo
 sept. 02, 2013 6:55:23 PM org.hibernate.cfg.SettingsFactory buildSettings
 Infos: Named query checking : enabled
 sept. 02, 2013 6:55:23 PM org.hibernate.impl.SessionFactoryImpl <init>
 Infos: building session factory
 sept. 02, 2013 6:55:23 PM org.hibernate.impl.SessionFactoryObjectFactory addInstance
 Infos: Not binding factory to JNDI, no JNDI name configured
 sept. 02, 2013 6:55:23 PM org.hibernate.tool.hbm2ddl.SchemaExport execute
 Infos: Running hbm2ddl schema export
 sept. 02, 2013 6:55:23 PM org.hibernate.tool.hbm2ddl.SchemaExport execute
 Infos: exporting generated schema to database
 sept. 02, 2013 6:55:34 PM org.hibernate.tool.hbm2ddl.SchemaExport execute
 Grave: schema export unsuccessful
 java.sql.SQLException: Database lock acquisition failure: lockFile:  org.hsqldb.persist.LockFile@887efe65[file =C:\Users\Desktop\testdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2013-09-02 17:55:33 heartbea t - read: -6635 ms.
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:190)
at  org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
at   org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:27)
at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:180)
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:133)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:311)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at cityproject.HibernateUtil.<clinit>(HibernateUtil.java:16)
at cityproject.CityDAO.saveCity(CityDAO.java:20)
at cityproject.CityProject.main(CityProject.java:21)
    Caused by: org.hsqldb.HsqlException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@887efe65[file =C:\Users\Desktop\testdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2013-09-02 17:55:33 heartbeat - read: -6635 ms.
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.persist.LockFile.newLockFileLock(Unknown Source)
at org.hsqldb.persist.Logger.acquireLock(Unknown Source)
at org.hsqldb.persist.Logger.open(Unknown Source)
at org.hsqldb.Database.reopen(Unknown Source)
at org.hsqldb.Database.open(Unknown Source)
at org.hsqldb.DatabaseManager.getDatabase(Unknown Source)
at org.hsqldb.DatabaseManager.newSession(Unknown Source)
... 15 more

    sept. 02, 2013 6:55:44 PM org.hibernate.util.JDBCExceptionReporter logExceptions
    Avertissement: SQL Error: -451, SQLState: S1000
    sept. 02, 2013 6:55:44 PM org.hibernate.util.JDBCExceptionReporter logExceptions
    Grave: Database lock acquisition failure: lockFile:    org.hsqldb.persist.LockFile@887efe65[file =C:\Users\Desktop\testdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2013-09-02 17:55:43 heartbeat - read: -6979 ms.
    Exception in thread "main" java.lang.NullPointerException
at cityproject.CityDAO.saveCity(CityDAO.java:30)
at cityproject.CityProject.main(CityProject.java:21)
    Java Result: 1

我使用netbeans IDE

我无法确定问题的确切位置

1 个答案:

答案 0 :(得分:1)

如果进程同时运行两次,则会发生这种情况。首先关闭Java进程并删除数据库文件。然后检查重复的过程。