【问题标题】:Do the rmiregistry or JNDI store the object in serialized formrmir​​egistry 或 JNDI 是否以序列化形式存储对象
【发布时间】:2017-01-06 22:57:21
【问题描述】:

我读到我可以使用 rmiregistry 或 JNDI 作为 RMI 的目录服务。据我了解,远程对象的存根被存储并与此类目录服务中的键相关联。

现在我的问题是,存根是以序列化形式存储还是作为 rmiregistry/JNDI 中的“活动”对象存储?

如果是序列化存储,分布式垃圾回收不会失败吗?

【问题讨论】:

    标签: java jndi rmi


    【解决方案1】:

    RMI 注册表将远程对象存储为“活动”对象的原因是 RMI 注册表只是一个常规 RMI 对象。它通过java.rmi.registry.Registry 接口公开其操作,这是一个常规的java.rmi.Remote 接口。

    实际上与常规 RMI 对象有一个小区别 - RMI 注册表gets exported 作为永久对象 - 它是一个内部选项,使对象不受分布式垃圾收集的影响。

    【讨论】:

      【解决方案2】:

      我了解到我可以使用 rmiregistry 或 JNDI 作为 RMI 的目录服务。

      不,你没有。您读到可以将 Registry 用作目录服务,并将 JNDI 用作它的 API。

      据我了解,远程对象的存根被存储并与此类目录服务中的键相关联。

      正确。

      现在我的问题是,存根是以序列化形式存储还是作为 rmiregistry/JNDI 中的“活动”对象存储?

      它被序列化到注册表并在到达时反序列化(解组)。在 Registry 中,它是一个普通的 Java 对象。

      如果是序列化存储的……

      不是。

      JNDI 真的与它无关。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-12
        • 1970-01-01
        • 2015-07-02
        • 1970-01-01
        相关资源
        最近更新 更多