Solstice Enterprise Manager 4.1 Customizing Guide Doc Set ContentsPreviousNextIndex


Chapter 16

Debugging Request Templates

There are several facilities available to you in debugging Nerve Center request templates:

The Solstice Enterprise Manager (Solstice EM) em_debug utility also provides facilities that are useful in debugging templates.

This chapter describes the following topics:

16.1 Nerve Center Debugging Agents

As a part of em_debug, there are a number of Nerve Center debugging "agents" which track aspects of Nerve Center operation and display messages in the shell where they are invoked.

For example, you can activate the nc_state agent by entering the following command:

hostname% em_debug -c "on nc_state"

In reporting on state transitions in a running request, nc_state refers to states by number. States are numbered by order of appearance in the left-most column in the Design Advanced Requests textual display.

You should invoke the debugging agents before launching the request in the Network Views.

The Nerve Center debugging agents report on the activities of any request running in the MIS. If you have multiple requests running, it may be difficult to isolate which request is the cause of a message that is displayed. For this reason, it is recommended that you only have the request running which you are trying to debug when using the NC debugging agents.

16.2 Activating RCL Print Statements

Request Condition Language provides a print() function which you can use in conditions to help you in debugging templates--by printing current values of variables, for example. You can use the following em_debug command to activate RCL print() statements:

hostname% em_debug -c "on misc_stdout"

The RCL print() statements will be displayed in the shell where this command was invoked.

As with the NC debugging agents, the misc_stdout agent turns on print statements for all requests running in the MIS that contain the print() function. If you follow a practice of removing print() statements from templates after new conditions have been debugged, you can use print() statements to debug new templates even while other requests are running in the MIS. Only messages from the request being debugged are then displayed.

Keep in mind that the RCL print() function always returns a value of true. If a print() statement is the last statement in a condition that defines a transition, that transition will always occur. Accordingly, when debugging a template, you may want to avoid print() statements in conditions that define transitions, and restrict them to conditions that are used as actions after a transition.


Note – An RCL print() statement will only be executed if it is in a condition that is evaluated. If a state is never "woken up" by either a poll for an attribute value or the arrival of an incoming event, the conditions defining the transitions out of that state will never be evaluated. Also, the conditions that define transitions out of a state are evaluated in the order they appear in the template. If a prior condition has evaluated to true, and the request transitions out of the state, the subsequent transitions in that state are not evaluated.

16.3 Turning Off Debug Agents

You can turn off a particular debugging agent by entering the following commend:

% em_debug -c "off <agent-name>"

If you want to turn off all debugging, you can use the em_debug wildcard feature, as follows:

% em_debug -c "off *"


Sun Microsystems, Inc.
Copyright information. All rights reserved.
Contents   |   Previous   |   Next   |   Index