首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在调用"servant_to_reference“之后从CORBA中丢弃一个servant。

在调用"servant_to_reference“之后从CORBA中丢弃一个servant。
EN

Stack Overflow用户
提问于 2012-02-14 22:28:17
回答 2查看 595关注 0票数 1

下面的序列给了我一个IOR,并将MyObj实例放在CORBA (JacORB)中的某个位置,以便在以后的阶段使用IOR:

代码语言:javascript
复制
MyObj myObj = new MyObj(); 
org.omg.CORBA.Object ref = poa.servant_to_reference(myObj); 
org.omg.CORBA.Object href = MyObjHelper.narrow(ref); 
String ior = orb.object_to_string(href); 

我能以某种方式告诉JacORB去掉"myObj“(当然是在以后的阶段)吗?引用永远保存在一些Hastable中(在JacORB中),当创建大量条目时,某个时候会出现一个野OutOfMemory。我想让JacORB在我告诉它的时候忘记我的对象。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-17 21:28:22

您可以做的第一件事是停用未使用的服务程序*poa.deactivate_object()*。问题是知道什么时候可以停用这个servant。

最好的做法是使用一些超时策略实现ServantManager

别忘了POA policies

票数 1
EN

Stack Overflow用户

发布于 2017-04-02 21:25:41

无论何时引用Corba对象,它的内部引用计数都会加1。这类似于Java垃圾收集器机制。

这意味着只有当iorhrefref被垃圾收集时,myObj才会被垃圾收集。

还有一个手动减少myObj的Corba引用计数的选项,但不建议这样做,因为这样会破坏Corba的引用计数机制并导致不可预知的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9278606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档