[vbox-dev] Help with sessions
Nikolay Igotti
nikolay.igotti at oracle.com
Tue Oct 26 18:29:44 GMT 2010
Lucas,
Snapshot operations could be expensive, depending on your storage
hardware and current IO activity. Probably faster hardware may help here.
Nikolay.
26.10.2010 2:44, Lucas Charles ?????:
> Hi Nikolay,
>
>
> Thank you very much for sorting this out, now it's solved.
> What I actually didn't get was that I had to close the session after
> openRemoteSession. (My bad)
>
> I just had one question, it seems to me that using snapshot (Either
> restore the snapshot or start from a saved one) can be really
> expensive if I have modifications on the harddrive.. It takes
> something like 5-10 seconds to recover form a snapshot that has been
> done after an install of a few package in an Ubuntu guest.
>
> - Does it make any sense ?
>
> Lucas
>
> On Mon, Oct 25, 2010 at 4:46 PM, Nikolay Igotti
> <nikolay.igotti at oracle.com <mailto:nikolay.igotti at oracle.com>> wrote:
>
> Hi Lucas,
>
>
>
> Lucas Charles wrote:
>
> 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.
>
> Yes, but look and feel of both WS and XPCOM API shall be the same,
> and you can use pretty much the same Java code for both.
>
> 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.
>
> To create a session object you may want to use getSessionObject().
> Complete example can be found in
> src/VBox/Main/webservice/samples/java/jax-ws/clienttest.java which
> is also shipped with SDK.
>
>
>
> 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.
>
> Yes, you need one session per machine. See my getSessionObject()
> remark above.
>
>
>
> 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.
>
> You need different managers if you maintain connection to multiple
> VirtualBox hosts, if you all your VMs run on the same host/port
> there is no need for multiple managers.
>
> Nikolay
>
>
>
> On Mon, Oct 25, 2010 at 11:14 AM, Nikolay Igotti
> <nikolay.igotti at oracle.com <mailto:nikolay.igotti at oracle.com>
> <mailto:nikolay.igotti at oracle.com
> <mailto: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 <mailto:vbox-dev at virtualbox.org>
> <mailto:vbox-dev at virtualbox.org <mailto: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/20101026/f5fc4564/attachment.html>
More information about the vbox-dev
mailing list