Also http://docs.vmd.citrix.com/XenServer/4.0.1/sdk/ch04.html#id2538486
On 5/21/13 10:12 AM, "Chiradeep Vittal" <chiradeep.vit...@citrix.com> wrote: >Are you looking for information on how XAPI does async processing? >http://wiki.xen.org/wiki/VM_Startup > >http://wiki.xen.org/wiki/XAPI_Dispatch > > >On 5/21/13 1:52 AM, "Nguyen Anh Tu" <ng.t...@gmail.com> wrote: > >>no one can explain it for me? >> >> >>2013/5/10 Nguyen Anh Tu <ng.t...@gmail.com> >> >>> Hi forks, >>> >>> I'm working on CS + XCP. I have a question: >>> >>> When starting VM, Async job "startvm" is sent to XCP Host via xapi. >>>Then >>> we have to wait until xapi task responses. This code here: >>> >>> void startVM(Connection conn, Host host, VM vm, String vmName) >>>throws >>> XmlRpcException { >>> Task task = null; >>> try { >>> * task = vm.startOnAsync(conn, host, false, true);* >>> try { >>> //poll every 1 seconds , timeout after 10 minutes >>> *waitForTask(conn, task, 1000, 10 * 60 * 1000);* >>> *checkForSuccess(conn, task);* >>> } catch (Types.HandleInvalid e) { >>> if (vm.getPowerState(conn) == >>>Types.VmPowerState.RUNNING) { >>> task = null; >>> return; >>> } >>> throw new CloudRuntimeException("Shutdown VM catch >>> HandleInvalid and VM is not in RUNNING state"); >>> } >>> } catch (XenAPIException e) { >>> String msg = "Unable to start VM(" + vmName + ") on host(" >>>+ >>> _host.uuid +") due to " + e.toString(); >>> s_logger.warn(msg, e); >>> throw new CloudRuntimeException(msg); >>> }finally { >>> if( task != null) { >>> try { >>> task.destroy(conn); >>> } catch (Exception e1) { >>> s_logger.debug("unable to destroy task(" + >>> task.toString() + ") on host(" + _host.uuid +") due to " + >>>e1.toString()); >>> } >>> } >>> } >>> } >>> >>> Can you explain how xapi task work? How xapi queue work? When its task >>> responses? >>> >>> Thanks, >>> >>> -- >>> >>> N.g.U.y.e.N.A.n.H.t.U >>> >> >> >> >>-- >> >>N.g.U.y.e.N.A.n.H.t.U >