fix - QuickFix error: Tag appears more than once in 'W' message -


i receive fix server following 'w' message:

8=fix.4.2|9=141|35=w|34=98|49=cx|52=20150401-09:12:30.247|56=cacib_md2|55=608230|262=48|9883=idb|268=2|269=0|58=no bid available|269=1|58=no offer available|10=249 

which has tag 58 twice

and quickfix application automatically sends reject message server:

8=fix.4.2|9=104|35=3|34=91|49=cacib_md2|52=20150401-09:12:29.661|56=cx|45=90|58=tag appears more once|371=58|372=w|10=008 

from reading in internet understood there problem dictionary.

i don't have dictionary configuration in quickfix config file. not sure default dictionary resides, 1 found (fix42.xml) defines tag 58 part of group 'w' message:

  <message name='marketdatasnapshotfullrefresh' msgcat='app' msgtype='w'>    <field name='mdreqid' required='n' />    <field name='symbol' required='y' />    <field name='symbolsfx' required='n' />    <field name='securityid' required='n' />    <field name='idsource' required='n' />    <field name='securitytype' required='n' />    <field name='maturitymonthyear' required='n' />    <field name='maturityday' required='n' />    <field name='putorcall' required='n' />    <field name='strikeprice' required='n' />    <field name='optattribute' required='n' />    <field name='contractmultiplier' required='n' />    <field name='couponrate' required='n' />    <field name='securityexchange' required='n' />    <field name='issuer' required='n' />    <field name='encodedissuerlen' required='n' />    <field name='encodedissuer' required='n' />    <field name='securitydesc' required='n' />    <field name='encodedsecuritydesclen' required='n' />    <field name='encodedsecuritydesc' required='n' />    <field name='financialstatus' required='n' />    <field name='corporateaction' required='n' />    <field name='totalvolumetraded' required='n' />    <group name='nomdentries' required='y'>     <field name='mdentrytype' required='y' />     <field name='mdentrypx' required='y' />     <field name='currency' required='n' />     <field name='mdentrysize' required='n' />     <field name='mdentrydate' required='n' />     <field name='mdentrytime' required='n' />     <field name='tickdirection' required='n' />     <field name='mdmkt' required='n' />     <field name='tradingsessionid' required='n' />     <field name='quotecondition' required='n' />     <field name='tradecondition' required='n' />     <field name='mdentryoriginator' required='n' />     <field name='locationid' required='n' />     <field name='deskid' required='n' />     <field name='openclosesettleflag' required='n' />     <field name='timeinforce' required='n' />     <field name='expiredate' required='n' />     <field name='expiretime' required='n' />     <field name='minqty' required='n' />     <field name='execinst' required='n' />     <field name='sellerdays' required='n' />     <field name='orderid' required='n' />     <field name='quoteentryid' required='n' />     <field name='mdentrybuyer' required='n' />     <field name='mdentryseller' required='n' />     <field name='numberoforders' required='n' />     <field name='mdentrypositionno' required='n' />     <field name='text' required='n' />     <field name='encodedtextlen' required='n' />     <field name='encodedtext' required='n' />    </group>   </message> 

similar thing happens when 'w' message arrives not 2 58 tags, 2 269 (mdentrytype) tags:

8=fix.4.2|9=217|35=w|34=110|49=cx|52=20150401-09:23:19.787|56=cacib_md2|55=561832|262=26|9883=idb|268=2|269=0|58=no bid available|269=1|270=123|271=1|272=20150401|273=09:23:19.551|59=0|126=20150401-19:23:19.551|290=1|9139=cacib_uat2|10=016 

again quickfix automatically sends reject:

8=fix.4.2|9=107|35=3|34=111|49=cacib_md2|52=20150401-09:23:19.848|56=cx|45=110|58=tag appears more once|371=269|372=w|10=153 

so can done here?

use following flag in configuration file.it y default, check sure.

validatefieldsoutoforder=n

confirm if following there in configuration, default y anyway.you should use datadictionary if using repeating groups, mentioned in quickfix configuration page.

usedatadictionary=y

and has path data dictionary present.

datadictionary=/path_to_data_dictionary_file


Comments

Popular posts from this blog

tcpdump - How to check if server received packet (acknowledged) -