多个客户端需要连接到本地HyperSQL 2.2.8并写入hsqldb

时间:2012-03-25 15:21:56

标签: hibernate hsqldb

我的要求是多个客户端需要连接到本地HyperSQL 2.2.8并写入。 还将有一个单独的客户端用于在同一台机器上查看。 因此需要将多个编写器客户端和一个读取器客户端连接到本地HyperSQL 2.2.8。 我正在使用hibernate从本地HyperSQL 2.2.8读取和写入。

我像这样运行hsldb作为服务器 java -cp ../lib/hsqldb.jar org.hsqldb.server.Server --database.0文件:mydb --dbname.0 xdb

我的问题是第一个客户端在连接时持有锁。 其他客户无法写信。

感谢您解决此问题的任何帮助。

由于 巴拉

2 个答案:

答案 0 :(得分:1)

启动服务器后,使用URL jdbc:hsqldb:hsq://localhost/xdb连接到服务器。如果阅读器客户端执行长时间运行的查询,则应使用MVCC或MVLOCKS事务模型创建数据库。请参阅指南:http://hsqldb.org/doc/2.0/guide/sessions-chapt.html#snc_tx_tx_cc

答案 1 :(得分:0)

您可以使用属性var miAjax = new Request({ type: "POST", url: "/multyWeb/actions/maintenance/mUpdateProductAction.php", contentType: "application/json" data: {'data':miJSON}, onSuccess: function(textoRespuesta){ console.log("ok");console.log(textoRespuesta); }, onFailure: function(){ console.log("fallo"); } }) miAjax.send(); (默认为hsqldb.lock_file=false

  

默认情况下,为每个打开以进行读写的文件数据库创建锁定文件。可以使用值false指定此属性以防止创建锁定文件。建议不要使用此用法,但在使用闪存类型存储时可能需要此用法。此属性适用于现有文件:数据库以及新数据库。

请参阅http://hsqldb.org/doc/guide/dbproperties-chapt.html