Status Streams

Each manager provides one status stream. The stream may contain status messages about different entities, such as, managers, containers, workspaces, projects, and so on. The messages are published at regular intervals.

Other information is published only when something changes state. For example, a message about a container being added is sent only when a container is actually added. As in any stream, all messages in the status stream have the same schema. The schema includes the following fields:

SourceTimestamp

The SourceTimestamp indicates when the event occurred. For example, in a Status message, SourceTimestamp will be the time when the last Status change took place.

Therefore, the SourceTimestamp in a status message will frequently be lower than (earlier than) the row timestamp in the same message. (For information about the row timestamp, see the Sybase CEP Programmer's Guide .) The row timestamp in the message is simply when the message was sent, not when the event described in the message actually occurred. For data sources that send the message as soon as the event occurs, or for messages containing info that changes frequently (such as the Message Count messages), the SourceTimestamp and row timestamp are usually very close.

ObjectID

The object identifier. For example, if we are requesting information about a project, the object ID will uniquely identify which project we want information about. The objectID is often in the form of a "path", in other words, a string that contains a series of names separated by slashes. For example, the objectID of a query is in the following form:

<WorkspaceName>/<FullCclPath>/<StatementNumber>

ObjectID2

The object identifier of the second object (if applicable). For example, if we are requesting information about latency between 2 streams, then the first and second ObjectIDs are the URIs of the two streams, each of which will (like any stream URI) be in a form similar to the following:

ccl://proton:6789/Stream/Default/RFID_AdapterReadPallet/Out

MessageGroup and MessageName

The combination of MessageGroup and MessageName specify the "topic" of the message. For example, if the object ID is the ID of a container, then the combination of MessageGroup "ContainerInfo" and MessageName "HeartbeatPeriod" indicate that the message is about the frequency with which the container sends heartbeats to the manager. For more detail about the MessageGroups and MessageNames, see Status Information.

Value

This is the specific value of the message, which is always in the form of a string. For example, if the MessageName is "HeartbeatPeriod", then the value might be "5" to indicate 5 seconds.

As you can see, with only 6 fields (plus the row timestamp), the structure of status messages is simple. However, since there are dozens of different types of messages (in other words, dozens of different message names), the code that you write to receive and use status messages must "interpret" the messages appropriately. For example, if you want to perform mathematical operations on the number of messages received so far by a particular query, you will need to convert the message value string to a numeric value. For information about currently supported MessageNames that you may see in status messages, see Status Information.

To view a status stream, do the following:

  1. Start Studio.
  2. Click on the "Debug" menu.
  3. Select the "View stream..." option.
  4. When the dialog box is displayed, enter one of the following URIs:
    ccl://managerhost:port/Status/Workspace/WorkspaceName
    	ccl://managerhost:port/Status/Service/Manager
    

    For example, to view the status stream for the workspace named "Default" when the manager is running on the machine named "penguin1", use the URI.

    ccl://penguin1:6789/Status/Workspace/Default