The message header contains the same fields for every message. These fields include:
• ObjectId — The object identifier for the message header. Whenever a message header and message body are combined together as a message, the ObjectId value in the header is used to identify the combined message object. As a result, this value is the same as the message ID listed on the
[Ensemble] > [Messages] page and other pages in the Ensemble Management Portal. • Type — The message type, Request or Response.
• Priority — The priority of the message relative to others in the queue: RealTime (1), High (2), Normal (3), or Low (4). The Ensemble messaging engine assigns priority values to messages automatically, in the course of normal processing, for its own use. Message priority cannot be programmed into a message class or configured in any way. Priority values are based in part on whether the message is synchronous (High) or asynchronous (Normal). Also, messages that start or stop a production are assigned greater priority than other types of message.
• Invocation — The style of invocation for message: Queue or Inproc.
Inproc means the message will be formulated, sent, and delivered in the same job in which it was created. The job will not be released to the sender’s pool until the message is delivered to the target. Queue means the message is created in one job, then placed on a queue, at which time the original job is released. Later, when the message is processed, a different job will be allocated for the task. • Description — A text description of the message. The Ensemble Business Process Language (BPL)
provides text in this field automatically, based on the type of BPL activity that generated the message.
• TimeCreated — A Queue message lists the time the message was placed on the queue. An Inproc message lists the time the Send method was called.
• TimeProcessed — A Queue message lists the time the message was taken off the queue to be processed. An Inproc message lists when processing of the message began; for Inproc messages,
TimeProcessed will be very close to TimeCreated.
• Status — Indicates the status of the message within its normal life-cycle: Created, Queued, Delivered, Deferred, Completed, Discarded, or Suspended. If there is a request-response pair, the value does not indicate an overall status for the pair; a request may end up with a different Status
from its corresponding response.
A message in transit has a Status of Created, until it finds its place on a queue, when it becomes Queued. A message that reaches its destination is at first Delivered, then finally Completed. An asynchronous response is Discarded if it arrives after the timeout period for the corresponding request expired. A message response can been Deferred by a business operation to be sent later on; when a Deferred message is finally sent, it has a Status of Completed.
Some business operations are designed to set the status of any failed messages to Suspended; such a message goes on a special queue where Ensemble keeps all Suspended messages. Later, a system administrator can use the Ensemble Management Portal to diagnose the problem, and resend Suspended messages after the problem is fixed. For example, if the problem is on the external side of the communication, the external system can be repaired, and then the message can be resent.
• IsError — An integer value of 1 means that IsError is true; the message encountered an error. A value of 0 means IsError is false; the message did not encounter any errors.
• ErrorStatus — If IsError is 1, then this is the text associated with the error. When IsError is 0,
ErrorStatus is the string “OK”.
• CorrespondingMessageId — If the message Type is a Response, this field contains the ObjectId
of the corresponding request. If the message Type is a Request, this field contains the ObjectId of the corresponding response (if any) or it is blank.
• SessionId — The unique identifier for the session that is (or was) associated with this message. A session marks the beginning and end of all the activities prompted by a primary request message from outside Ensemble. The primary request message has an ID value that is identical to the Ses- sionId. Several additional messages may be instantiated within Ensemble during the session, in order to fulfill the primary request. All of these messages share the same SessionId, but each has a different ID value.
• SourceConfigName — The name of the configuration item that sent the message.
• TargetConfigName — The name of the configuration item that was intended to receive the message. • SourceBusinessType — BusinessService, BusinessProcess, BusinessOperation, or Unknown. • TargetBusinessType — BusinessService, BusinessProcess, BusinessOperation, or Unknown. • BusinessProcessId — Every business process that gets executed has an instance and this is the
object ID of that instance. If the message is a request, this field identifies the business process in
whose context the message was created (sender). If the message is a response, this field identifies the business process to which it is being returned (receiver). This field is empty in various circum- stances, for example if an error occurred.
• TargetQueueName — The destination “address” for the message: Where is it going? The Tar- getQueueName may be a name or a number. A name identifies a public queue, such as Ens.Actor
for business processes. A number is the job ID associated with the private queue of a business service, business process, or business operation.
• ReturnQueueName — The return “address” for the message: Where did it come from? The
ReturnQueueName may be a name or a number. A name identifies a public queue, such as Ens.Actor
for business processes. A number is the job ID associated with the private queue of a business service, business process, or business operation. The ReturnQueueId value is listed even if there is no response expected or needed for a particular request message type.
• MessageBodyClassName — The class name of the message body.
• MessageBodyId — The object identifier for the message body. This field matches the ObjectId
field in the Message Body table.