在 REST 调用上使 Java 服务器保持 DCOM 对象处于活动状态
我正在为我的 Java 服务器实现 REST API。 通过 API 获得的资源之一实际上是创建一个 C++ DCOM 对象并反映其值。 我使用的 Java 到 COM 桥接器是 J-Integra。
问题是我需要保持该 DCOM 对象处于活动状态以供后续 REST 调用使用,但只要该对象的 Java 引用存在,该对象就处于活动状态 - 最多直到 REST 会话过期为止。
如何使 DCOM 对象保持活动状态,直到我不再需要它为止? 到目前为止,我唯一想到的就是使用 EJB,它将成为启动 DCOM 对象并保存其引用的 EJB。 我不是 EJB 方面的专家,但我认为 a) 这是一个过度的解决方案 b) EJB 可能被服务器缓存(钝化?),从而丢失 DCOM 引用。
有什么建议么?
谢谢 因巴尔
I'm implementing a REST API for my Java server. One of the of the resources obtained through the API is actually creating a C++ DCOM object and reflecting its values.
The Java to COM bridge I'm using is J-Integra.
The problem is that I need to keep that DCOM object alive for subsequent REST calls, but the object is alive just as long as its Java reference is - which is until the REST session expires at most.
How can I keep the DCOM object alive until I no longer needs it?
The only thing I thought of till now was using an EJB which then will be the one to initiate the DCOM object and hold its reference. I'm not an expert on EJBs, but I think that a) its an overkill solution b) the EJB may be cached (passiviate?) by the server, losing the DCOM reference at that.
Any suggestions?
Thanks
Inbar
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想这取决于不再需要该对象意味着什么。 你怎么知道你什么时候完成了它?
这些 DCOM 实例适用于整个站点还是仅适用于特定用户? 如果在站点范围内,接收这些请求的资源是否可以保留对该对象的引用? 如果没有,也许您需要另一个层来为您管理这些对象。
您使用什么框架来实现 REST?
基本上,您想使用 REST 调用来启动操作,但不关心它何时完成或其状态是什么? 如果是这样,您是否可以启动一个线程来启动 DCOM 操作,轮询状态直到操作被视为完成,然后销毁 DCOM 操作?
I guess that depends on what it means to no longer need the object. How do you know when you're done with it?
Are these DCOM instances applicable site-wide, or just for a specific user? If site-wide, is it possible for the resource that is receiving these requests to keep a reference to that object? If not, perhaps you need Yet Another Layer to manage those objects for you.
What framework are you using for REST?
So basically, you want to use a REST call to start an operation but don't care when it finishes or what its status is? If so, can you start a Thread that will start the DCOM operation, poll the status until the operation is deemed to be complete and then destroy the DCOM operation?
将组件注册到 COM+,然后它就保持活动状态。 在此查看更多信息 链接。
Place the component registered at COM+, and it stay alive. Check more info at this link.