Hi Everyone,
I have an application using the VI SDK to find the virtual Infrastructure of newtwork.This application is behind a load balancer network configuration.
Does having this sort of ntwork configuration affect the VI SDK apis.The funny problem is that all the virtual machine are found but there is an issue with getting the host systems.
Can anything be done to make it work without changing the network configuration?
All help related to this is appriciated
Thank you
Tejas
Yes. Check out: http://pubs.vmware.com/vi-sdk/visdk250/ReferenceGuide/vim.SessionManager.html#sessionIsActive
Steve JIN, VMware Engineering
Creator of VMware Infrastructure Java API:
VI Java API 2.0 --- 15 times faster than AXIS in loading, 4+ faster in deserialization; only 1/4 of the size required by AXIS. More importantly freedom to redistribute your applications.
Download, Samples, DocWiki, RSS Feed
Were all the VI SDK traffic routed to the same server behind load balancer? Did you get any exception?
Steve JIN, VMware Engineering
Creator of VI Java API: http://vijava.sf.net
Thank you for the prompt reply
I am getting an exception ForkedActionException: java.net.SocketException: Software caused connection abort: socket write error
Does it help you ?
vimService.retrieveProperties(PropCollector, new PropertyFilterSpec[] ); has returned null and hence no host systems are getting shown
Tejas
1) Is the VC SOAP Service behind a Load balancer or just your application?
2) Are you using sticky sessions on your load balancer to your application? If not, are you running some shared session data (the VI SDK Session ID) between your Load balanced API applications?
Tejas
Most likely your load balancer route the VI SDK traffic to somewhere else in the middle of communication. Can you configure your load balancer so that all the traffic to the ESX/VC?
Steve JIN, VMware Engineering
Hi ,
THe answers to your questions is as follows
1) My application is on a balanced network, Virtual Center is on a "normal" network
2) sticky session is used with incoming traffic, I don't know what happens the other way
THnak you
Tejas
The answer to your question is:
1) I suppose there are no extra rules for VI SDK traffic, and I can't route all the traffic to the ESX/VC
Can this be a problem for timeout
Thank you
Tejas Saner
To isolate the problem, I would suggest to run your app from a test machine connecting to the VC directly (no load balancer in the middle). If all works fine, let's look for other possible causes. If not, investigate more on the load balancer.
Steve JIN, VMware Engineering
Creator of VI Java API: http://vijava.sf.net
I did that it works fine on a test environment
Good. I think you may want to look into the load balancer.
Steve JIN, VMware Engineering
Creator of VI Java API: http://vijava.sf.net
Hi Steve,
Thanks a million for your responce.We increased the timeout of the VC and it worked.
But that was just a work around we did.
My question is, are there any apis present which tell me whether the connection i.e session is still active ,so if it not I can close that session and create a new session .So that It wont affect my application.
Thank you for your earlier help and hope to get more on my currect issue
Have a good day,
Tejas Saner
Yes. Check out: http://pubs.vmware.com/vi-sdk/visdk250/ReferenceGuide/vim.SessionManager.html#sessionIsActive
Steve JIN, VMware Engineering
Creator of VMware Infrastructure Java API:
VI Java API 2.0 --- 15 times faster than AXIS in loading, 4+ faster in deserialization; only 1/4 of the size required by AXIS. More importantly freedom to redistribute your applications.
Download, Samples, DocWiki, RSS Feed
Thanks a lot Steve that was very helpful.But my further problem is I use VISDK 2.0 and the api which you gave me is from version 2.5.So I cant use the api which you suggested.Is there any other way or a work around that i may take to get this funtionality in my application without using version 2.5?
Thanks a lot for your hep
Tejas