VMware vCenter Storage Monitoring Service API Readme

Experimental – Subject to change

Welcome to the VMware vCenter Storage Monitoring Service API. This Readme contains these topics:

About VMware vCenter Storage Monitoring Service

The VMware vCenter Storage Monitoring Service provides simplified access to all vCenter storage information associated with VMware vCenter servers. It is an Axis 2.0-compliant Web service that runs in the Apache Tomcat container, available on the vCenter host. VMware Storage Monitoring Service has its own Java-based, in-memory database management system (referred to as the “SMS Cache”) that periodically synchronizes its data with the storage-information provider database. Currently, the default “provider” is the vCenter database.

Storage administrators can access the Storage Monitoring Service by using the vSphere Client. A client-side plug-in for the Storage Monitoring Service installs during vSphere Client installation. With the plug-in, the vSphere Client can display storage configuration and associations with datacenters, graphically. See the Basic Administration Guide, “Using the vSphere Client” and “Setting Up and Monitoring Performance Statistics and Resource Maps” for more information.

About the vCenter Storage Monitoring Service API

As with other vCenter servers (ESX, ESXi, vCenter), the vCenter Storage Monitoring Service (SMS) exposes a Web-services-based API, the SMS API. The vCenter SMS API provides programmatic access to the Storage Monitoring Service. The SMS API is an experimental component packaged with the vSphere Web Services SDK. For obtaining information about storage across the entire datacenter, using the SMS API is easier to use than the vSphere API. Developers familiar with the vSphere Web Services SDK and its API should note that for the SMS API, entity types include:

  • cluster
  • datacenter
  • datastore
  • host
  • nasMount
  • resourcePool
  • scsiAdapter
  • scsiPath
  • scsiTarget
  • scsiVolume
  • vm
  • vmFile

Operations provided by the SMS API include:

  • QueryList   Obtain all properties associated with instances of the specified entity type.
  • QueryTopology   Obtain a list of nodes and edges that comprise the specified entity.
  • Sync  Synchronize the SMS cache with the vCenter database. Synchronization occurs every two hours, by default, but you can use this operation to force synchronization. Typically, you may want to synchronize only after certain operations, such as a provisioning operation.

See the SMS API Reference documentation for complete information.

Package Contents

The VMware vCenter Storage Monitoring Service API is a component of the VMware vSphere Web Services SDK. It includes API Reference documentation, sample code, and client-side proxy code that you can use to develop your client applications.

Directory structure

Directory or filenameDescription
C:\Program Files\VMware\Infrastructure\tomcat\webapp\smsPath to the Tomcat servlet that implements the Storage Monitoring Service API.
%SDKHOME%\doc\ReferenceGuideAPI reference documentation for the vCenter Storage Monitoring Service API.
%SDKHOME%\smsPath containing WSDL, build scripts (build.bat, build.sh), run scripts (run.bat, run.sh), and other development setup tools.
%SDKHOME%\samples\Axis\java\com\vmware\samples\smsSamples demonstrating how to use the SMS API.
%SDKHOME%\doc\samplesJavadoc documentation for the sample applications.


To use the vCenter Storage Monitoring Service API, you must have access to vCenter Server 4.0 (Beta 1 or subsequent release) and the vSphere Web Services SDK. The vCenter Storage Monitoring Service runs in conjunction with vCenter Server 4.0. It is installed during the process of installing the vCenter Server. By default, the SMS package is installed in this sub-directory:

C:\Program Files\VMware\Infrastructure\tomcat\webapp\sms

The SMS API is supported on the Web service that runs at this path:


Samples Listing

The vCenter SMS API includes several Java samples, available in the SDK package:

Sample Description
ConfigureSyncInterval.javaSet the number of seconds between synchronizing the Storage Monitoring Service database with the vCenter (or other source) database.
QueryDatastoresInDcWithFilter.javaObtain a list of datacenter objects from the inventory and then list datastores associated with each datacenter, sorting and filtering the results according to the specifications passed as command-line arguments.
QueryScsiVolumesInDc.javaObtain a list of datacenter objects from the inventory and then list LUNs (SCSIvolume objects) associated with each datacenter.
QueryTopology.javaDisplay all nodes (and the edges contained in each) for the specified datacenter.
Sync.java.javaSynchronize the Storage Monitoring Service database cache with a source (provider), such as vCenter database.
UpdateVcDbConnectionInfo.javaConfigures JDBC connection information (jdbcUsername, jdbcPassword, jdbcUrl) for the connection from the SMS database to the vCenter database.


Documentation for this release of the SMS API includes:

Checklist of Setup Tasks

To get started using the SMS SDK:

  • Install a Java development environment.
  • Configure the environment as defined in the vSphere Web Services SDK Developer’s Setup Guide. In addition to the environment variables defined in that guide, you must also set a VIMSDKHOME environment variable that identifies the location of the SDK installed on your development machine.
  • Use the build script (build.bat, build.sh) to generate the client-side proxy code and compile all the samples.
  • See the samples Javadoc for information about how to run any of the samples.

Copyright © 2009,2010 VMware, Inc. All rights not expressly granted herein are reserved.

Last updated 11May2010 |  VMware vSphere Web Services SDK 4.1 | VMware vCenter SMS API 1.0 [EXPERIMENTAL]