2011-04-19 42 views

回答

1

假設您使用的是Oracle Java ORB,爲什麼不使用它們提供的持久名稱服務而不是臨時tnameserv?這聽起來像你的應用程序需要引用的持久登記,所以想從一個瞬態命名服務持續類似的行爲將可能是一個死衚衕。

順便說一句,您可以使用任何供應商的COS命名服務,而不僅僅是Oracle提供的服務(甚至不一定要用Java編寫)。例如,自由JacORB名稱服務器可以在持久模式下運行,讓您註冊引用生存的服務的重啓或死機。

在任何情況下,您的問題的答案取決於您是否從客戶端或服務器的角度提問。使用命名服務的服務器不應該需要檢查是否有它自己在那裏已經被登記現有的參考 - 它應該不是僅僅調用rebind()更新註冊。如果已經沒有任何內容,則會添加參考。如果那裏有一個,它將被新值覆蓋。

如果您從客戶的角度提出這個問題,您應該記住,命名服務就像電話簿一樣。如果客戶端不存在,它需要找到一個註冊,它在水中幾乎死了,除非能找到它可用於提供您所需要的服務其他合適的對象。它可能更好地讓您的客戶無法在這一點上,而不是試圖在如何彌補什麼是真正災難性的情景猜測。

+0

我想使用tnameserv,因爲它是我過去已經使用的工具,每次啓動時都會啓動清理工具。我會看到如何讓ORBD以我需要的方式工作,謝謝! – AndrewBourgeois 2011-04-25 21:44:49

相關問題