连接到远程postgresql数据库时的连接超时

时间:2011-06-22 09:03:56

标签: java postgresql jdbc

我遇到了这个问题:我有一个循环以下程序:

  • 连接到postgresql数据库
  • 打印计数
  • 关闭连接

代码如下:

int i = 0;
    while(true){

        IConnection conn = ((ConnectionHelper)HelperFactory.getInstance().getHelper("ConnectionHelper")).getConnection("psql");

        if(conn != null && conn.connect()){
            conn.close();
            System.out.println(i++);
        }
    }

我通过jdbc连接到psql db,如下所示:

DriverManager.getConnection("jdbc:postgresql://" + host + ":5432/" + database, 
                                            user, password);

如果conn.connect()可以成功连接到数据库,则返回true (经过测试,我可以从中检索数据)

但我得到以下结果:

0 1 2 。 。 。 3919 3920 3921 3922

org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:136)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125)
    at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
    at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
    at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:30)
    at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
    at org.postgresql.Driver.makeConnection(Driver.java:393)
    at org.postgresql.Driver.connect(Driver.java:267)

在最后一个循环中,程序在尝试连接到psql直到超时时停留。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

与运行postgres的异常消息主机或/和端口相关的不等于您放入连接地址的主机或/和端口,检查它并发现问题。


是的,您的服务器无法访问,某些火器等等,请检查它。