Thread: [Quickfix-users] message rejected: required tag missing (with user-defined tag)
Brought to you by:
orenmnero
From: George M. C. <ge...@qu...> - 2005-04-29 13:21:53
|
I have defined several user-defined tags, the type-safe way, in c#. You will find the definitions inlined below. There is one tag that causes a rejection required tag missing error when the target tries to ACK my new orders - that tag is IdTrade, seen in the code snippet directly below. None of the other user-defined tags causes this error. When I comment out the code that sets idTrade, the error goes away. What is different about that tag? I even changed its tag number, and tried changing the order in which I set the fields, and the issue still happens. How does a user-defined tag become to be considered a required tag by quickfix??? //custom fields IdTrade idTrade = new IdTrade( tr.idTRADE ); order.setField( idTrade ); WTR1 wtr1 = new WTR1( (double)tr.WTR_1 ); order.setField( wtr1 ); Eliq1 eliq1 = new Eliq1( (double)tr.ELiq_1 ); order.setField( eliq1 ); Signal signal = new Signal( tr.Signal ); order.setField( signal ); DWRPV0 dwrpv0 = new DWRPV0( (double)tr.DWRPV0 ); order.setField( dwrpv0 ); DWRPV1 dwrpv1 = new DWRPV1( (double)tr.DWRPV_1 ); order.setField( dwrpv1 ); V61 v61 = new V61( (double)tr.V_6_1 ); order.setField( v61 ); ////////custom field definitions namespace QuickFix { //5823 - 5889 are unclaimed fields ACCORDING TO fixprotocol.org public class WTR1 : DoubleField { public WTR1() : base(5823) { } public WTR1(double data) : base(5823, data) { } } public class Eliq1 : DoubleField { public Eliq1() : base(5824) { } public Eliq1(double value) : base(5824, value) { } } public class V61 : DoubleField { public V61() : base(5825) { } public V61(double value) : base(5825, value) { } } public class Signal : DoubleField { public Signal() : base(5826) { } public Signal(double value) : base(5826, value) { } } public class DWRPV0 : DoubleField { public DWRPV0() : base(5827) { } public DWRPV0(double value) : base(5827, value) { } } public class DWRPV1 : DoubleField { public DWRPV1() : base(5828) { } public DWRPV1(double value) : base(5828, value) { } } public class IdTrade : DoubleField { public IdTrade() : base(5829) { } public IdTrade(double data) : base(5829, data) { } } } |
From: Oren M. <or...@qu...> - 2005-04-30 06:36:36
|
Do you have some sort of conditional test that only runs certain code when that field is present? --oren On Apr 29, 2005, at 8:21 AM, George M. Coles wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX FAQ: > http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ > QuickFIX Support: http://www.quickfixengine.org/services.html > > I have defined several user-defined tags, the type-safe way, in c#. > You will find the definitions inlined below. There is one tag that > causes a rejection required tag missing error when the target tries to > ACK my new orders - that tag is IdTrade, seen in the code snippet > directly below. None of the other user-defined tags causes this error. > When I comment out the code that sets idTrade, the error goes away. > > What is different about that tag? I even changed its tag number, and > tried changing the order in which I set the fields, and the issue > still happens. How does a user-defined tag become to be considered a > required tag by quickfix??? > > > //custom fields > IdTrade idTrade = new IdTrade( tr.idTRADE ); > order.setField( idTrade ); > > WTR1 wtr1 = new WTR1( (double)tr.WTR_1 ); > order.setField( wtr1 ); > > Eliq1 eliq1 = new Eliq1( (double)tr.ELiq_1 ); > order.setField( eliq1 ); > > Signal signal = new Signal( tr.Signal ); > order.setField( signal ); > > DWRPV0 dwrpv0 = new DWRPV0( (double)tr.DWRPV0 ); > order.setField( dwrpv0 ); > > DWRPV1 dwrpv1 = new DWRPV1( (double)tr.DWRPV_1 ); > order.setField( dwrpv1 ); > > V61 v61 = new V61( (double)tr.V_6_1 ); > order.setField( v61 ); > > ////////custom field definitions > namespace QuickFix > { > //5823 - 5889 are unclaimed fields ACCORDING TO fixprotocol.org > public class WTR1 : DoubleField > { > public WTR1() : base(5823) > { > } > > public WTR1(double data) : base(5823, data) > { > } > } > > public class Eliq1 : DoubleField > { > public Eliq1() : base(5824) > { > } > > public Eliq1(double value) : base(5824, value) > { > } > } > > public class V61 : DoubleField > { > public V61() : base(5825) > { > } > > public V61(double value) : base(5825, value) > { > } > } > > public class Signal : DoubleField > { > public Signal() : base(5826) > { > } > > public Signal(double value) : base(5826, value) > { > } > > } > > public class DWRPV0 : DoubleField > { > public DWRPV0() : base(5827) > { > } > > public DWRPV0(double value) : base(5827, value) > { > } > } > > public class DWRPV1 : DoubleField > { > public DWRPV1() : base(5828) > { > } > > public DWRPV1(double value) : base(5828, value) > { > } > } > > public class IdTrade : DoubleField > { > public IdTrade() : base(5829) > { > } > > public IdTrade(double data) : base(5829, data) > { > } > } > } > > > > ------------------------------------------------------- > SF.Net email is sponsored by: Tell us your software development plans! > Take this survey and enter to win a one-year sub to SourceForge.net > Plus IDC's 2005 look-ahead and a copy of this survey > Click here to start! http://www.idcswdc.com/cgi-bin/survey?id=105hix > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > |
From: George M. C. <ge...@qu...> - 2005-05-02 15:24:57
|
I was not checking to see if a field was set before accessing it, and I did not realize that an execution report will not contain any custom fields that I setn in the new order. So I had to retrieve the message from the FileStore by sequence number. This works most of the time, but sometimes when I reconstitute the order from the FileStore, the message only contains a few fields, and sometimes it contains all the fields contained in the original order as it looked when I sent it out. Does anyone know why this happens? thx George Oren Miller wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX FAQ: http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ > QuickFIX Support: http://www.quickfixengine.org/services.html > > Do you have some sort of conditional test that only runs certain code > when that field is present? > > --oren > > On Apr 29, 2005, at 8:21 AM, George M. Coles wrote: > >> QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/index.html >> QuickFIX FAQ: >> http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ >> QuickFIX Support: http://www.quickfixengine.org/services.html >> >> I have defined several user-defined tags, the type-safe way, in c#. >> You will find the definitions inlined below. There is one tag that >> causes a rejection required tag missing error when the target tries >> to ACK my new orders - that tag is IdTrade, seen in the code snippet >> directly below. None of the other user-defined tags causes this >> error. When I comment out the code that sets idTrade, the error goes >> away. >> >> What is different about that tag? I even changed its tag number, and >> tried changing the order in which I set the fields, and the issue >> still happens. How does a user-defined tag become to be considered a >> required tag by quickfix??? >> >> >> //custom fields >> IdTrade idTrade = new IdTrade( tr.idTRADE ); >> order.setField( idTrade ); >> >> WTR1 wtr1 = new WTR1( (double)tr.WTR_1 ); >> order.setField( wtr1 ); >> >> Eliq1 eliq1 = new Eliq1( (double)tr.ELiq_1 ); >> order.setField( eliq1 ); >> >> Signal signal = new Signal( tr.Signal ); >> order.setField( signal ); >> >> DWRPV0 dwrpv0 = new DWRPV0( (double)tr.DWRPV0 ); >> order.setField( dwrpv0 ); >> >> DWRPV1 dwrpv1 = new DWRPV1( (double)tr.DWRPV_1 ); >> order.setField( dwrpv1 ); >> >> V61 v61 = new V61( (double)tr.V_6_1 ); >> order.setField( v61 ); >> >> ////////custom field definitions >> namespace QuickFix >> { >> //5823 - 5889 are unclaimed fields ACCORDING TO fixprotocol.org >> public class WTR1 : DoubleField >> { >> public WTR1() : base(5823) >> { >> } >> >> public WTR1(double data) : base(5823, data) >> { >> } >> } >> >> public class Eliq1 : DoubleField >> { >> public Eliq1() : base(5824) >> { >> } >> >> public Eliq1(double value) : base(5824, value) >> { >> } >> } >> >> public class V61 : DoubleField >> { >> public V61() : base(5825) >> { >> } >> >> public V61(double value) : base(5825, value) >> { >> } >> } >> >> public class Signal : DoubleField >> { >> public Signal() : base(5826) >> { >> } >> >> public Signal(double value) : base(5826, value) >> { >> } >> >> } >> >> public class DWRPV0 : DoubleField >> { >> public DWRPV0() : base(5827) >> { >> } >> >> public DWRPV0(double value) : base(5827, value) >> { >> } >> } >> >> public class DWRPV1 : DoubleField >> { >> public DWRPV1() : base(5828) >> { >> } >> >> public DWRPV1(double value) : base(5828, value) >> { >> } >> } >> >> public class IdTrade : DoubleField >> { >> public IdTrade() : base(5829) >> { >> } >> >> public IdTrade(double data) : base(5829, data) >> { >> } >> } >> } >> >> >> >> ------------------------------------------------------- >> SF.Net email is sponsored by: Tell us your software development plans! >> Take this survey and enter to win a one-year sub to SourceForge.net >> Plus IDC's 2005 look-ahead and a copy of this survey >> Click here to start! http://www.idcswdc.com/cgi-bin/survey?id=105hix >> _______________________________________________ >> Quickfix-users mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-users >> > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: NEC IT Guy Games. > Get your fingers limbered up and give it your best shot. 4 great > events, 4 > opportunities to win big! Highest score wins.NEC IT Guy Games. Play to > win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20 > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > |