VMware {code} Community
VMRibNoose
Contributor
Contributor

VLAN Interconnectivity Issue on VIX API

Hi All

We've recently started testing out the VIX API, and picked up a strange issue when crossing the VLANs on our network.

If the client running the VIX API is on the same VLAN as our vCenter Server Appliance, then we don't have issues.

Whenever the client is on a different VLAN, we get connectivity errors.  The API will connect to vCenter, but seemingly be unable to send or receive the required data.

Occasionally it'll connect but I can't see anything in the logs to help with this.

VIX API Log:

2015-05-27T11:01:48.137+10:00| vthread-4| I120: Vix: [23412 vixVIMProxy.c:7990]: VixTranslateVimException: basicHttp/libcurl error code is 48, translated to VixError VIX_E_NET_HTTP_TRANSFER (30200).

2015-05-27T11:01:48.137+10:00| vthread-4| I120: Vix: [23412 vixVIMProxy.c:8006]: VixTranslateVimException: response message is "".

VPXD Log from vCenter just shows:

[7F6256980700 info 'commonvpxLro' opID=78bdcfae] [VpxLRO] -- BEGIN task-internal-33228 --  -- vmodl.query.PropertyCollector.retrieveContents --

[7F62566FB700 info 'commonvpxLro' opID=efac4ba] [VpxLRO] -- FINISH task-internal-33227 --  -- vmodl.query.PropertyCollector.retrieveContents --

How do I change/overwrite any of the global settings (better logging)?

Could it be HTTP/S Issue - vCenter appliance is running default certificate? (since browsing to http://x.y.z.25:80/sdk redirects to HTTPS)

Connectivity has been tested between all hosts/VMs

Able to connect on VM to vCenter without issue.

No errors in switches/router.

Example Logs:
VPXD -Ticket 930bd7c2-b625-52a0-bdb2-bc90699907a4(5252ed21-07f6-9795-ad50-289a9b6ee69c eventually works

VIX Logs showing a working example after 14 attempts

Does anyone have any suggestions on how to increase logging, or to diagnose the issue?

Thanks

0 Kudos
3 Replies
lemke
VMware Employee
VMware Employee

First, VIX for vSphere has been deprecated, so I wouldn't suggest using it.

If you do, at least upgrade -- you're using an almost 4 year old build.

Release Notes

For getting more detailed VIX logging, you can turn up the debug level

by setting the config entry

vix.debugLevel = "9"

in one of the config files.  The user one is probably best since you're on Windows.

%AppData%\VMware\config.ini

If it works right, you'll see the debug log show the new value

2015-05-27T11:01:31.771+10:00| vix| I120: Vix_InitializeGlobalState: vixLogLevel = 0

I can't recall ever seeing a error 48 from curl before.  The docs say its a bad option, which may be

the result of VIX doing something stupid.  It may have been fixed in a more recent release.

0 Kudos
VMRibNoose
Contributor
Contributor

Thanks for the feedback Lemke, the extra logging has helped a bit, but more importantly that SDK advice was really great.

We're busy looking at migrating to the recommended VWC SDK instead, which suits us a lot more.

In the meantime, here's what the extra logging has showed:

2015-05-28T09:59:23.140+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:1995]: VixVIMFindDatacenters: started datastore search

2015-05-28T09:59:23.190+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:4501]: VixVIMFindItemsOnRetrieveDatacenter: looking through 3 datacenters

2015-05-28T09:59:23.190+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:4592]: VixVIMFindItemsOnRetrieveDatacenter: looking for VMs in datacenter 'datacenter-245'

2015-05-28T09:59:23.190+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:4592]: VixVIMFindItemsOnRetrieveDatacenter: looking for VMs in datacenter 'datacenter-822'

2015-05-28T09:59:23.190+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:4592]: VixVIMFindItemsOnRetrieveDatacenter: looking for VMs in datacenter 'datacenter-235'

2015-05-28T09:59:23.210+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:4147]: VixVIMVmOnFindVMItemsFinished: datacenter 'datacenter-245'

2015-05-28T09:59:23.210+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:7968]: VixTranslateVimException: fault (null) has no reason

2015-05-28T09:59:23.210+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:8140]: VixTranslateVimException: Received an invalid response fault.

2015-05-28T09:59:23.210+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:8157]: VixTranslateVimException: basicHttp/libcurl error code is 48, translated to VixError VIX_E_NET_HTTP_TRANSFER (30200).

2015-05-28T09:59:23.210+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:8173]: VixTranslateVimException: response message is "".

2015-05-28T09:59:23.210+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:8190]: VixTranslateVimException: fault is (null), reason '(none given)', translated to 30200

2015-05-28T09:59:23.210+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:4378]: VixVIMVmOnFindVMItemsFinished: processed 1 of 3 datacenters

2015-05-28T09:59:23.280+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:4147]: VixVIMVmOnFindVMItemsFinished: datacenter 'datacenter-822'

2015-05-28T09:59:23.280+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:4155]: VixVIMVmOnFindVMItemsFinished: earlier datacenter had an error; skipping

2015-05-28T09:59:23.280+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:4378]: VixVIMVmOnFindVMItemsFinished: processed 2 of 3 datacenters

2015-05-28T09:59:23.510+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:4147]: VixVIMVmOnFindVMItemsFinished: datacenter 'datacenter-235'

2015-05-28T09:59:23.510+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:4155]: VixVIMVmOnFindVMItemsFinished: earlier datacenter had an error; skipping

2015-05-28T09:59:23.510+10:00| vthread-4| I120: Vix: [2552 vixVIMProxy.c:4378]: VixVIMVmOnFindVMItemsFinished: processed 3 of 3 datacenters

2015-05-28T09:59:23.510+10:00| vthread-4| I120: Vix: [2552 foundryAsyncOps.c:1840]: FoundryAsyncOp_FinishAsyncOp for VIX_COMMAND_FIND_VM (20 cookie 39). Err = 30200 (VIX_E_NET_HTTP_TRANSFER)

2015-05-28T09:59:23.510+10:00| vthread-4| I120: Vix: [2552 foundryCallback.c:2173]: VixJob_StartAsynchOpResultsFromOneVM. jobHandle = 34603057, resultErr = 30200

2015-05-28T09:59:23.510+10:00| vthread-4| I120: Vix: [2552 foundryCallback.c:2348]: VixJob_FinishAsynchOpResultsFromOneVM. jobHandle = 34603057

2015-05-28T09:59:23.510+10:00| vthread-4| I120: Vix: [2552 foundryCallback.c:2067]: FoundryJobReportCompletion. jobHandle = 34603057, numCallbacksReceived = 1

2015-05-28T09:59:23.510+10:00| vthread-4| I120: Vix: [2552 foundryHandles.c:2823]: VMXI_ReportEvent. Send event 3 to handle 34603057.

Eventually it completes all datacenter VM queries, but unfortunately I can't tell what datacenter-235 relates to.

It's one of the 3 Data centers in vcenter (obviously?), but how do I tell which Datacenter 245 is?

Thanks

0 Kudos
lemke
VMware Employee
VMware Employee

'datacenter-245' is an internal (unique) identifier.  There may be easier ways, but I'd use the Managed Object Browser to learn more.

vSphere Documentation Center

describes how to use it.

I think you could simply use:

https://<VC IP>/mob/?moid=datacenter-245

Or you can browse around.

You'll be able to see the datacenter's  'name' there amongst other properties.

0 Kudos