RE: [Quickfix-developers] Required Tag missing - 58
Brought to you by:
orenmnero
|
From: Shankar K. <skr...@jw...> - 2006-02-06 16:45:09
|
Thanks, I had no intention of creating a Generic message object, sorry
about that, hence the code should have looked like
private void application_Logon(object sender, FIXSessionIDEventArgs e)
{
QuickFix44.TradeCaptureReportRequest myTCRreport = new
QuickFix44.TradeCaptureReportRequest();
myTCRreport.setField(new
QuickFix.SubscriptionRequestType('1'));
myTCRreport.setField(new QuickFix.TradeRequestType(1));
myTCRreport.setField(new
QuickFix.TradeRequestID("abc101"));
myTCRreport.setField(new QuickFix.Text("TCR"));
Session.sendToTarget(myTCRreport,e.SessionID);
}
Also, looking up the quick doc, toAdmin - is actually what my server is
sending out to the counterparty., it is 55 which is SYMBOL.
Also the counterparty says he hasn't seen any report request come in from
me.
58=Required tag missing
371=55
372=AQ
373=1
10=182
_____
From: Shepheard, Toby (London) [mailto:Tob...@ml...]
Sent: Monday, February 06, 2006 11:10 AM
To: Shankar Krishnan; qui...@li...
Subject: RE: [Quickfix-developers] Required Tag missing - 58
First of all, you are misinterpreting the toAdmin message. This is a
response to you, from the other server, with a MsgType (tag 35) of 3 - a
reject message. The field 58 is a text field telling you why your message
was rejected - it was missing a required tag. Field 371, RefTagId, is saying
that the missing tag was tag 35. This isn't good, because tag 35 is the
message type! So, you were sending a message without setting the
msgType...now to look at why...
If you look at your code, you're actually sending a QuickFix.Message object.
This is a generic message object, and you're never telling it what type of
FIX message it is meant to be. You're creating the report-type message and
then not doing anything with it at the moment. You should really use the
typesafe set methods as described in the docs I pointed at earlier, not the
setField method.
(http://www.quickfixengine.org/quickfix/doc/html/sending_messages.html
<http://www.quickfixengine.org/quickfix/doc/html/sending_messages.html> ).
Whilst both work, the recommended method is recommended for good reasons -
including the fact that it sets the msgType and other header fields for you
:)
Thus:
QuickFix44.TradeCaptureReportRequest myTCRreport = new
QuickFix44.TradeCaptureReportRequest();
myTCRreport.set(new
QuickFix.SubscriptionRequestType('1'));
myTCRreport.set(new QuickFix.TradeRequestType(1));
myTCRreport.set(new QuickFix.TradeRequestID("abc101"));
myTCRreport.set(new QuickFix.Text("TCR"));
Session.sendToTarget(msg,e.SessionID);
As a minor aside, perhaps its worth adding a check in the QuickFIX code to
catch people trying to send messages formed from the base class and with no
specific type.
Regards
Toby
-----Original Message-----
From: qui...@li...
[mailto:qui...@li...] On Behalf Of
Shankar Krishnan
Sent: 06 February 2006 15:49
To: qui...@li...
Subject: [Quickfix-developers] Required Tag missing - 58
When sending a Session.sendToTarget request for a trade capture report
request coded as
QuickFix44.TradeCaptureReportRequest myTCRreport = new
QuickFix44.TradeCaptureReportRequest();
QuickFix.Message msg = new QuickFix.Message();
msg.setField(new QuickFix.SubscriptionRequestType('1'));
msg.setField(new QuickFix.TradeRequestType(1));
msg.setField(new QuickFix.TradeRequestID("abc101"));
msg.setField(new QuickFix.Text("TCR"));
Session.sendToTarget(msg,e.SessionID);
--
My ToAdmin message string looks like
To Admin:::::8=FIX.4.4_
9=117
35=3
34=2
49= XXXXX
52=20060206-15:44:09.729
56=xxxxxxxx
45=1
58=Required tag missing
371=35
372=A_
373=1
10=009
I am using FIX 4.4, the TCR request does not mention any tag 58, which seems
to be a text field, I tried inserting
A text field that did not work too.
Thanks
_____
If you are not an intended recipient of this e-mail, please notify the
sender, delete it and do not read, act upon, print, disclose, copy, retain
or redistribute it. Click here <http://www.ml.com/email_terms/> for
important additional terms relating to this e-mail.
http://www.ml.com/email_terms/ <http://www.ml.com/email_terms/>
_____
|