通过rabbitmq或其他任务队列传递vijava ServiceInstance

时间:2015-04-28 16:16:49

标签: connection vmware vmware-sdk

我正在尝试创建一个系统,其中master将创建与vcenter的连接,并将serviceinstance对象传递给一堆性能收集器,然后可以执行其工作并退出。我的问题是分享SI对象的最佳方法是什么?我正在考虑使用消息传递队列,但我并不热衷于序列化对象。还有其他更有效的方法吗?

1 个答案:

答案 0 :(得分: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