我正在尝试创建一个系统,在该系统中,master 将创建与 vCenter 的连接并将 serviceinstance 对象传递给一组性能收集器,然后这些收集器可以完成工作并退出。我的问题是共享 SI 对象的最佳方法是什么?我正在考虑为此目的使用消息队列,但我并不热衷于序列化对象。还有其他更有效的方法吗?
1 回答
1
该 SI 仅适用于创建 SI 的 vCenter。如果这对您来说不是问题,那么只需将会话 ID 放在总线上供您的工作人员接听,那么他们应该能够使用会话 ID 创建一个新的 SI。
第一次连接时:
ServiceInstance serviceInstance = new ServiceInstance(new URL("https://vcenter/sdk"),user, passwd, true);
String sessionId = serviceInstance.getServerConnection().getSessionStr();
接下来将该 sessionId 放在总线上。让您的工人捡起它并执行以下操作:
ServiceInstance si2 = new ServiceInstance(new URL("https://vcenter/sdk"), sessionId, true);
该会话的默认超时时间为 30 分钟 IIRC ..
还有一点自我插入,我建议从 vijava 转移到 yavijava。它是我维护的一个分支,它添加了许多漂亮的功能,我什至目前正在添加 6.0 支持。https://github.com/yavijava/yavijava
于 2015-05-02T06:26:51.743 回答