【发布时间】:2014-09-12 18:24:57
【问题描述】:
我已经使用 java RMI 有一段时间了,但我不知道 RMI 远程存根(在服务器端)是否是单例的?我问的原因是:
让我们假设调用链中较低的 RMI 实现方法之一具有同步方法。如果由于某种原因同步方法中的逻辑混乱(或挂起),将来的 RMI 调用(来自客户端)在尝试访问该同步方法时也会挂起。仅当 RMI 存根将成为单例时,这才成立。如果在每次来自客户端的远程调用时在服务器端创建一个新对象,这将不是问题,因为方法是从不同的对象调用的,同步方法将不再是问题。
长话短说。我试图了解 JVM 如何在服务器端内部维护 rmi 远程对象以及它们是否是单例的。我尝试了许多不同的 javadocs,但他们没有在任何地方明确提及这一点。
感谢所有帮助!
编辑 基于一些问题和 cmets,我正在细化这个问题:我真正的问题是,服务器端的 RMI 是否碰巧根据您导出和注册的对象保留某种对象池?您可以绑定多个具有相同名称的相同类型的对象(有点模拟一个对象池,RMI 可以在其中为我提供我注册的任何对象)或者为了拥有同一个对象的多个实例,我将不得不用不同的名字注册它们
【问题讨论】:
标签: java spring rmi remoteobject