<div dir="ltr">Hi Devs,<div><br></div><div>After playing around with the Java WS API for a while now, I would appreciate some clarification and confirmation on some assumptions I am making for a while now. Here we go :</div>

<div><br></div><div>When getting several ISession object accross the code, I ended up realizing that these objects actually point to the same session on the remote site. This also mean that I can only have one VM locked at the same time.</div>

<div>1. Is this on purpose to only have one VM lockable at the same time? Is this also the case in the XPCOM binding? Is it possible to get a different session for each call of IVirtualbox::getSessionObject()</div><div><br>

</div><div>2. Am I correct to understand that the only way to get a lock on several machines at the same time is to have several connections, each with its session? Or will this lead to issues?</div><div><br></div><div>3. Is there any recommended way (if even possible) to get several locks in a thread-safe way?</div>

<div><br></div><div>----------------------------------------</div><div><br></div><div>Related to the objects living in on the remote side. In the SDK documentation, we are informed that we are supposed to use the releaseRemote() method on objects we get, so they don't build up on the "other side", being the webservice server or the XPCOM(?). While writing my code, the way I did at least, I am having a hard time releasing the object at the proper time. Putting the releaseRemote() a bit too defensively only ends up producing exception on further calls (Object reference is not found...), meaning that the actual remote object doesn't exist anymore. Obviously, since I released it earlier. The fear is to release "too late" and leave such objects orphan of any control.</div>

<div><br></div><div>1. What is the actual build up rate? Is it dangerous to keep these objets in memory on the other side? Could it crash the webserver? The context would be a single java process connected one time (possibly several times depending on your answer at the previous section).</div>

<div><br></div><div>2. If you use the findMachine() method several times, using the same machine UUID, would you end up re-using the same remote object or is a remote object created each time? If the remote object is the same, I could live with the object residing in memory, this can only make things faster at the cost of using memory. Am I right in this assumption?</div>

<div><br></div><div>3. Is there a auto-release in Java code using the finalize() method of the object? or such cleanup must be done by the developper?</div><div><br></div><div>4. Any recommended way to deal with this? I am thinking of using a helper tatic class to fetch the objects and a timeout logic to release them. Some kind of cache really.</div>

<div><br></div><div>-----------------------------------------</div><div><br></div><div>Thank you in advance for your time and wisdom on this.</div><div><br></div><div>Best regards,</div><div>Max</div></div>