6. Message TypesΒΆ
This tag defines the message types supported by the AMPS instance. A
single AMPS instance can support multiple message types, as
MessageTypes
can contain multiple MessageType
definitions.
MessageType
definitions for fix
, nvfix
, xml
, json
,
bflat
, msgpack
, bson
, and binary
are automatically
loaded by AMPS. You only need to define a new MessageType
for
these types if the settings for the message type need to be changed
(for example, to create a custom FIX-based type that changes the
FieldSeparator
of the message).
AMPS loads the capability to use Google protocol buffer (protobuf
)
messages by default. To use protocol buffer messages, you configure one
or more message types that use the protobuf
module and load the
.proto
files that define the format of the messages you will be
processing with AMPS.
AMPS also supports the ability to create a composite message type by
combining a number of existing message types. Composite message types
are defined using the MessageType
configuration element.
Name | Description |
---|---|
Name
|
This element defines the name for the message type. The name is used to
specify By default, AMPS loads message types for |
Module |
The element specifies the name of the module that will be loaded for this message type. By default, AMPS loads the modules that implement the following message
types: AMPS supports creating composite message types out of existing message types
using the |
AMPSVersionCompliance |
Sets the version compatibility for FIX messages that AMPS sends to the
AMPS accepts three values for this option:
Default: For message types other than FIX, there is no difference between For most cases, you can leave this option set to the default. If you are
using a system that requires consistent FIX tags across messages, set this
parameter to |
Options |
Options to pass to a custom message type module. AMPS does not specify the
format or type of the elements within an Options element. AMPS simply
parses the XML and then sends the XML to the module. If you are configuring a
custom message type, see the documentation for that message type module for
details. |
FieldSeparator |
Option: Applies to Sequence of characters used to separate field items in a FIX message. Note: this field is the ASCII value of the char sequence. |
HeaderSeparator |
Option: Applies to Sequence of characters used to separate the header from the body in a FIX message. Note: this field is the ASCII value of the char sequence. |
MessageSeparator |
Option: Applies to Sequence of characters used to separate message items in the body in a FIX message. Note: this field is the ASCII value of the char sequence. |
EarlyTerminationOptimization |
Option: Applies to the By default, AMPS includes a optimization to allow the server to only
partially parse JSON messages. This may result in unexpected behavior for
some messages. For example, given a message such as
When set to Default: |
Type |
Required: Applies to message types that use the Obsolete usage A previous meaning of this element was made obsolete in AMPS
4.0 and later versions. That usage was replaced by the |
MessageType |
Required: Applies to message types that use the For composite message types, the See the Composite Message Types chapter in the AMPS User Guide for more information on composite message types. |
ProtoPath |
Required: Applies to message types that use the The path in which to search for alias ; full-path
The alias provides a short identifier to use when searching for A configuration may omit the alias, and simply provide the path. For example,
to use the path /mnt/repository/protodefs when no alias is provided, you
would declare a /mnt/repository/protodefs
or ;/mnt/repository/protodefs
The following ProtoPath declaration sets proto-archive;/mnt/shared/protofiles
AMPS uses the aliases provided in this configuration item when processing
import "proto-archive/AType.proto";
will load for the file at import "MyFavoriteType.proto";
will load the file at If no Unless your existing definitions use an aliasing scheme, it is most convenient to set the empty alias. You may specify any number of |
ProtoFile |
Required: Applies to message types that use Google protocol buffers. The name of the proto-archive/my-messages.proto
|
Message Type Parameters
<MessageTypes>
<!-- Define a FIX-based message type with custom separators -->
<MessageType>
<Name>fix-custom</Name>
<Module>fix</Module>
<!-- The following are FIX specific options -->
<FieldSeparator>1</FieldSeparator>
<HeaderSeparator>2</HeaderSeparator>
<MessageSeparator>5</MessageSeparator>
</MessageType>
<!-- Define a message type for a custom payload. 'type-module' must be the
Name of a Module specified in the configuration. -->
<MessageType>
<Name>custom-payload</Name>
<Module>type-module</Module>
</MessageType>
<!-- Define a composite message type that combines a json message and
a custom-payload message. -->
<MessageType>
<Name>custom-composite</Name>
<Module>composite-local</Module>
<MessageType>json</MessageType>
<MessageType>custom-payload</MessageType>
</MessageType>
</MessageTypes>
Message Types Example