2015-04-28 18 views
0

我試圖創建一個系統,其中主服務器將創建一個連接到vcenter並將serviceinstance對象傳遞給一堆性能收集器,然後可以執行他們的工作並退出。我的問題是分享SI對象的最佳方法是什麼?我正在考慮爲此目的使用消息隊列,但我並不熱衷於序列化對象。還有其他更有效的方法嗎?通過rabbitmq或其他任務隊列傳遞vijava ServiceInstance

回答

1

SI只會在創建SI的vCenter上運行。如果這對你來說不會有問題,那麼只需將會話ID放在總線上供工作人員選擇,那麼他們應該能夠使用會話ID創建新的SI。

第一次連接:

總線上的SessionID
ServiceInstance serviceInstance = new ServiceInstance(new URL("https://vcenter/sdk"),user, passwd, true); 
String sessionId = serviceInstance.getServerConnection().getSessionStr(); 

下一個地方。讓你的工人把它撿起來,做:

ServiceInstance si2 = new ServiceInstance(new URL("https://vcenter/sdk"), sessionId, true); 

該會話的默認超時就像是30分鐘IIRC ..

也有點自我堵我建議從vijava轉會到yavijava。它是我維護的一個分支,它增加了很多漂亮的功能,而且我甚至現在增加了6.0的支持。 https://github.com/yavijava/yavijava

+0

謝謝邁克爾。我不知道sessionId可以在調用之間使用。這正是我需要的。事實上,我們使用yavijava。我寫了維亞瓦認爲大多數人仍然知道這個名字的圖書館。邁克爾和我期待繼續使用yavijava – darkstar

相關問題