在REST调用中保持DCOM对象从Java服务器保持活动状态

时间:2009-02-05 23:17:09

标签: java com rest ejb dcom

我正在为我的Java服务器实现REST API。通过API获得的资源之一实际上是创建C ++ DCOM对象并反映其值。 我正在使用的Java到COM桥是J-Integra。

问题是我需要保持DCOM对象为后续的REST调用保持活动状态,但是只要它的Java引用是对象就是活动的 - 直到REST会话最多到期为止。

如果我不再需要DCOM对象,怎么能保持活着? 到目前为止,我唯一想到的就是使用EJB,然后它将启动DCOM对象并保持其引用。我不是EJB的专家,但我认为a)它是一个过度的解决方案b)服务器可能会缓存EJB(钝化?),从而失去了DCOM参考。

有什么建议吗?

由于 因巴尔

2 个答案:

答案 0 :(得分:2)

  

如何保持DCOM对象的活动状态   直到我不再需要它?

我想这取决于不再需要对象意味着什么。你怎么知道你什么时候完成它?

这些DCOM实例是否适用于整个网站,或仅适用于特定用户?如果在站点范围内,接收这些请求的资源是否可以保留对该对象的引用?如果没有,也许您需要Yet Another Layer来为您管理这些对象。

您使用什么框架进行REST?


  

以下是一些更多信息:DCOM对象   正在执行一组任务异步。所以,   从Java主要调用它   服务器返回immidietialy,而   DCOM对象继续执行。   不幸的是,它已经很老了   对象,我无法控制它   实现或接口 - 我不能   改变这一点。 DCOM对象没有   甚至有COM活动。唯一的方法   知道是否完成,就是要进行民意调查   它使用特定的方法   (的getStatus)。我不想轮询它   从我的REST API实现,如   这将打破REST概念。一世   没有办法提前知道如何   这将花费DCOM对象   运行,所以我不能保持会话   活得那么久。

所以基本上,你想使用REST调用来启动一个操作但不关心它什么时候完成或它的状态是什么?如果是这样,你可以启动一个启动DCOM操作的线程,轮询状态直到操作被认为完成,然后破坏DCOM操作吗?

答案 1 :(得分:0)

将组件注册到COM +,它保持活动状态。请在此link查看更多信息。