java.sql.SQLException:无法从底层数据库获取连接! — HSQLDB
Posted
技术标签:
【中文标题】java.sql.SQLException:无法从底层数据库获取连接! — HSQLDB【英文标题】:java.sql.SQLException: Connections could not be acquired from the underlying database! — HSQLDB 【发布时间】:2015-11-25 09:58:28 【问题描述】:我已经安装了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 Driver (v.2.3.3)
【问题讨论】:
【参考方案1】:我通过更改%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
而且我成功启动了服务器。
【讨论】:
【参考方案2】:Liferay 中的 hsql 非常适合快速演示。对于超出此范围的任何内容,我建议使用单独的数据库。对于 mysql 和 Postgresql,有两个现成的免费选项。 hsql 存储在一个文件中,我不确定向后兼容性(如果您的工作台使用与 Liferay 不同的驱动程序版本)并且两个进程无法同时访问一个文件。
当然,您也可以将 hsql 作为服务器应用程序来操作,但恕我直言,这太过分了。只需安装一个适当的数据库,您就拥有了所需的所有工具。今天的计算机没有真正的开销。
【讨论】:
以上是关于java.sql.SQLException:无法从底层数据库获取连接! — HSQLDB的主要内容,如果未能解决你的问题,请参考以下文章
java跑一段时间后就报:Caused by: java.sql.SQLException: 无法从套接字读取更多的数据。
Bug解决:获取JDBC连接失败;嵌套异常是java.sql.SQLException:无法从底层数据库获取连接
大神们 无法获取JDBC连接,嵌套异常java.sql.SQLException:连接无法从基础数据库中获得! 怎么具体解决??
高分求解,急!!!Java连接Oracle10g 问题 java.sql.SQLException: 无法从套接字读取更多的数据