c3p0池不能建立连接。如何调试这个? [英] c3p0 pool cannot establish a coonection. How to debug this?
问题描述
我在服务器上安装了Tomcat和PostgreSQL。我有一个连接问题尝试从我的servlet连接到PostgreSQL数据库使用c3p0池。
I have a Tomcat and PostgreSQL installed on a server. I'm having a connection problem trying to connect from my servlet to PostgreSQL database using c3p0 pool.
如果我在我的笔记本电脑上本地运行Tomcat,我可以访问数据库。我也可以使用psql(即命令行sql实用程序)从服务器连接到数据库。但是当我试图部署我的servlet到服务器并建立连接时,我得到以下错误:
I can reach DB if I'm running Tomcat locally on my laptop. Also I can connect from server to DB using psql (i.e. command line sql utility). But when I'm trying to deploy my servlet to server and establish a connection I'm getting the following error:
java.sql.SQLException: Connections could not be acquired from the underlying database!
com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
...
com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1319)
com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
找到问题?这应该是一个微不足道的问题,但可能是由于上午4点我缺少的东西:)提前感谢!
What should I check to locate a problem? It should be a trivial issue but may be due to 4 a.m. I'm missing something :) Thanks in advance!
PS:从所有网络接口连接允许数据库。 PostgreSQL JDBC驱动程序和c3p0池分布在WAR中。 Tomcat配置是非常默认的。不使用JNDI。
PS: Connection from all network interfaces are allowed to database. PostgreSQL JDBC driver and c3p0 pool are distributed in WAR. Tomcat configuration is very default. JNDI is not used.
推荐答案
您需要检查以下几项内容:
You need to check a few things:
- java.policy其中tomcat使用
(例如
/etc/tomcat5.5/policy.d/02debian.policy) - db服务器设置(例如
/etc/postgresql/pg_hba.conf) - 尝试在不使用池的情况下首先连接为
在我的案例c3p0从我隐藏重要信息
这篇关于c3p0池不能建立连接。如何调试这个?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!