问题标签 [distributed-objects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
445 浏览

java - RMI 通信期间单例类的序列化

当我在阅读 readResolve 方法的解释时,许多参考资料解释说,当单例类被反序列化而该类的对象被序列化并通过 RMI 传输时,此方法将有助于保证单例属性。

现在我的问题是当 RMI 调用发生时,单例类对象将通过不同的 JVM(具有不同的类加载器)传输,因此在反序列化之后,我们将有另一个单例类实例(在不同的 JVM 中)。我对吗 ?

那么在 RMI 调用的上下文中,实现 readResolve 方法有什么用?

0 投票
1 回答
196 浏览

macos - NSSocketPortNameServer portForName:host: 小牛慢

使用 Mavericks[NSSocketPortNameServer portForName:host:]现在需要大约 5 秒来解析 localhost。它过去要快得多,大约 0.01 秒。

我的代码与Apple 的 Introduction to Distributed Objects中的代码相同。

我曾经能够在不到 0.1 秒的时间内启动一个子进程并连接到它。 我的文件管理器运行多个子进程,因此目前在 Mavericks 上已失效。该应用程序没有沙盒化。

我不明白为什么[NSSocketPortNameServer portForName:host:]需要这么长时间。也许我做错了什么。

任何建议非常感谢?


服务器代码

运行大约需要 0.1 秒。


连接到服务器的客户端代码

这在小牛队需要 5 秒。

这在 Mountain Lion 和 Lion 上需要大约 0.1 秒。

我也试过用nil,像这样[[NSSocketPortNameServer sharedInstance] portForName:name host:nil]。它没有任何区别。

如果我使连接无效并尝试再次连接,那么[[NSSocketPortNameServer sharedInstance] portForName:name host:nil]也需要 5 秒。


这可能是什么原因造成的

当我使用 转储 DNS 配置时scutil --dns,我看到本地域有 5 秒超时。我怀疑这个超时时间在小牛队之前被设置为 0 秒。我不能要求所有用户都重置这个超时,所以我会继续调查在 Mavericks 上应该做些什么来避免这个超时。

0 投票
1 回答
598 浏览

java - 在CORBA中实现分布式对象编程以下载文件

当我运行客户端时,控制台上出现以下错误。

我正在关注以下链接中的示例-> http://www.oracle.com/technetwork/articles/javase/rmi-corba-136641.html

有没有人遇到过类似的问题。请帮忙。

客户端控制台:

0 投票
1 回答
1146 浏览

java - CORBA 示例使用不同的 JDK

当前 CORBA 示例来自http://www.oracle.com/technetwork/articles/javase/rmi-corba-136641.html

使用不同的 JDK 版本。我正在使用 JDK 1.7

所以问题是我已经扩展了类extends FileInterfacePOA而不是extends _FileInterfaceImplBase

所以现在我在服务器代码中遇到错误,我使用什么来代替函数.connect().rebind().

服务器代码是:

接口代码为:

0 投票
1 回答
67 浏览

cocoa - 通过分布式对象发送对象而不是代理

我无法解决下一个问题:我有 2 个使用分布式对象相互通信的应用程序。假设应用程序 A- (void)updateState:(State *)state从应用程序 B 调用方法。
@interface State : NSObject <NSCopying, NSCoding>...
updateState:在 B 应用程序中调用方法时,我NSDistantObject代表发送的对象而不是State对象。在周五的问答中,我发现如果对象符合NSCoding协议,则应该“发送”对象而不是代理,但是,我仍然收到代理。我在 Apple 文档中找不到任何有关它的信息。也许有人确实知道我如何发送对象而不是代理以及分布式对象系统如何决定何时序列化和发送对象以及何时代理?

0 投票
1 回答
663 浏览

objective-c - NSConnection - 如何正确地“取消”对象?

对于 Mac OSX,我正在尝试使用 NSConnection 代理从一个应用程序实例到同一主机上的另一个应用程序实例的对象访问。相关代码如下。如果需要,我可以提供更多。假设当我说“服务器”时,我指的是实际使用 NSConnection 来“销售”对象的应用程序。而“客户端”是获得代理的同一应用程序的另一个实例。

一切正常,除了两个问题。

  1. 当充当服务器的应用程序试图拆除它正在出售的对象时,任何通过代理连接的客户端仍然存在。也就是说,即使在我调用stopLocalServer下面的函数之后,之前连接并获得代理对象的任何客户端应用程序仍然能够发送消息并调用服务器应用程序上的代码。我本来希望客户端在服务器调用后传递消息时抛出异常NSConnection:invalidate。如何在不需要服务器进程退出的情况下强制断开任何客户端?

  2. 在下面的startClientConnection代码中,如果服务器从一开始就没有使用预期的注册名称出售对象,那么客户端上的调用NSConnection:connectionWithRegisteredName:host将立即返回 nil。这很好。但是,如果服务器通过startLocalServer下面的代码开始出售一个对象,然后用 停止出售它stopLocalServer,随后的客户端连接尝试将挂起(永远阻塞),直到服务器应用程序进程退出。对 NSConnection:connectionWithRegisteredName 的调用返回一个非零对象,但对 的调用[_clientConnection rootProxy]将永远挂起,直到服务器应用程序实际退出。

我怀疑我没有正确地拆除原始的 NSConnection 对象,或者我在这里遗漏了一些基本的东西。

以下是我的用户界面代码所在平台的一些相关代码:

0 投票
1 回答
753 浏览

objective-c - 如何使用 Objective C 在 OSX 上执行分布式对象?

截至 2016 年,有关此的Apple 文档已过时且不起作用。例如,他们提到“保留”,但在 XCode 7.1 中默认使用 ARC,它不支持“保留”。我在网上尝试了各种示例,但都没有奏效。如何在 OSX 上编写称为分布式对象的 IPC 机制,其中客户端应用程序可以调用服务器应用程序上的类方法(例如在 LaunchDaemon 中特别组合的方法,但不是必需的)?

0 投票
1 回答
52 浏览

objective-c - 在 OSX 中使用 Objective C 测试分布式对象连接

在具有 Objective C 和分布式对象 (IPC API) 的 Mac OSX 上,服务器如何确定客户端是否已关闭其应用程序并因此 NSConnection 指针已损坏?我的意思是,我可能处于一个while循环中,读取大量数据以从服务器发送回客户端,如果我知道确定客户端是否突然断开连接的诀窍是什么,我可以测试一些东西。

0 投票
1 回答
414 浏览

hazelcast - Hazelcast - 最旧的条目首先被驱逐

我正在使用 hazelcast 存储对小时间窗口很重要的数据(可能是 30 到 50 分钟,但不超过 60 分钟)。条目越旧,它就越不重要,这意味着如果我们可以摆脱一些条目以避免 OutOfMemory 将是较旧的条目。

我将这些条目的 TTL 配置为 60 分钟,但是当内存不足时,我想可靠地首先删除最旧的条目,即使它们没有过期。

我检查了配置,EvictionPolicy.LRU但配置它我可以看到一些最近添加到地图的条目正在被驱逐。我想这是由于这里解释的用于选择驱逐条目的采样算法。

是否有涵盖此用例的分布式对象的实现?

0 投票
0 回答
205 浏览

java - 集群中的同步问题

我有两个程序都在集群上运行。我的问题是,当两个程序同时启动时,共享对象上的同步存在问题。如果我同时启动两个程序,他们几乎看不到其他人在该对象上的工作。

例如,

输出是:

7f653993-cd63-4246-946a-e7a141fa477e 1485417274993 锁定
7f653993-cd63-4246-946a-e7a141fa477e 大小 = 1
7f653993-cd63-4246-946a-e7a1441fa474994 解锁 14

c11399ec-8242-4e80-b9e9-0f43a050590c 1485417348313 锁
c11399ec-8242-4e80-b9e9-0f43a050590c 大小 = 1
c11399ec-8242-4e80-b9e9-0f4354174 1解锁

每次调试时,我确信在开始和结束锁定之间只有一个节点,并且在点 1 大小将被正确打印。但是,当我在点 1 同时运行两个节点时,每个节点都会打印 "size = 1" 。似乎第二个节点不知道地图的最新状态。

我怎样才能确定每个节点都会在地图上看到最近的信息。我用过 Jgroups,它也有类似的问题。

任何帮助将不胜感激,

谢谢