有没有一种简单的方法来检查一个对象是否仍然绑定到"tnameserv“?在绑定对象之后,"tnameserv“进程可能会崩溃,被杀死,...我希望我的应用程序验证我之前绑定的对象是否仍然是绑定的。
发布于 2011-04-21 10:53:19
假设您使用的是Oracle Java ORB,为什么不使用他们提供的持久名称服务,而不是临时的tnameserv呢?听起来您的应用程序需要永久注册引用,因此尝试从临时命名服务获取永久行为可能是个死胡同。
顺便说一下,您可以使用任何供应商的COS命名服务,而不仅仅是Oracle提供的命名服务(它甚至也不需要用Java编写)。例如,免费的JacORB名称服务器可以在持久模式下运行,允许您注册的引用在服务重新启动或崩溃后仍然存在。
在任何情况下,问题的答案都取决于您是从客户端还是从服务器的角度提出问题。使用命名服务的服务器不需要检查是否已在其中注册了自己的现有引用-它只需调用rebind()来更新注册即可。如果其中已经没有任何内容,则会添加引用。如果其中有一个,它将被新值覆盖。
如果你从客户的角度来询问这个问题,你应该记住命名服务就像一个电话簿。如果客户端在那里找不到它需要的注册,除非它能找到其他合适的对象来提供你所需要的服务,否则它就会一事无成。在这一点上让你的客户失败可能会更好,而不是试图猜测如何补偿真正的灾难性情况。
https://stackoverflow.com/questions/5723381
复制相似问题