使用RMI检测服务器崩溃

时间:2010-11-20 06:56:18

标签: java rmi

我是Java和RMI的新手,但我正在尝试编写我的应用程序,以便有许多客户端连接到单个服务器。到目前为止,这太好了....

但是当我关闭服务器(模拟崩溃或通信问题)时,我的客户端仍然不知道,直到我下次调用服务器。要求我的客户在没有服务器的情况下继续以“离线模式”工作,我越早知道我离线越好用户体验。

是否存在一个活动连接仍然打开,客户端可以检测到问题或类似问题 - 或者我只需要等到下一次调用失败?我想我可以对服务器进行“健康检查”,但似乎这可能不是最佳方法。

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

实际上我只是想了解更多有关RMI和CORBA的信息,但我并没有那么远。我所知道的是,这些系统也是为了便宜而制造,据我所知,有源连接是一件昂贵的事情。

我建议你使用你的服务器以某种方式发送的多播地址“我还在这里”但不使用TCP连接,UDP应该足够用于此目的并且效率更高。

答案 1 :(得分:1)

当我编写RMI应用程序(单一分配)时,我对此进行了一些研究,但我没有遇到任何内置功能来测试远程系统是否存在。我只想使用UDP心跳机制。

答案 2 :(得分:1)

(未测试)。对服务器进行单独的RMI调用,只需要“等待X秒”然后返回,应该告诉服务器关闭时执行失败。