【发布时间】:2011-06-22 17:11:22
【问题描述】:
我面临这个问题:我有一个循环以下内容的程序:
- 连接到 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 直到超时。有什么帮助吗?
【问题讨论】:
-
您可以使用其他客户端如 PGAdmin 访问它吗?服务器是可访问的?
-
每次迭代都打开和关闭连接的任何原因?
-
@Jigar Joshi 我可以在第一个 3xxx 连接上成功查询
-
@Vineet Reynolds 这只是一个模拟
标签: java postgresql jdbc