[QFJ-174] App Callback, toXML(Dictionary) function does not contain repeating groups Created: 10/May/07 Updated: 04/Jul/07 Resolved: 19/May/07 |
|
Status: | Closed |
Project: | QuickFIX/J |
Component/s: | None |
Affects Version/s: | 1.1.0 |
Fix Version/s: | 1.2.0 |
Type: | Bug | Priority: | Major |
Reporter: | Thomas Hügel | Assignee: | Steve Bate |
Resolution: | Not a bug | Votes: | 0 |
Labels: | None | ||
Environment: |
Linux, OSX |
Description |
When getting a message from fromApp() Callback, it seems, that the message does not contain the repeating groups. I´m using the toXML(Dictionary) function and have added some debug statements to the core library. The message.toString() function does not show up the repeating groups as well. If i read the message back from MessageStore, then the message.toXML(Dictionary) does list the repeating groups. To get the full message i have to reread the message from MessageStore (in my case a FileStorage). |
Comments |
Comment by Steve Bate [ 10/May/07 ] |
If the repeating groups are not present in message.toString() then they probably don't exist in the message. The toString() method is used for all message formatting and it's very heavily tested. The typical cause of the groups missing from a parsed message is that a data dictionary was not used when parsing the message. This could be because a data dictionary was not specified for message construction (if the message is constructed directly from a string) or because no data dictionary was specified for a session configuration. If you are sure you are using a data dictionary in your session configuration or when parsing a message directly, can you include a small example program that demonstrates the problem you are seeing? Thanks, Steve |
Comment by Thomas Hügel [ 10/May/07 ] |
Steve, well the flag UseDataDictionary was set to "N" because the ICAP Provider uses some Values not supported in FIX 4.4. But the message Store has the groups, why do they not show up in the message directly. If i set UseDataDictionary to Y, the messages are getting rejected and i do not receive them in the fromApp() callback. What do you recommend ?. Should i edit a custom FIX44.xml file or is there any other way ?. Regards |
Comment by Steve Bate [ 10/May/07 ] |
The raw message strings are put into the message store. The message objects passed to the application are generated by parsing the raw message strings and the groups will not be parsed correctly without a data dictionary. If your counterparty uses nonstandard fields, you can modify the FIX44.xml to include the additional fields. For example, you can copy the FIX44.xml, modify it for ICAP (e.g. ICAP_FIX44.xml) and use that in the session. |
Comment by Steve Bate [ 19/May/07 ] |
I've improved the XML formatting a bit. Remember, this is primarily to be used for simple debugging or diagnostic purposes. It's not FIXML. |