2015-11-25 42 views
2

我已經安裝了SQL Workbench/J Build 118,我登錄了HSQL數據庫的Liferay Portaljava.sql.SQLException:無法從底層數據庫獲取連接! - HSQLDB

然後,我關閉了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$ScatteredAcquireT[email protected] -- 
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 

PS。我使用的是最新版本的HSQL JDBC驅動程序(v.2.3.3)

回答

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 

我開始服務器成功充分。

+0

它正在工作。但爲什麼? – hutingung

1

Liferay中的hsql非常適合快速演示。對於超出此範圍的任何事情,我建議一個單獨的數據庫。有了MySql和Postgresql,有兩個可用的免費選項。 hsql存儲在一個文件中,我不確定向後兼容性(如果您的工作臺使用與Liferay不同的驅動程序版本),並且兩個進程無法同時訪問一個文件。當然,你也可以將hsql作爲一個服務器應用程序來運行,但是恕我直言,這會讓它延伸得太遠。只需安裝一個合適的數據庫,並擁有所需的所有工具。今天的電腦沒有真正的開銷。