In this lesson, you will start up the DWARF middleware and an assosciated debugging tool.
At system built with DWARF consists of:
The middleware, in turn, has per-host and per-process parts, as well as several debugging tools. There is no central component or server.
Make sure you have a built and installed DWARF distribution. In particular, for this tutorial, you need:
src/stub/omni
)
src/middleware/helpers
)
src/middleware/servicemgr
)
src/services/DIVE
, requires QT)
Runing make all install
in the top build directory will install these automatically.
In a terminal window, type run-servicemgr
. This script starts the CORBA notification service daemon and the service manager. It also checks that the SLP daemon is running; that should be set up to start automatically as root if you have installed SLP properly.
If all goes well, you will see a bunch of messages such as:
atbruegge11:~/test/bin$ run-servicemgr Press Control-C to stop Service Manager and Notification Service. Checking for SLP Daemon...running, good. Checking network configuration...ok. Checking IP address...ok. Starting Notification Service.......ok. Starting Service Manager... Property 'EventChannelFactory' set to 'file:///tmp/notification.ior'. Property 'XmlDescriptions' set to '/home/macwilli/test/share'. Property 'ServiceBinaries' set to '/home/macwilli/test/bin'. 15:28:06.695 30044 1 main.cpp 168 Service Manager global not running: The DWARF Service Manager is starting... 15:28:06.734 30044 1 main.cpp 241 Service Manager global running: Using SLP Service Locator. 15:28:07.313 30044 2 servicemgr.cpp 171 ServiceManager_i 0/ 0 services: newServiceDescription(ServiceManager) 15:28:07.354 30044 2 servicemgr.cpp 141 ServiceManager_i 1/ 0 services: registerService(ServiceManager) 15:28:07.355 30044 2 activeservicedesc.cp 452 ActiveServiceDescription_i ServiceManager,Activating: Waiting for registration 15:28:07.531 30044 1 main.cpp 282 Service Manager global running: Using Notification Service. 15:28:07.566 30044 1 main.cpp 319 Service Manager global running: The DWARF Service Manager has started. 15:28:10.324 30051 2 servicemgr.cpp 171 ServiceManager_i 1/ 1 services: newServiceDescription(ARTTracker) 15:28:10.445 30051 2 servicemgr.cpp 171 ServiceManager_i 2/ 1 services: newServiceDescription(ObjectCalibration) 15:28:10.654 30051 2 servicemgr.cpp 171 ServiceManager_i 3/ 1 services: newServiceDescription(ManualTracker) 15:28:10.712 30051 2 servicemgr.cpp 171 ServiceManager_i 4/ 1 services: newServiceDescription(DIVE) 15:28:10.775 30051 2 servicemgr.cpp 171 ServiceManager_i 5/ 1 services: newServiceDescription(Selector) ... 15:28:22.929 30060 2 servicemgr.cpp 191 ServiceManager_i 42/ 1 services: addClonedServiceDescription(Selector1) 15:28:22.950 30060 2 servicemgr.cpp 191 ServiceManager_i 43/ 1 services: addClonedServiceDescription(Selector2) 15:28:23.018 30060 2 servicemgr.cpp 191 ServiceManager_i 44/ 1 services: addClonedServiceDescription(Selector3)
In another terminal window, run DIVE
. This starts the DWARF Interactive Visualization Environment, a debugging tool. You will see a window such as this:
What is going on? The program DIVE is a service, and so is the service manager itself. DIVE has a need for service managers, and the service manager has a matching ability. They are connected together and communicate via CORBA. DIVE uses this CORBA connection to query the service managers about the system state and display it as a graph.
Click on one of the boxes shown in DIVE. A window will appear showing additional information. Try clicking in different places on the boxes; the information will change.
Exercise Try to retrieve the following information:
Exercise If others are using DWARF in your network, try to find you who is running what services. Select "update" from the DIVE menu or even "update continuously" to refresh the view in DIVE.
Close DIVE, go back to the terminal you started the service manager from, and press Control-C. After s few seconds, you should see the lines
15:56:26.031 30044 1 main.cpp 344 Service Manager global not running: The DWARF Service Manager has shut down. Service Manager has terminated, cleaning up...done.
If you do not, try the command killall -9 servicemgr
in another terminal. Of course, you should never have to use this, but as we all know, no software is ever completely bug-free.
Up to DwarfMiddlewareTutorial, forward to DwarfMiddlewareTutorialLesson2
-- AsaMacWilliams - 17 Jul 2003