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