Hey,
I've tried the following:
1.Domain d=conn.domainLookupByName("test");
System.out.print("Active test" +d.isActive() );
O/p- This gives me 1 as the answer and hence active.
2.Domain d=conn.domainLookupByName("test");
System.out.print("Active test" +d.isPersistent() );
O/p- Gives me the following error:
Exception in thread "main" org.libvirt.LibvirtException: Unknown failure
at org.libvirt.ErrorHandler.processError(Unknown Source)
at org.libvirt.Connect.processError(Unknown Source)
at org.libvirt.Domain.processError(Unknown Source)
at org.libvirt.Domain.isPersistent(Unknown Source)
3. Using listDefinedDomains():
String a[]=conn.listDefinedDomains();
System.out.println(a.length); --->gives 0
System.out.println(a[0]); ----> throes null pointer exception
4.Tried looking at VMM, and all the domains are running. The output of xm
--list also confirms it.
Thanks!
Preethi
On Sat, Nov 12, 2011 at 4:51 AM, Eric Blake <eblake(a)redhat.com> wrote:
[your mailer seems to want to start a new thread rather than replying
to
the existing thread, which makes following your mails difficult. Could
you please fix that?]
On 11/10/2011 09:09 PM, PREETHI RAMESH wrote:
> This question concerns the usage of the listDomains(). When I run this
> piece of code in KVM, it works perfectly fine but throws an array out of
> bounds exception in Xen.
>
> Connect conn=null;
> conn = new Connect("xen:///", true);
> int[] id = conn.listDomains();
> System.out.println("lD of VM " +id[0]);
>
> Answer I'd got:
> Well, your code assumes that id.length is >= 1, but listDomains() can
> return an empty array when there are no active domains known to
> libvirt. So you need to check id.length before accessing any element
> in the array.
>
> Follow up- I tried accessing the length of the array and it's 0 all the
> time. And there are active domains available.
> In fact, I'm able to getUUID from the domain name. Other functions work
> fine too.
getUUID works on inactive domains. Are you sure you have active
domains? Most likely, the array length really is 0 because you haven't
started any of your domains.
Have you looked into using listDefinedDomains(), to see the remaining
persistent domains that are defined but not running?
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org