Derby Network Server - 接受来自多个主机的连接 - derby.drda.host

时间:2017-02-01 10:24:00

标签: java derby

Derby documentation

  

derby.drda.host =主机名

     

该属性侦听主机以获取网络连接,即接受   来自他们的联系。如果指定0.0.0.0,则来自任何连接   主持人被接受。

现在,我有三台远程计算机,hostAhostBhostC

  • 我的derby服务器正在hostA上运行。
  • 我希望德比服务器监听来自hostAhostBhostC
  • 的连接

所以,我写了

props.setProperty("derby.drda.host", "hostA hostB hostC");

然而,这不起作用。 还有其他方法吗?

修改

当我将属性设置为

props.setProperty("derby.drda.host" , "hostA");

然后hostBhostC 能够连接到服务器。他们低于例外

  

java.sql.SQLNonTransientConnectionException:java.net.ConnectException   :错误连接到端口8,888上的服务器hostA与消息   连接被拒绝:连接。

但是,当我将属性设置为

props.setProperty("derby.drda.host" , "0.0.0.0");

然后所有主机(hostAhostBhostC)都能够连接到服务器。

1 个答案:

答案 0 :(得分:1)

我相信你误解了这个属性的用途。如果您有多个网络接口,那么您可以告诉Derby服务器的哪个IP接受连接。 (许多服务器有多个网卡,或者同时连接到多个网络,因此有多个IP)。

默认设置0.0.0.0表示它应该接受在任何服务器的IP上请求的任何连接。如果您将此值设置为0.0.0.0以外的值,则只会侦听仅针对该IP的连接。

这并不限制基于 IP的客户端连接。

我相信您需要拥有以下内容:

System.setProperty("derby.drda.startNetworkServer", "true");

为了将Derby作为网络服务器启动(而不是仅仅在JVM中运行它,因为我认为默认行为是这样)。