Java 获得;“连接超时”;而不是",;“拒绝连接”;

Java 获得;“连接超时”;而不是",;“拒绝连接”;,java,database-connection,apache-commons-dbcp,Java,Database Connection,Apache Commons Dbcp,我正在测试我的应用程序,它从数据库中请求一些数据。如果数据库关闭并安装在本地主机上,我会立即连接被拒绝,但当数据库在远程计算机上运行时,连接超时会发生。有什么区别? 我正在使用apacheBasicDataSource获取连接。连接被拒绝意味着服务根本不可用。参考帖子 而连接超时是必须在客户端和服务器之间建立连接的时间段。如果由于某种原因没有建立,代码在重试后会抛出此异常。可以给你一些见解 本地主机与远程主机: 在远程机器上,机器充当代理,即机器正在运行,但无法通过网络访问底层服务。在local

我正在测试我的应用程序,它从数据库中请求一些数据。如果数据库关闭并安装在本地主机上,我会立即
连接被拒绝
,但当数据库在远程计算机上运行时,
连接超时
会发生。有什么区别?
我正在使用apache
BasicDataSource
获取连接。

连接被拒绝意味着服务根本不可用。参考帖子

连接超时
是必须在客户端和服务器之间建立连接的时间段。如果由于某种原因没有建立,代码在重试后会抛出此异常。可以给你一些见解

本地主机与远程主机:


在远程机器上,机器充当代理,即机器正在运行,但无法通过网络访问底层服务。在localhost上说localhost:port is down时,立即拒绝连接,并且没有尝试等待连接。(虽然如果您的计算机已启动服务,但连接建立不成功,您将获得超时)

感谢您的回答@Vinay Prajapati!但我仍然不明白为什么在相似的情况下错误是不同的?代码是相同的,数据库的两个实例都是相同的,并且类似地关闭。问题更多的是“当本地主机和远程计算机上的数据库都关闭时,为什么连接到它们时会出现不同的错误?”这与本地和远程无关。最有可能的原因是防火墙没有打开端口。