Using the Solaris WBEM SDK Sample Programs
This chapter describes the sample programs provided with the Solaris WBEM SDK, and includes the following topics:
About the Sample Programs
When you install the Solaris WBEM SDK, a sample Java applet and several programs are installed in file:/usr/demo/wbem. You can use these samples as a basis for developing your own applets and programs.
Note - To use the applet and sample programs, make sure that /usr/java points to at least JDK 1.2.2, and that the Solaris WBEM SDK files are installed in the /usr directory.
The following samples are provided:
Applet - Lists and describes the Solaris software packages that are installed on a system running Solaris WBEM Services, and connects to the CIM Object Manager running on a local or a remote system.
Client programs - Uses the Java APIs to make requests to the CIM Object Manager.
Provider programs - Communicates with managed objects to access data.
Note - For more detailed information on this applet, see: file:/usr/demo/wbem/applet/README.
You must run the applet on a machine that has network access to the CIM Object manager. In addition, the machine must run one of the following:
JDK 1.2 Appletviewer
Web browser that uses at least version 1.2.2 of the Java runtime environment, or has at least version 1.2.2 of the Java Plug-in product installed.
Type the following command:
% appletviewer -JD \ java.security.policy=/usr/demo/wbem/applet/applet.policy \ /usr/demo/wbem/applet/GetPackageInfoAp.html
How to Run the Sample Applet Using Appletviewer
Open the following file in your web browser:
How to Run the Sample Applet in a Web Browser
Sample Client Programs
The sample client programs are located in subdirectories of /usr/demo/wbem/client and are described in the following table.
Table 6-1 Sample Client Programs
./TestBatch host_name user_name password classname [rmi|http]
Perform enumerateInstanceName, getClass, and enumerateInstances in a single batching call.
./ClientEnum host username password classname [rmi|http]
Enumerate classes and instances in the specified class in the default namespace root\cimv2 on the specified host.
./Subscribe host username password classname
Subscribe to lifecycle events for a specified class, print events that occur within one minute of the subscription, and then unsubscribe to the events.
./CreateLog host root_username root_password [rmi|http]
Create a log record on the specified host.
./ReadLog host root_username root_password [rmi|http]
Read a log record on the specified host.
./DeleteClass host classname root_username root_password [rmi|http]
Delete the specified class in the default namespace root\cimv2 on the specified host.
./DeleteInstances host classname root_username root_password [rmi|http]
Delete instances of the specified class in the default namespace root\cimv2 on the specified host.
./CreateNameSpace host parentNS childNS root_username root_password [rmi|http]
Connect to the CIM Object Manager as the specified user, and create a namespace on the specified host.
./DeleteNameSpace host parentNS childNS root_username root_password [rmi|http]
Delete the specified namespace on the specified host.
./ExampleQuery host username password [rmi|http] WQL_query
Create a test class with sample instances, and perform queries on that class.
./TestQuery host username password [rmi|http]WQL_query
Perform the specified WQL query.
./SystemInfo host username password [rmi|http]
Display Solaris processor and system information for the specified host in a separate window.
Running the Sample Client Programs
You must first set the CLASSPATH to include the necessary .jar files before you run the client programs.
Do one of the following:
Using the C shell, type:
% setenv CLASSPATH .:/usr/sadm/lib/wbem.jar:/usr/sadm/lib/xml.jar :/usr/sadm/lib/wbem/sunwbem.jar:/usr/sadm/lib/wbem/extension
Using the Bourne shell, type:
% set CLASSPATH=.:/usr/sadm/lib/wbem.jar:/usr/sadm/lib/xml.jar :/usr/sadm/lib/wbem/sunwbem.jar:/usr/sadm/lib/wbem/extension
How to Set the CLASSPATH
Run the sample client programs using the following format:
% java program_name parameters
How to Run the Sample Client Programs
Most of the client sample programs accept an optional parameter that specifies the protocol that you want to use to connect to the CIM Object Manager. RMI is the default protocol.
For example, the following runs the SystemInfo program by connecting to myhost as the root user with the secret password using the HTTP protocol.
% java SystemInfo myhost root secret http
Sample Provider Programs
The sample provider programs are located in subdirectories of /usr/demo/wbem/provider and are described in the following table.
Table 6-2 Sample Provider Programs
Top-level provider program that fulfills requests from the CIM Object Manager and routes them to the Native_Example provider. This program implements the instanceProvider and methodProvider APIs, and declares methods that enumerate instances and get an instance of the Native_Example class. This program also declares a method that invokes a method to print the string "Hello World."
Creates a class that registers the NativeProvider provider with the CIM Object Manager. This MOF file identifies NativeProvider as the provider to service requests for dynamic data in the Native_Example class, and declares the properties and methods to be implemented by the NativeProvider.
The NativeProvider program calls this provider to implement methods that enumerate instances and get an instance of the Native_Example class. The Native_Example provider uses the APIs to enumerate objects and create instances of objects. The Native_Example class declares native methods, which call C functions in the native.c file to get system-specific values, such as host name, serial number, release, machine, architecture, and manufacturer.
This C program implements calls from the Native_Example Java provider in native C code.
A machine-generated header file for the Native_Example class. Defines the correspondence between the Java native method names and the native C functions that execute those methods.
Binary native C code compiled from the native.c file.
Set the LD_LIBRARY_PATH environment variable to the location of the provider class files:
Using the C shell, type:
% setenv LD_LIBRARY_PATH /usr/sadm/lib/wbem
Using the Bourne shell, type:
% LD_LIBRARY_PATH = /usr/sadm/lib/wbem
Copy the libnative.so shared library file to the directory specified by the LD_LIBRARY_PATH environment variable:
% cp libnative.so /usr/sadm/lib/wbem
Move the provider class files to the same path as the package in which they are defined:
% mv *.class /usr/sadm/lib/wbem
Become root superuser.
Stop the CIM Object Manager in the same shell in which you set the LD_LIBRARY_PATH environment variable:
# /etc/init.d/init.wbem stop
Note - When you set the LD_LIBRARY_PATH environment variable in a shell, you must stop and restart the CIM Object Manager in the same shell to recognize the new variable.
Start the CIM Object Manager:
# /etc/init.d/init.wbem start
Exit being superuser.
Compile the program's associated .mof file to load the appropriate class in the CIM Object Manager and to identify the provider:
% mofcomp -u root -p root_password Native_Example.mof
Start CIM WorkShop:
In the CIM WorkShop Toolbar, click the Find Class icon.
In the Input dialog box, type the name of the class that you want to display and then click OK.
The class displays in CIM Workshop.
How to Run the Sample Provider Programs
You must set up your environment before you can run the sample provider programs.