3.4.2.2 Message: ChannelDescribe

Topic Version1Published10/31/2016
For StandardETP v1.1

Sent from consumer to producer to request metadata about one or more channels, specified by URI. The URI may refer to a single channel or a higher-level object, such as a well, wellbore, or log. The producer responds with one or more ChannelMetadata messages.

The ChannelStreaming protocol does not define any specific meaning or behaviors to specific URIs. Defining meaning is the responsibility of other specifications, such as WITSML.

The URI “eml://” explicitly refers to all channels on the producer whose status is not 'Closed'—that is, all open channels across dataspaces across all MLs However, due to the potential size of this list, a server may decline to enumerate all channels and send EPERMISSION_DENIED exception.

The ChannelDescribe message is effectively a subscription to this URI for the length of the session. If additional channels appear on the producer that are relevant in the context of the requested URI, then the producer MUST send additional ChannelMetadata messages. The consumer can then start/stop streaming on those channels as desired.

If the channel status (in the ChannelMetadata record) changes (e.g. goes from active to inactive) then the producer MUST also send a ChannelStatusChange message.

New channels (i.e. ChannelMetadata messages) can be associated to the original ChannelDescribe message through the correlationId.

Message Type ID: 1

Correlation Id Usage: n/a

Multi-part: False

Sent by: consumer

Attribute

Description

Data Type

Min

Max

uris

A list of URIs to describe.

string

1

n

Avro Source

{

      "type": "record",

      "namespace": "Energistics.Protocol.ChannelStreaming",

      "name": "ChannelDescribe",

      "messageType": "1",

      "protocol": "1",

      "senderRole": "consumer",

      "protocolRoles": "producer,consumer",

      "fields":

     [

         {

          "name": "uris",

          "type": { "type": "array", "items": "string" }

     }

     ]

}