为什么这是一个要点?

Sascha Brawer 建议:

迷惑产生的原因是:确实存在着进行引用记数的分布式系统,在一个引用也没剩下的时候、允许服务器知道。DCOM 有这样的机制,ILU 也有一些类似的东西,AFAIK。

为什么 CORBA 不跟从其他的这些系统? 我个人的感觉是,这是 CORBA 的做正确的事而不做容易的事的另一个个例。 Sascha 继续说:

然而,我曾读到关于分布式引用记数的问题的一些东西(我不记得准确的位置了,抱歉了...)、,首先它消耗网络带宽,其次在不可靠的网络连接下不能工作。在那篇文章里说这些缺点可能是设计没有引用记数的 CORBA 的合理解释。

这是一个问题。如果你的客户消失了,你将有一些无所事事的对象。客户消失的原因是它们是被糟糕的程序员编写的,我们都知道这样很不好,但如何处理呢? 有许多途径。最简单的是超时(timeout)。这是我在 GNU事务(Transaction)服务器中正在用的方法。当时限到了,我终止我所有的仆从对象并释放它们的资源。幸运的是,CosTransactions 标准支持事务的超时。不幸的是,在通常的 CORBA 模型中我真的看不出如何做超时,所以我正在使用特定于 ORBit 的做法(hack),有一个同时支持 CORBA 事件和超时的 glib 事件循环。我被告知的另外一种途径叫 Evictor 模式(pattern)。一旦我得到在邮递中的我想要的 CORBA 的书,我将去理解它。最后的途径就象筛子过滤金鱼(a sieve leaks goldfish)一样去过滤(leak)内存,这是最容易做的事。


PrevHome 
Server-side deactivationUp