The fundamental unit of data Rhapsody operates on is known as a message. A message is a discrete block of data received at a communication point under a messaging protocol.
A message may be unstructured (or handled as unstructured) or structured (intelligent). An unstructured message normally passes through the engine with little or no examination or modification, while an intelligent message has a well-known defined structure, which enables Rhapsody to operate on the message content. Structured messages conform to a messaging standard such as:
HL7
EDIFACT
X.12
HIPAA
XML
User-defined flatwire structure
Message Attributes
Messages in Rhapsody are effectively composed of three attributes:
Message Body
The message body is the data contained within a message.
In versions of Rhapsody before Rhapsody 6.4, the engine is limited to receiving, storing or sending messages no larger than 2GB. This limitation has been removed as of Rhapsody 6.4. However, the maximum size of messages that can be processed by the engine is dependent on a number of factors and in most cases remains much smaller than 2GB.
Message Metadata
Message metadata contains all message data that is not the message body, and refers to details about the message, including:
- The time the message entered Rhapsody.
- A reference to the message body.
- The message body encoding.
- The message's current location within Rhapsody and its next destination.
- Message properties.
Message properties can also be attached to messages. Such properties are simple string values attached to the message and accessed via a name (stored as a name-value pair). The properties can be extracted from the message itself, or other arbitrary values configured by an interface developer. This allows these values to be easily used again at a later point for such actions as:
- Conditionally routing messages.
- Locating a message and viewing its contents in the Management Console.
- Dynamic configuration of a filter or communication point (for example, the remote hostname parameter of a TCP Client communication point can be retrieved from a message property, rather than being specified as a fixed value).
The most common use of message properties is via property extraction on a route. Routes can be configured to extract known fields from every message and place them into the defined message property. This can be done through the Route Properties dialog and requires a message definition to be associated with the route. The interface developer can then associate a name for the message property with a path to the field in each message. Properties can be extracted from every message that passes through the route, or on only specified message types.
Refer to Message Properties for details on how to use message properties to configure components.
Message properties are not designed to hold large amounts of data. To avoid issues, it is recommended you use message properties no more than a few kilobytes in size.
Message Events
Message events describe the path a message takes as it is processed through Rhapsody. Every transition the message makes between components is recorded as a separate message event.
Message Handling
There are three types of information that are saved for a message – the message metadata, the message body and message events:
- A message event is created and stored every time a message passes through a filter or communication point. Message events are used to generate the message path view (Message View) in the Management Console.
- The message body, which stores the actual message contents, is written to disk when Rhapsody receives the message and thereafter whenever the message body is modified.
- The message metadata is saved to disk when message properties, message body or any other message information is modified. It is also saved when the message is parsed by a definition on the route. A message is parsed once per route when it is first accessed (in other words, it is not parsed by every filter on the route).
Message and Acknowledgment Tracking
When sending data within an enterprise or to an external destination, it is vital to know the message has arrived correctly at its intended destination. Rhapsody automatically tracks message acknowledgments from receiving systems and optionally returns them to the originating system.
For each outgoing tracked message, Rhapsody maintains a watch for a response and matches it to the original message. The status of a tracked message can be viewed at any time using the Management Console. Such messages can be automatically resent if no response arrives after a given period. Alternatively, these messages can be manually resent via the Management Console.
Handling Intelligent Messages
Support for handling intelligent messages is provided by the Rhapsody Messaging Toolkit toolset, included in the Rhapsody distribution. Symphonia components include:
- EDI (Electronic Data Interchange) Designer - enables message definitions to be constructed.
- EDI Explorer - enables messages to be examined according to a definition.
- Map Designer - enables message transformation rules to be established.
- Symphonia - an engine embedded within the Rhapsody engine.