java.sql.SQLException: 无法从底层数据库获取连接! — HSQLDB
java.sql.SQLException: Connections could not be acquired from the underlying database! — HSQLDB
我已经安装了 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
ps。我正在使用最新版本的 HSQL JDBC 驱动程序 (v.2.3.3)
我通过更改 %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
并且我成功启动了服务器。
Liferay 中的 hsql 非常适合快速演示。对于超出此范围的任何事情,我建议使用一个单独的数据库。对于 MySql 和 Postgresql,有两个免费选项随时可用。 hsql 存储在一个文件中,我不确定向后兼容性(以防你的 workbench 使用与 Liferay 不同的驱动程序版本)并且两个进程不能同时访问一个文件。
当然,您也可以将 hsql 作为服务器应用程序运行,但恕我直言,那样做就太过分了。只需安装一个合适的数据库,您就拥有了所需的所有工具。今天的计算机没有真正的开销。
我已经安装了 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
ps。我正在使用最新版本的 HSQL JDBC 驱动程序 (v.2.3.3)
我通过更改 %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
并且我成功启动了服务器。
Liferay 中的 hsql 非常适合快速演示。对于超出此范围的任何事情,我建议使用一个单独的数据库。对于 MySql 和 Postgresql,有两个免费选项随时可用。 hsql 存储在一个文件中,我不确定向后兼容性(以防你的 workbench 使用与 Liferay 不同的驱动程序版本)并且两个进程不能同时访问一个文件。
当然,您也可以将 hsql 作为服务器应用程序运行,但恕我直言,那样做就太过分了。只需安装一个合适的数据库,您就拥有了所需的所有工具。今天的计算机没有真正的开销。