Quantcast
Channel: VMware Communities : Discussion List - All Communities
Viewing all articles
Browse latest Browse all 193198

Error: InvalidRequest when WaitForUpdatesEx is executing

$
0
0

Hi, all.

 

I'd like to get vm information when VM's events are occured.

I wrote a test code using WaitForUpdatesEx (vSphere 5.0) method.

 

When I ran this, I got the following error:

"com.vmware.vim25.InvalidRequest

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at java.lang.Class.newInstance0(Class.java:355)

at java.lang.Class.newInstance(Class.java:308)

at com.vmware.vim25.ws.XmlGen.fromXml(XmlGen.java:201)

at com.vmware.vim25.ws.XmlGen.parseSoapFault(XmlGen.java:80)

at com.vmware.vim25.ws.WSClient.invoke(WSClient.java:132)

at com.vmware.vim25.ws.VimStub.waitForUpdatesEx(VimStub.java:105)

at com.vmware.vim25.mo.PropertyCollector.waitForUpdatesEx(PropertyCollector.java:125)

at com.apexcns.test.AsyncPropsCollection.test(AsyncPropsCollection.java:170)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)

at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)

at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)

at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)

at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)

at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)

at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)

at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)

at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)

at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)

at org.junit.runners.ParentRunner.run(ParentRunner.java:236)

at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)

at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Below is my test code:
---------------------------------------------------------------------------------

 

EventFilterSpecByEntity entitySpec = new EventFilterSpecByEntity();
entitySpec.setEntity(serviceInstance.getRootFolder().getMOR());
entitySpec.setRecursion(EventFilterSpecRecursionOption.children);
// set the entity spec in the EventFilter
EventFilterSpec eventFilter = new EventFilterSpec();
eventFilter.setEntity(entitySpec);
eventFilter.setType( new String[] {"VmPoweredOffEvent", "VmPoweredOnEvent", "VmSuspendedEvent", "VmResettingEvent"} );
EventManager eventManager = serviceInstance.getEventManager();
EventHistoryCollector eventHistoryCollector = eventManager.createCollectorForEvents(eventFilter);
// PropertyFilterSpec Setting
PropertySpec propertySpec = new PropertySpec();
propertySpec.setAll(new Boolean(false));
propertySpec.setPathSet(new String[] { "latestPage" });
propertySpec.setType(eventHistoryCollector.getMOR().getType());
PropertySpec[] propertySpecAry = new PropertySpec[] {propertySpec};
ObjectSpec objSpec = new ObjectSpec();
objSpec.setObj(eventHistoryCollector.getMOR());
objSpec.setSkip(new Boolean(false));
objSpec.setSelectSet(new SelectionSpec[] { });
ObjectSpec[] objSpecAry = new ObjectSpec[] { objSpec };
   
PropertyFilterSpec spec = new PropertyFilterSpec();
spec.setPropSet(propertySpecAry);
spec.setObjectSet(objSpecAry);
                       
PropertyCollector propColl =  serviceInstance.getPropertyCollector();             
PropertyFilter propFilter = propColl.createFilter(spec, true);
                 
Integer MAX_WAIT_TIME = 60;
String version = "";
WaitOptions options = new WaitOptions();
options.setMaxWaitSeconds( MAX_WAIT_TIME );
options.setMaxObjectUpdates(0);
while (true) {
  
   logger.debug("Waiting for new Updates.");
   UpdateSet update =  propColl.waitForUpdatesEx(version, options);    // <= the error location was here.

 

  if ( update != null && update.getFilterSet() != null ) {

       .......

       version = update.getVersion();                         

  } else {

 

      logger.debug("No update is present!");                  

  }

}

.....

 

Please let me know if anyting is wrong in my code.

Thank you.

 

Yeonki.


Viewing all articles
Browse latest Browse all 193198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>