【发布时间】:2020-03-03 17:20:39
【问题描述】:
我正在测试我的应用程序,它从数据库中请求一些数据。如果数据库关闭并安装在本地主机上,我会立即得到Connection refused,但是当数据库在远程机器上运行时Connection timeout 会发生。有什么区别?
我正在使用 apache BasicDataSource 获取连接。
【问题讨论】:
标签: java database-connection apache-commons-dbcp
我正在测试我的应用程序,它从数据库中请求一些数据。如果数据库关闭并安装在本地主机上,我会立即得到Connection refused,但是当数据库在远程机器上运行时Connection timeout 会发生。有什么区别?
我正在使用 apache BasicDataSource 获取连接。
【问题讨论】:
标签: java database-connection apache-commons-dbcp
连接被拒绝意味着服务根本不可用。参考What can be the reasons of connection refused errors?帖子。
而Connection timeout 是必须在客户端和服务器之间建立连接的时间段。如果由于某种原因未建立,您的代码在重试后会引发此异常。 https://itstillworks.com/server-connection-timeout-mean-22703.html 可以给你一些见解。
本地主机与远程:
在远程机器上,机器充当代理,即机器正在运行,但底层服务无法通过网络访问。虽然在 localhost 上说 localhost:port is down 连接被立即拒绝并且没有尝试等待连接。(虽然如果你的机器已经启动了服务但连接建立不成功你会超时)
【讨论】: