使用hsqldb进行数据库锁定获取失败

时间:2014-10-21 00:42:32

标签: java jdbc hsqldb

我使用此JDBC URL将其作为进程内连接运行:

jdbc:hsqldb:file:C:\ Program Files \ 360Works \ SyncData2_MirrorSync \ Configurations \ 3d0c6a29-294b-4a24-b075-70302345fdb5 \ mirrorsync

即使在完全重新启动计算机后,我也收到此错误:

java.util.concurrent.ExecutionException:java.sql.SQLException:数据库锁获取失败:lockFile:org.hsqldb.persist.LockFile@e27ecaee [file = C:\ Program Files \ 360Works \ SyncData2_MirrorSync \ Configurations \ 3d0c6a29- 294b-4a24-b075-70302345fdb5 \ mirrorsync.lck,exists = true,locked = false,valid = false,]方法:checkMagic magic:' 0000000000000000'

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

我通过手动删除错误消息引用的.lck文件来解决问题。

答案 1 :(得分:1)

添加流动属性 hsqldb.lock_file = FALSE;

例如 hsqldb.lock_file = FALSE; hsqldb.sqllog = 3;关闭= TRUE; syntax_ora =真

答案 2 :(得分:1)

您可以通过以下方式访问已锁定的HSQLDB数据库:

1-更新Picasso.get().load(image).fit().centerCrop().into(holder.imageView); 文件并添加:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re

p = re.compile(r'(\s?\{\w*\}[\s_]*(\{([|]*|[>]*)\})?)')
s = "{asctime} _{|} {level} _{|} {name} __{>>} {message}"

new_s = "\n".join([x[0] for x in re.findall(p, s)])

2-或删除my-db-name.properties文件。

3-或使用传递属性作为参数连接到数据库:

hsqldb.lock_file=false

可以在此处找到其他HSQLDB数据库参数,但是请注意,第一次之后只能更新其中的几个。 http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html