c3p0池无法建立连接。如何调试呢? [英] c3p0 pool cannot establish a connection. How to debug this?

查看:140
本文介绍了c3p0池无法建立连接。如何调试呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在服务器上安装了Tomcat和PostgreSQL。尝试使用c3p0池从servlet连接到PostgreSQL数据库时遇到连接问题。

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)

我应该检查什么找到问题了?

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:允许所有网络接口的连接到数据库,这是一个小问题,但可能是由于凌晨4点我缺少了一些东西:) 。 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.

推荐答案

您需要检查一些事情:

    $ b Tomcat正在使用
    的$ b
  1. java.policy(例如
    /etc/tomcat5.5/policy.d/02debian.policy)

  2. db服务器设置(例如
    /etc/postgresql/pg_hba.conf)

  3. 尝试先在没有池的情况下连接,因为在我的情况下
    在c3p0中向我隐藏了重要信息

  1. java.policy which tomcat is using (e.g. /etc/tomcat5.5/policy.d/02debian.policy)
  2. db server settings (e.g. /etc/postgresql/pg_hba.conf)
  3. try connecting without pool first as in my case c3p0 was hiding important information from me

这篇关于c3p0池无法建立连接。如何调试呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆