[Quickfix-developers] Problem with the Qfix 1.9.2 for Security List message
Brought to you by:
orenmnero
|
From: Vaddineni, A. K. <ani...@cr...> - 2006-11-18 11:40:53
|
Hi All,
I am using QFIX 1.9.2 to get market data from LME exchnage. I am getting checksum error for the security list message received from exchange. I have checked the entire messages and it's checksum and found that there is no problem with the message received from exchange. When I debugged, I found that the QFIX is not calculating the checksum properly if there are repeating groups. Here is the Security List messages.
8=FIX.4.3^A9=982^A35=y^A56=CSMAFIX2^A49=LME^A34=4^A52=20061118-10:18:00^A320=0000000001^A322=M
X20061118 10:18:00.754^A560=0^A146=18^A55=MX^A461=FFICS^A10004=S^A541=20061213^A55=MX^A461=FFI
CS^A10004=S^A541=20070110^A55=MX^A461=FFICS^A10004=S^A541=20070214^A55=MX^A461=FFICS^A10004=S^
A541=20070314^A55=MX^A461=FFICS^A10004=S^A541=20070411^A55=MX^A461=FFICS^A10004=S^A541=2007050
9^A55=MX^A461=FFICS^A10004=S^A541=20070613^A55=MX^A461=FFICS^A10004=S^A541=20070711^A55=MX^A46
1=FFICS^A10004=S^A541=20070808^A55=MX^A461=FFICS^A10004=S^A541=20070912^A55=MX^A461=FFICS^A100
04=S^A541=20071010^A55=MX^A461=FFICS^A10004=S^A541=20071114^A55=MX^A461=OCEICS^A10004=S^A541=2
0061213^A10006=T^A10007=1^A10009=10^A10008=10^A55=MX^A461=OPEICS^A10004=S^A541=20061213^A10006
=T^A10007=1^A10009=10^A10008=10^A55=MX^A461=OCEICS^A10004=S^A541=20070110^A10006=T^A10007=1^A1
0009=10^A10008=10^A55=MX^A461=OPEICS^A10004=S^A541=20070110^A10006=T^A10007=1^A10009=10^A10008
=10^A55=MX^A461=OCEICS^A10004=S^A541=20070214^A10006=T^A10007=1^A10009=10^A10008=10^A55=MX^A46
1=OPEICS^A10004=S^A541=20070214^A10006=T^A10007=1^A10009=10^A10008=10^A10=220^A
The problem is happening when there is user defined repeating group(10007 in this case). Here is my Data Disctionary.
<fix major="4" minor="3">
<header>
<field name="BeginString" required="Y" />
<field name="BodyLength" required="Y" />
<field name="MsgType" required="Y" />
<field name="SenderCompID" required="Y" />
<field name="TargetCompID" required="Y" />
<field name="OnBehalfOfCompID" required="N" />
<field name="DeliverToCompID" required="N" />
<field name="SecureDataLen" required="N" />
<field name="SecureData" required="N" />
<field name="MsgSeqNum" required="Y" />
<field name="SenderSubID" required="N" />
<field name="SenderLocationID" required="N" />
<field name="TargetSubID" required="N" />
<field name="TargetLocationID" required="N" />
<field name="OnBehalfOfSubID" required="N" />
<field name="OnBehalfOfLocationID" required="N" />
<field name="DeliverToSubID" required="N" />
<field name="DeliverToLocationID" required="N" />
<field name="PossDupFlag" required="N" />
<field name="PossResend" required="N" />
<field name="SendingTime" required="Y" />
<field name="OrigSendingTime" required="N" />
<field name="XmlDataLen" required="N" />
<field name="XmlData" required="N" />
<field name="MessageEncoding" required="N" />
<field name="LastMsgSeqNumProcessed" required="N" />
<field name="OnBehalfOfSendingTime" required="N" />
<group name="NoHops" required="N">
<field name="HopCompID" required="N" />
<field name="HopSendingTime" required="N" />
<field name="HopRefID" required="N" />
</group>
</header>
<trailer>
<field name="SignatureLength" required="N" />
<field name="Signature" required="N" />
<field name="CheckSum" required="Y" />
</trailer>
<messages>
<message name="Heartbeat" msgtype="0" msgcat="admin">
<field name="TestReqID" required="N" />
</message>
<message name="Logon" msgtype="A" msgcat="admin">
<field name="EncryptMethod" required="N" />
<field name="HeartBtInt" required="Y" />
<field name="RawDataLength" required="Y" />
<field name="RawData" required="Y" />
<field name="ResetSeqNumFlag" required="N" />
<field name="MaxMessageSize" required="N" />
<group name="NoMsgTypes" required="N">
<field name="RefMsgType" required="N" />
<field name="MsgDirection" required="N" />
</group>
<field name="TestMessageIndicator" required="N" />
<field name="Username" required="N" />
<field name="Password" required="N" />
</message>
<message name="TestRequest" msgtype="1" msgcat="admin">
<field name="TestReqID" required="Y" />
</message>
<message name="ResendRequest" msgtype="2" msgcat="admin">
<field name="BeginSeqNo" required="Y" />
<field name="EndSeqNo" required="Y" />
</message>
<message name="Reject" msgtype="3" msgcat="admin">
<field name="RefSeqNum" required="Y" />
<field name="RefTagID" required="N" />
<field name="RefMsgType" required="N" />
<field name="SessionRejectReason" required="N" />
<field name="Text" required="N" />
<field name="EncodedTextLen" required="N" />
<field name="EncodedText" required="N" />
</message>
<message name="SequenceReset" msgtype="4" msgcat="admin">
<field name="GapFillFlag" required="N" />
<field name="NewSeqNo" required="Y" />
</message>
<message name="Logout" msgtype="5" msgcat="admin">
<field name="Text" required="N" />
<field name="EncodedTextLen" required="N" />
<field name="EncodedText" required="N" />
</message>
<message name="BusinessMessageReject" msgtype="j" msgcat="admin">
<field name="RefMsgType" required="Y" />
<field name="BusinessRejectRefID" required="Y" />
<field name="BusinessRejectReason" required="Y" />
<field name="Text" required="N" />
</message>
<message name="News" msgtype="B" msgcat="app">
<field name="Headline" required="Y" />
<group name="LinesOfText" required="Y">
<field name="Text" required="N" />
<field name="EncodedTextLen" required="N" />
<field name="EncodedText" required="N" />
</group>
</message>
<message name="MarketDataRequest" msgtype="V" msgcat="app">
<field name="MDReqID" required="Y" />
<field name="SubscriptionRequestType" required="Y" />
<field name="MarketDepth" required="N" />
<field name="MDUpdateType" required="N" />
<field name="AggregatedBook" required="N" />
<group name="NoMDEntryTypes" required="Y">
<field name="MDEntryType" required="Y" />
</group>
<group name="NoRelatedSym" required="Y">
<field name="Symbol" required="Y" />
</group>
<group name="NoTradingSessions" required="N">
<field name="TradingSessionID" required="N" />
<field name="TradingSessionSubID" required="N" />
</group>
</message>
<message name="MarketDataSnapshotFullRefresh" msgtype="W" msgcat="app">
<field name="MDReqID" required="Y" />
<field name="Symbol" required="Y" />
<field name="CFICode" required="N" />
<group name="LMENoOfInstrumentLegs" required="N" >
<field name="LMEPromptType" required="N" />
<field name="LMEMaturityRollingPrompt" required="N" />
<field name="MaturityDate" required="N" />
<field name="LMEMaturityAveragePrompt" required="N" />
</group>
<field name="StrikePrice" required="N" />
<group name="NoMDEntries" required="N">
<field name="MDEntryType" required="N" />
<field name="MDEntryPx" required="N" />
<field name="MDEntryDate" required="N" />
<field name="MDEntrySize" required="N" />
<field name="MDEntryTime" required="N" />
<field name="MDEntryPositionNo" required="N" />
</group>
</message>
<message name="MarketDataRequestReject" msgtype="Y" msgcat="app">
<field name="MDReqID" required="Y" />
<field name="MDReqRejReason" required="Y" />
<field name="Text" required="N" />
<field name="EncodedTextLen" required="N" />
<field name="EncodedText" required="N" />
</message>
<message name="SecurityListRequest" msgtype="x" msgcat="app">
<field name="SecurityReqID" required="Y" />
<field name="SecurityListRequestType" required="Y" />
<field name="Symbol" required="Y" />
</message>
<message name="SecurityList" msgtype="y" msgcat="app">
<field name="SecurityReqID" required="Y" />
<field name="SecurityResponseID" required="Y" />
<field name="SecurityRequestResult" required="N" />
<group name="NoRelatedSym" required="Y">
<field name="Symbol" required="N" />
<field name="CFICode" required="N" />
<field name="LMEPromptType" required="N" />
<field name="MaturityDate" required="N" />
<field name="LMEMaturityRollingPrompt" required="N" />
<field name="LMERollingPromptDate" required="N" />
<field name="LMEMaturityAveragePrompt" required="N" />
<field name="LMESecurityStrikeType" required="N" />
<field name="StrikePrice" required="N" />
<group name="LMENoStrikeTableRows" required="N" >
<field name="LMEStrikeLowLimit" required="N" />
<field name="LMEStrikeGradation" required="N" />
</group>
</group>
</message>
<message name="SecurityStatusRequest" msgtype="e" msgcat="app">
<field name="SecurityStatusReqID" required="Y" />
<field name="Symbol" required="N" />
<field name="SubscriptionRequestType" required="Y" />
</message>
<message name="SecurityStatus" msgtype="f" msgcat="app">
<field name="SecurityStatusReqID" required="Y" />
<field name="Symbol" required="Y" />
<field name="CFICode" required="N" />
<field name="LMEPromptType" required="N" />
<field name="LMEMaturityRollingPrompt" required="N" />
<field name="MaturityDate" required="N" />
<field name="LMEMaturityAveragePrompt" required="N" />
<field name="TradingSessionID" required="Y" />
</message>
</messages>
<fields>
<field number="1" name="Account" type="STRING" />
<field number="2" name="AdvId" type="STRING" />
<field number="3" name="AdvRefID" type="STRING" />
.........
...........
...........
</field>
<field number="654" name="LegRefID" type="STRING" />
<field number="655" name="ContraLegRefID" type="STRING" />
<field number="656" name="SettlCurrBidFxRate" type="FLOAT" />
<field number="657" name="SettlCurrOfferFxRate" type="FLOAT" />
<field number="658" name="QuoteRequestRejectReason" type="INT" />
<field number="659" name="SideComplianceID" type="STRING" />
<field number="10000" name="LMEMaturityRollingPrompt" type="STRING" />
<field number="10001" name="LMEMaturityAveragePrompt" type="STRING" />
<field number="10002" name="LMELegMaturityRollingPrompt" type="STRING" />
<field number="10004" name="LMEPromptType" type="CHAR" />
<field number="10006" name="LMESecurityStrikeType" type="CHAR" />
<field number="10007" name="LMENoStrikeTableRows" type="NUMINGROUP" />
<field number="10008" name="LMEStrikeLowLimit" type="FLOAT" />
<field number="10009" name="LMEStrikeGradation" type="FLOAT" />
<field number="10010" name="LMENoOfInstrumentLegs" type="NUMINGROUP" />
<field number="10011" name="LMERollingPromptDate" type="INT" />
</fields>
</fix>
Is there anything wrong with the data dictionary?
Thanks,
Anil. V
==============================================================================
Please access the attached hyperlink for an important electronic communications disclaimer:
http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
==============================================================================
|