Thread: [Quickfix-developers] Incorrect data format
Brought to you by:
orenmnero
From: Vincent P. <vpr...@ph...> - 2008-05-28 21:50:35
|
I've been making changes to my code and all of a sudden, all my NewOrderSingle messages started giving me Incorrect data format errors. Here's a sample. <20080528-21:37:54, FIX.4.4:MP->CLIENT, incoming> (8=FIX. 4.49=11735=334=1131749=CLIENT52=20080528-21:37:54.58656=MP45=600458=Inco rrect data format for value371=54372=8373=610=115) I'm only posting because I didn't really make any changes that should have done this, and it may be a nasty bug to find, so thanks in advance for anybody's help. -- Vincent |
From: Mike G. <mg...@co...> - 2008-05-28 23:02:30
|
Vincent Predoehl wrote: > <20080528-21:37:54, FIX.4.4:MP->CLIENT, incoming> > (8=FIX.4.49=11735=334=1131749=CLIENT52=20080528-21:37:54.58656=MP45=600458=Incorrect data format for value371=54372=8373=610=115) 373=6 means "Incorrect data format for value" 372=8 means the MessageType (35) of the offending message was ExecutionReport (8) 45=6004 means that the MsgSeqNum (34) of the offending message was 6004 371=54 means that the tag with "incorrect data format for value" was the Side (54) tag So, look in your log for an execution report (35=8) with a sequence number of 6004 (34=6004). What was in the Side tag (54) of that message? -- Mike Gatny Connamara Systems, LLC http://www.connamara.com/ |
From: Vincent P. <vpr...@ph...> - 2008-05-29 01:14:49
|
On May 28, 2008, at 6:02 PM, Mike Gatny wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ > html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Vincent Predoehl wrote: >> <20080528-21:37:54, FIX.4.4:MP->CLIENT, incoming> >> (8=FIX. >> 4.49=11735=334=1131749=CLIENT52=20080528-21:37:54.58656=MP45=600458=I >> ncorrect data format for value371=54372=8373=610=115) > > 373=6 means "Incorrect data format for value" > > 372=8 means the MessageType (35) of the offending message was > ExecutionReport (8) > > 45=6004 means that the MsgSeqNum (34) of the offending message was > 6004 > > 371=54 means that the tag with "incorrect data format for value" > was the > Side (54) tag > > So, look in your log for an execution report (35=8) with a sequence > number of 6004 (34=6004). What was in the Side tag (54) of that > message? Where can I find the log? Do you mean the console output? > > -- > Mike Gatny > Connamara Systems, LLC > http://www.connamara.com/ > > > ---------------------------------------------------------------------- > --- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers -- Vincent |
From: Vincent P. <vpr...@ph...> - 2008-05-29 01:24:49
|
On May 28, 2008, at 6:02 PM, Mike Gatny wrote: > 373=6 means "Incorrect data format for value" > > 372=8 means the MessageType (35) of the offending message was > ExecutionReport (8) > > 45=6004 means that the MsgSeqNum (34) of the offending message was > 6004 > > 371=54 means that the tag with "incorrect data format for value" > was the > Side (54) tag > > So, look in your log for an execution report (35=8) with a sequence > number of 6004 (34=6004). What was in the Side tag (54) of that > message? I'm looking at the code, and I should be sending Side_SELL. That was working before, so some other field in the message might not be valid with Side_SELL. -- Vincent |
From: Vincent P. <vpr...@ph...> - 2008-05-29 02:58:15
|
On May 28, 2008, at 6:02 PM, Mike Gatny wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ > html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Vincent Predoehl wrote: >> <20080528-21:37:54, FIX.4.4:MP->CLIENT, incoming> >> (8=FIX. >> 4.49=11735=334=1131749=CLIENT52=20080528-21:37:54.58656=MP45=600458=I >> ncorrect data format for value371=54372=8373=610=115) > > 373=6 means "Incorrect data format for value" > > 372=8 means the MessageType (35) of the offending message was > ExecutionReport (8) > > 45=6004 means that the MsgSeqNum (34) of the offending message was > 6004 > > 371=54 means that the tag with "incorrect data format for value" > was the > Side (54) tag > > So, look in your log for an execution report (35=8) with a sequence > number of 6004 (34=6004). What was in the Side tag (54) of that > message? > I traced the problem to an operator== on two FIX::Side instance variables. I have no idea what that would cause that, but everything works fine now. Is there an accessor to the Char class I can use to compare the two characters? I'm having trouble locating it in the code. -- Vincent |
From: Mike G. <mg...@co...> - 2008-05-29 13:57:13
|
You shouldn't have a problem with operator==() if you use the type-safe way of handling msg fields: FIX::Side side; msg.get(side); if(FIX::Side_BUY == side) { } else if(FIX::Side_SELL == side) { } else { } -- Mike Gatny Connamara Systems, LLC http://www.connamara.com/ |