3

我已经安装了SQL Workbench/J Build 118并登录了Liferay Portal的HSQL数据库。

然后我关闭了 SQL Workbench,而不对数据库进行任何更改。我重新启动了 Liferay tomcat 服务器,然后出现以下错误:

ERROR [localhost-startStop-1][DialectDetector:124] java.sql.SQLException:
Connections could not be acquired from the underlying database!

这个警告:

WARN  [C3P0PooledConnectionPoolManager[identityToken->3c8jofUN]-HelperThread-#4][BasicResourcePool:1851]
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@3249a129 --
Acquisition Attempt Failed!!! Clearing pending acquires.
While trying to acquire a needed new resource, we failed to succeed more than
the maximum number of allowed acquisition attempts (3).
Last acquisition attempt exception:
java.sql.SQLException: error in script file line: 
7 unexpected token: CONFLICT required: DEADLOCK

附言。我正在使用最新版本的 HSQL JDBC 驱动程序 (v.2.3.3)

4

2 回答 2

4

我通过更改文件中的这一行解决了这个问题%LIFERAY_DIR%/data/hsql/lportal.script

SET DATABASE TRANSACTION ROLLBACK ON CONFLICT TRUE

SET DATABASE TRANSACTION ROLLBACK ON DEADLOCK TRUE

然后我删除了这一行:

SET DATABASE SQL AVG SCALE 0

我成功启动了服务器。

于 2015-11-25T11:01:03.567 回答
1

Liferay 中的 hsql 非常适合快速演示。对于超出此范围的任何内容,我建议使用单独的数据库。对于 MySql 和 Postgresql,有两个现成的免费选项可供使用。hsql 存储在一个文件中,我不确定向后兼容性(如果您的工作台使用与 Liferay 不同的驱动程序版本)并且两个进程无法同时访问一个文件。

当然,您也可以将 hsql 作为服务器应用程序操作,但恕我直言,这将其延伸得太远了。只需安装适当的数据库,您就拥有了所需的所有工具。今天的计算机没有真正的开销。

于 2015-11-26T08:02:56.113 回答