[vbox-dev] Help with sessions

Lucas Charles lucas.charles at unine.ch
Mon Oct 25 12:07:04 GMT 2010


Hi Nokolay,

First of all thanks for you dedication, I really appreciate.
Thanks also for reminding me the change of the API, I also remember that
there should be an xpcom-like API for java in the next version.
I understood that openRemoteSession is used to start a vm and I used this
call to open several vms.
The problem is how to access this session once it has been opened.
Up to know I passed the same session object to every open remote session
call, which is apparently wrong.
I tried to reused this session object to command the snapshots, and it
apparently failed. I understood that a session is
linked to one machine, so it makes sense that I cannot reuse them
everywhere.

I saw in some threads in the mailing list that I could create one
IWebsessionManager to start all the vms and then
create one IWesessionManager per machine started to create new session
objects. Is it really the right thing to do, since the IVirtualbox is a
singleton.

Regards,
Lucas Charles


On Mon, Oct 25, 2010 at 11:14 AM, Nikolay Igotti
<nikolay.igotti at oracle.com>wrote:

>    Hi Lucas,
>
>
> First of all, please keep in mind that for next major release there will be
> significant rework of both session API and
> the way it's accessed from Java. Having said that, with 3.x  approach,
> which is, indeed not very straightforward,
> openRemoteSession() API is just a way start a new VM, so it's not possible
> to use one remote session to start several VMs -
> you have to openRemoteSession() for every VM you want to start.
> Please refer to SDK documentation, and vboxshell.py TUI example (while in
> Python, patterns of API usage is the same).
>
>
> Hope that will help,
>   Nikolay
>
>
> Lucas Charles wrote:
>
>> Hello everyone,
>>
>> I'm stuck with a problem related to the sdk for java-ws.
>> I want to manage several machines on a given host from my java client.
>>
>> I need to start vms Take snapshots of the one I started at given
>> intervals.
>> After a new boot I need to restore the machines to their latest snapshot.
>> Start them and redo snapshots.
>>
>> The problem I'm facing is how to open sessions.
>>
>> Yet I'm starting the vms by calling
>> ------
>>
>> IWebsessionManager mgr;
>>
>> IVirtualBox vbox
>>
>> mgr = new IWebsessionManager("http://localhost:18083");
>>
>> vbox = mgr.logon("", "");
>>
>> ISession session = mgr.getSessionObject(vbox);
>>
>> IProgress prog = vbox.openRemoteSession(session, machineToStart.getId(),
>> "gui", "");
>>
>> prog.waitForCompletion(-1);
>>
>> -----
>>
>> Isn't it a problem to call openRemoteSession with the session I got from
>> IWebSessionManager::getSessiontObject() ?
>> Because I then use only one session to start several vms.
>>
>> My next question is when I want to take snapshots of every machines I have
>> in charge.
>>
>> Which session object should I use to get the IConsole ?
>> Can/Must I reuse the one I used upon calling openRemoteSession() ? Reusing
>> seems to work, if I control only one machine but fails with more than one.
>>
>> Best Regard,
>> Lucas Charles
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> vbox-dev mailing list
>> vbox-dev at virtualbox.org
>> http://vbox.innotek.de/mailman/listinfo/vbox-dev
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.virtualbox.org/pipermail/vbox-dev/attachments/20101025/1ac170bf/attachment.html>


More information about the vbox-dev mailing list