RE: [Quickfix-developers] Required Tag missing - 58
Brought to you by:
orenmnero
|
From: Shepheard, T. (London) <Tob...@ml...> - 2006-02-07 07:00:11
|
Looks like an error in the DataDictionary for the Trade Capture Report
Request Ack (AQ)
=20
In FIX44.xml Instrument is given as a required component - it should be
optional as per the Trade Capture Report Request (AD)
=20
Shankar, you'll have to edit this yourself and recompile QuickFIX - or
wait for one of the developers to do an update.
=20
-----Original Message-----
From: Shankar Krishnan [mailto:skr...@jw...]=20
Sent: 06 February 2006 21:27
To: Shepheard, Toby (London)
Subject: RE: [Quickfix-developers] Required Tag missing - 58
=09
=09
=20
Toby,
=20
> Either get the counterparty to send, or change your code to
not require an Instrument block.
=20
How do you make the code not require an instrument block ?
thanks, I looked around, anyhelp appreciated.
=20
Thanks
=20
=20
=20
=09
_____ =20
From: Shepheard, Toby (London) [mailto:Tob...@ml...]=20
Sent: Monday, February 06, 2006 12:33 PM
To: Shankar Krishnan
Cc: qui...@li...
Subject: RE: [Quickfix-developers] Required Tag missing - 58
=20
Sorry yes, I got to and from confused. Although, it very much
looks like the sort of message I would expect you to be receiving given
your code.=20
=20
You're still using setField, just use set instead to keep things
as type safe as possible.=20
=20
The Instrument block of a TCRR Ack (Msg AQ) is not a required
part for that message, although if you are getting an instrument block
then the symbol is a required part of it. Looks like you're expecting to
receive one, and the counterparty isn't sending it. Either get the
counterparty to send, or change your code to not require an Instrument
block.
=20
If you are receiving a TCRR Ack (AQ) then the counterparty must
be seeing your request or they wouldn't have replied.=20
=20
Maybe you should run a network trace to see exactly what's being
sent in and out, and then double check that all required fields are
being sent each way. Also, if you have further problems please post a
copy of your logs.
-----Original Message-----
From: Shankar Krishnan [mailto:skr...@jw...]=20
Sent: 06 February 2006 16:45
To: Shepheard, Toby (London)
Cc: qui...@li...
Subject: RE: [Quickfix-developers] Required Tag missing
- 58
=20
=20
Thanks, I had no intention of creating a Generic
message object, sorry about that, hence the code should have looked like
=20
private void application_Logon(object sender,
FIXSessionIDEventArgs e)
{
QuickFix44.TradeCaptureReportRequest
myTCRreport =3D 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"));
=20
=20
=09
Session.sendToTarget(myTCRreport,e.SessionID);
=20
}
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.
=20
=20
58=3DRequired tag missing
371=3D55
372=3DAQ
373=3D1
10=3D182
=20
=09
_____ =20
From: Shepheard, Toby (London)
[mailto:Tob...@ml...]=20
Sent: Monday, February 06, 2006 11:10 AM
To: Shankar Krishnan;
qui...@li...
Subject: RE: [Quickfix-developers] Required Tag missing
- 58
=20
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...
=20
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).
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 :)
=20
Thus:
=20
QuickFix44.TradeCaptureReportRequest myTCRreport =3D 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"));
=20
Session.sendToTarget(msg,e.SessionID);
=20
=20
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.
=20
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
=20
When sending a Session.sendToTarget request for
a trade capture report request coded as
=20
QuickFix44.TradeCaptureReportRequest myTCRreport
=3D new QuickFix44.TradeCaptureReportRequest();
QuickFix.Message msg =3D 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"));
=20
=09
Session.sendToTarget(msg,e.SessionID);
--
=20
My ToAdmin message string looks like
=20
To Admin:::::8=3DFIX.4.4_
9=3D117
35=3D3
34=3D2
49=3D XXXXX
52=3D20060206-15:44:09.729
56=3Dxxxxxxxx
45=3D1
58=3DRequired tag missing
371=3D35
372=3DA_
373=3D1
10=3D009
=20
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.
=20
Thanks
=20
=09
_____ =20
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/
=09
_____ =20
|