The FIX data handler responds to configuration, I/O, and data validation errors as described below.
If the data handler child meta-object lacks required values or if the FIX business object does not follow the predefined structure, the data handler throws the following exception:
com.crossworlds.DataHandlers.Exceptions.ConfigurationException
Specifically this exception means that the type property in the attribute application-specific text is not a supported FIX message type and also not one listed in any of the STATIC_LOOKUP_TYPES_LIST configuration files. (See "Configuring the data Handler Child Meta-object".) The connnector catches this exception and logs a fatal error.
A fatal error occurs when any of the java.io classes throws an IOException.
The data handler detects data validation errors during FIX-message-to-business-object processing. Data validation errors are detected after the data handler successfully populates a message header business object. The data handler makes use of the message header information to create an error report. However, if a message header business object is not populated properly and does not pass validation, the following exception is thrown: com.crossworlds.DataHandlers.Exceptions.MalformedDataException
This is a fatal error.
The FIX message data is validated against the contents of:
Data validation errors are reported via an error report business object. An error report business object is shipped in the \samples directory. The name of the error report business object is FIXnn_ErrorReport, where nn is the FIX release version. ("ErrorReport" is the value specified in the data handler child meta-object, and can be changed. See "Configuring the data Handler Child Meta-object".)
Table 28 shows the structure of the error report business
object.
Table 28. Error Report business object Structure
Attribute Name | AtributeType | Comment |
Header | FIXnn_StandardMessageHeaderCardinality = 1 | The header from the message that failed validation |
ErrorMsg |
String | FIX Error Message |
ErrorCode |
String | FIX Error Code |
ErrorTag |
String | Number of the FIX field that failed validation |
The ErrorCode values returned in an error code business object are described in the sections below. For more information on FIX errors, see the the Financial Information Exchange Protocol (FIX) documentation available at:
http://www.fixprotocol.org/cgi-bin/Welcome.cgi
Errors are handled by by the data handler. Table 29 summarizes these errors.
Error Code | Description |
0 | Invalid tag number. Checked by the FIX parser. |
1 | Required tag missing. Checked by the data handler, after the business object mapping, by the isRequired attribute property. |
2 | Tag undefined for message type. Checked by the data handler during business object mapping. |
3 | Tag undefined for message version. Data handler checks this when ErrorCode 2 is detected. |
4 | Tag specified without a value. Detected by the FIX parser as tag=[SOH] |
5 | Value is incorrect (out of range) for this tag. The data handler checks the value against those listed in theVALUES=<comma-separated list> application-specific text property of the business object definition. The data handler also checks the value against those in files pointed to by the data handler child meta-object attributes. |
6 | Incorrect data format for value. FIX stipulates that all formats (int, float, char, UTCDatetime, and so on) except for string and custom be validated. Data of type custom is compared to types listed in the STATIC_LOOKUP_TYPES_LIST attribute of the data handler child meta-object. If the data format cannot be validated, a configuration exception is thrown. |
7 | N.A. |
8 | |
9 | |
10 | |
11 | Invalid message type. Detected by data handler using the FIXnnMessages attribute in the data handler child meta-object, which points to a lookup file that contain valid values. |
12 | XML validation error. Not supported |
13 | Tag appears more than once. This error does not occur if the data is of the repeating group |
14 | Tag specified out of required sequence. |
15 | Repeating group fields are out of order. |
16 | Incorrect NumInGroup count for repeating group; the NumInGroup value does not match the number of business objects in the corresponding container. |
17 | Non "data" value includes field delimiter (SOH character) |