rmiregistry 或 JNDI 是否以序列化形式存储对象
Do the rmiregistry or JNDI store the object in serialized form
我了解到我可以使用 rmiregistry 或 JNDI 作为 RMI 的目录服务。据我了解,远程对象的存根已存储并与此类目录服务中的密钥相关联。
现在我的问题是,存根是以序列化形式存储还是作为 rmiregistry/JNDI 中的 "active" 对象存储?
如果序列化存储,分布式垃圾回收不会失败吗?
I read that I can use the rmiregistry or JNDI as a directory service for RMI.
不,你没有。您读到可以将注册表用作目录服务,并将 JNDI 用作它的 API。
As far as I understood, the stub for remote objects is stored and associated with a key in such a directory service.
正确。
Now my question is, is the stub stored in serialized form or as an "active" object in the rmiregistry/JNDI?
它被序列化到注册表并在到达时反序列化(解组)。在注册表中,它是一个普通的 Java 对象。
if it is stored serialized ...
不是。
JNDI确实和它没关系
RMI 注册表将远程对象存储为“活动”对象的原因是 RMI 注册表只是一个常规的 RMI 对象。它通过 java.rmi.registry.Registry
接口公开其操作,这是一个常规的 java.rmi.Remote
接口。
实际上与常规 RMI 对象有一个小区别 - RMI 注册表 gets exported 作为永久对象 - 它是一个内部选项,使对象不受分布式垃圾收集的影响。
我了解到我可以使用 rmiregistry 或 JNDI 作为 RMI 的目录服务。据我了解,远程对象的存根已存储并与此类目录服务中的密钥相关联。
现在我的问题是,存根是以序列化形式存储还是作为 rmiregistry/JNDI 中的 "active" 对象存储?
如果序列化存储,分布式垃圾回收不会失败吗?
I read that I can use the rmiregistry or JNDI as a directory service for RMI.
不,你没有。您读到可以将注册表用作目录服务,并将 JNDI 用作它的 API。
As far as I understood, the stub for remote objects is stored and associated with a key in such a directory service.
正确。
Now my question is, is the stub stored in serialized form or as an "active" object in the rmiregistry/JNDI?
它被序列化到注册表并在到达时反序列化(解组)。在注册表中,它是一个普通的 Java 对象。
if it is stored serialized ...
不是。
JNDI确实和它没关系
RMI 注册表将远程对象存储为“活动”对象的原因是 RMI 注册表只是一个常规的 RMI 对象。它通过 java.rmi.registry.Registry
接口公开其操作,这是一个常规的 java.rmi.Remote
接口。
实际上与常规 RMI 对象有一个小区别 - RMI 注册表 gets exported 作为永久对象 - 它是一个内部选项,使对象不受分布式垃圾收集的影响。