服务器之间的 RMI 超时但不是客户端

RMI Timeout between Servers but not for Client

我发现 this 问题,其中一个答案介绍了 JVM 参数 sun.rmi.transport.tcp.responseTimeout。我知道这是一个 obvious/stupid 问题,但有人可以详细解释一下如何设置它(通常我不设置这些 JVM 参数)。

无论如何,最重要的问题没有得到解决:我在分布式系统中引入了这个超时,因为我需要它来进行服务器之间的通信。换句话说,如果 Server1 调用 Server2 的远程方法并且超时已过,则 Server2 被 Server1 视为丢失。此超时时间比客户端认为服务器关闭时使用的超时时间短。

所以我需要两种不同的超时:一种用于服务器之间的 RMI,一种用于客户端到服务器。

您可以通过命令行或 System.setProperty(), 将其设置为在这种情况下将成为 RMI 客户端的任何 JVM,就像任何其他系统一样 属性。