<font color="#000000"><font>QF/n should be logging all received messages before parsing and validating, assuming at least the session data can be decoded.<br></font></font><br><div class="gmail_quote">On Wed, Aug 1, 2012 at 12:46 PM, Felipe Soares <span dir="ltr"><<a href="mailto:felipe.soares@traderdata.com.br" target="_blank">felipe.soares@traderdata.com.br</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Grant,<br>
Do you think the problem is withn BX message (this one I received from<br>
Exchange) and immediately after I receive I get that parsing error... or is<br>
a problem with a message that hasn´t even been logged?<br>
<br>
Thanks<br>
<div><br>
<br>
-----Mensagem original-----<br>
De: Grant Birchmeier [mailto:<a href="mailto:gbirchmeier@connamara.com" target="_blank">gbirchmeier@connamara.com</a>]<br>
</div><div>Enviada em: quarta-feira, 1 de agosto de 2012 11:38<br>
Para: Felipe Soares<br>
</div>Cc: KAPIL KUMAR LALWANI; Mailing list for QuickFIX/n<br>
<div><div>Assunto: Re: RES: RES: {{Quickfixn}} RES: felipe's custom message problem<br>
<br>
Oh.<br>
<br>
The error you are seeing is because an incoming message is malformed.<br>
I don't know what that message is, but it should be in your log.<br>
<br>
The message may be truly malformed, or it may be that your DD has it<br>
incorrectly defined.<br>
<br>
Are you connecting to a real counterparty, or a test app that you wrote?<br>
<br>
<br>
On Wed, Aug 1, 2012 at 9:34 AM, Felipe Soares<br>
<<a href="mailto:felipe.soares@traderdata.com.br" target="_blank">felipe.soares@traderdata.com.br</a>> wrote:<br>
> Application Raw Data Reporting (tag 35 =URDR) In order to resend the<br>
> messages requested with Application Message Request (tag<br>
> 35-MsgType=BW), BM&FBovespa sends a set of Raw Data Reporting messages<br>
> (tag 35-MsgType=URDR) each containing one or more FAST encoded<br>
> messages appended in the RawData (tag 96) field.<br>
><br>
> -----Mensagem original-----<br>
> De: Grant Birchmeier [mailto:<a href="mailto:gbirchmeier@connamara.com" target="_blank">gbirchmeier@connamara.com</a>]<br>
> Enviada em: quarta-feira, 1 de agosto de 2012 11:15<br>
> Para: KAPIL KUMAR LALWANI<br>
> Cc: Felipe Soares; Mailing list for QuickFIX/n<br>
> Assunto: Re: RES: RES: {{Quickfixn}} RES: felipe's custom message<br>
> problem<br>
><br>
> What is a URDR message?<br>
><br>
> On Wed, Aug 1, 2012 at 9:08 AM, KAPIL KUMAR LALWANI<br>
> <<a href="mailto:kaplalwani@yahoo.co.in" target="_blank">kaplalwani@yahoo.co.in</a>><br>
> wrote:<br>
>><br>
>> Hi,<br>
>> " Invalid body length", simply means that your message expected to<br>
>> have some field, but u didn't set that field. I guess something wrong<br>
>> with your implementation of 'BX'<br>
>><br>
>><br>
>> Kapil Kumar Lalwani<br>
>><br>
>> “Enjoy the WORK you do, Do the BEST you can.”<br>
>><br>
>> ________________________________<br>
>> From: Felipe Soares <<a href="mailto:felipe.soares@traderdata.com.br" target="_blank">felipe.soares@traderdata.com.br</a>><br>
>> To: KAPIL KUMAR LALWANI <<a href="mailto:kaplalwani@yahoo.co.in" target="_blank">kaplalwani@yahoo.co.in</a>>; Grant Birchmeier<br>
>> <<a href="mailto:gbirchmeier@connamara.com" target="_blank">gbirchmeier@connamara.com</a>><br>
>> Cc: Mailing list for QuickFIX/n <<a href="mailto:quickfixn@lists.quickfixn.com" target="_blank">quickfixn@lists.quickfixn.com</a>><br>
>> Sent: Wednesday, 1 August 2012 7:34 PM<br>
>> Subject: RES: RES: {{Quickfixn}} RES: felipe's custom message problem<br>
>><br>
>> Grant/Kapil,<br>
>><br>
>> We changed our DD and now the BX message was parsed correctly. But<br>
>> after that I should start receving URDR messages containing data. In<br>
>> my log file I can´t find anything about URDR message beng sent and in<br>
>> the event file I<br>
>> foud:<br>
>><br>
>> <a href="tel:20120801-14" value="+12012080114" target="_blank">20120801-14</a>:00:29.113 : Session FIX.4.4:TTDD0001->BOVUMDF050<br>
>> disconnecting: QuickFix.MessageParseError: Could not parse message:<br>
>> Invalid body length<br>
>> at QuickFix.Parser.ReadFixMessage(String& msg)<br>
>> at QuickFix.SocketInitiatorThread.ProcessStream()<br>
>> at QuickFix.SocketInitiatorThread.Read()<br>
>><br>
>> after that quickfix reconnects to the counterparty, but doens´t<br>
>> receive the final message…<br>
>><br>
>> any ideas?<br>
>><br>
>> Regards<br>
>><br>
>><br>
>> De: KAPIL KUMAR LALWANI [mailto:<a href="mailto:kaplalwani@yahoo.co.in" target="_blank">kaplalwani@yahoo.co.in</a>] Enviada em:<br>
>> quarta-feira, 1 de agosto de 2012 10:52<br>
>> Para: Grant Birchmeier; Felipe Soares<br>
>> Cc: Mailing list for QuickFIX/n<br>
>> Assunto: Re: RES: {{Quickfixn}} RES: felipe's custom message problem<br>
>><br>
>> Yeah I guess Grant is right.<br>
>> You don't have the 'BX' message in your data dictionary. So add the 'BX'<br>
>> message in your DD. exactly like you done for 'BW'.<br>
>><br>
>><br>
>><br>
>> Kapil Kumar Lalwani<br>
>> “Enjoy the WORK you do, Do the BEST you can.”<br>
>><br>
>> ________________________________<br>
>> From: Grant Birchmeier <<a href="mailto:gbirchmeier@connamara.com" target="_blank">gbirchmeier@connamara.com</a>><br>
>> To: Felipe Soares <<a href="mailto:felipe.soares@traderdata.com.br" target="_blank">felipe.soares@traderdata.com.br</a>><br>
>> Cc: KAPIL KUMAR LALWANI <<a href="mailto:kaplalwani@yahoo.co.in" target="_blank">kaplalwani@yahoo.co.in</a>>; Mailing list for<br>
>> QuickFIX/n <<a href="mailto:quickfixn@lists.quickfixn.com" target="_blank">quickfixn@lists.quickfixn.com</a>><br>
>> Sent: Wednesday, 1 August 2012 7:14 PM<br>
>> Subject: Re: RES: {{Quickfixn}} RES: felipe's custom message problem<br>
>><br>
>> Sounds like you don't have BX in your DataDictionary.<br>
>><br>
>> When your app receives the message, QF tries to parse it according to<br>
>> your DD, and fails out because it can't find a definition for BX.<br>
>><br>
>> On Wed, Aug 1, 2012 at 8:43 AM, Felipe Soares<br>
>> <<a href="mailto:felipe.soares@traderdata.com.br" target="_blank">felipe.soares@traderdata.com.br</a>> wrote:<br>
>> Kapil,<br>
>><br>
>> We followed Grant recomendation and rebuilt QuickFixn with our FIX44<br>
>> specification.<br>
>> By doing that we could manage to send a BW message, but now I am<br>
>> having a problem when the message comes back from the server (message<br>
>> BX). Exactly what you are saying bellow unsuporterd message type… So<br>
>> I shouldn´t use messagecracker?<br>
>><br>
>> Regards<br>
>><br>
>><br>
>> De: KAPIL KUMAR LALWANI [mailto:<a href="mailto:kaplalwani@yahoo.co.in" target="_blank">kaplalwani@yahoo.co.in</a>] Enviada em:<br>
>> quarta-feira, 1 de agosto de 2012 10:40<br>
>> Para: Felipe Soares<br>
>> Cc: Mailing list for QuickFIX/n; Grant Birchmeier<br>
>> Assunto: Re: RES: {{Quickfixn}} RES: felipe's custom message problem<br>
>><br>
>> Hi Felipe,<br>
>> I came up with one solution. I don't know this is what you<br>
>> are looking for or not, but one possible solution for that is to edit<br>
>> your<br>
>> FIX4.2 specification XML. I mean to say, add the message type<br>
>> ApplicationMessageRequest, with related fields. By doing so, you are<br>
>> able to send the message through. But for the same you have to handle<br>
>> your message at the server end because fix MessageCracker wont handle<br>
>> it and return you "Unsupported Message Type" exception.<br>
>><br>
>><br>
>><br>
>> Kapil Kumar Lalwani<br>
>> “Enjoy the WORK you do, Do the BEST you can.”<br>
>><br>
>> ________________________________<br>
>> From: Felipe Soares <<a href="mailto:felipe.soares@traderdata.com.br" target="_blank">felipe.soares@traderdata.com.br</a>><br>
>> To: Grant Birchmeier <<a href="mailto:gbirchmeier@connamara.com" target="_blank">gbirchmeier@connamara.com</a>>; KAPIL KUMAR LALWANI<br>
>> <<a href="mailto:kaplalwani@yahoo.co.in" target="_blank">kaplalwani@yahoo.co.in</a>><br>
>> Cc: Mailing list for QuickFIX/n <<a href="mailto:quickfixn@lists.quickfixn.com" target="_blank">quickfixn@lists.quickfixn.com</a>><br>
>> Sent: Wednesday, 1 August 2012 4:59 PM<br>
>> Subject: RES: {{Quickfixn}} RES: felipe's custom message problem<br>
>><br>
>> Grant BMF&Bovespa is full of Weird things J<br>
>><br>
>> De: Grant Birchmeier [mailto:<a href="mailto:gbirchmeier@connamara.com" target="_blank">gbirchmeier@connamara.com</a>]<br>
>> Enviada em: quarta-feira, 1 de agosto de 2012 08:28<br>
>> Para: KAPIL KUMAR LALWANI<br>
>> Cc: <a href="mailto:felipe.soares@traderdata.com.br" target="_blank">felipe.soares@traderdata.com.br</a>; Mailing list for QuickFIX/n<br>
>> Assunto: Re: {{Quickfixn}} RES: felipe's custom message problem<br>
>><br>
>> If Felipe's counterparty says he must use FIX4.4 with customizations<br>
>> taken from FIX5, then that's what he must do.<br>
>><br>
>> Some counterparties do weird things.<br>
>><br>
>> On Tue, Jul 31, 2012 at 11:50 PM, KAPIL KUMAR LALWANI<br>
>> <<a href="mailto:kaplalwani@yahoo.co.in" target="_blank">kaplalwani@yahoo.co.in</a>> wrote:<br>
>> Hi Felipe,<br>
>><br>
>> This is because the message type 'ApplicationMessageRequest' ('BW')<br>
>> is not available with FIX4.4. Its was introduce from FIX5.0SP1 and<br>
>> and available only with FIX5.0SP1 and FIX5.0SP2<br>
>> (<a href="http://fixprotocol.org/FIXimate3.0/" target="_blank">http://fixprotocol.org/FIXimate3.0/</a>). So that's why I recommended<br>
>> you to use FIX5.0SP1 if you want to use this message type.<br>
>><br>
>> m.Header.SetField(new BeginString("FIX.5.0SP1"));<br>
>><br>
>><br>
>><br>
>> Your Sincerely,<br>
>> Kapil Kumar Lalwani<br>
>><br>
>> “Enjoy the WORK you do, Do the BEST you can.”<br>
>><br>
>> ________________________________<br>
>> From: Felipe Soares <<a href="mailto:felipe.soares@traderdata.com.br" target="_blank">felipe.soares@traderdata.com.br</a>><br>
>> To: Grant Birchmeier <<a href="mailto:gbirchmeier@connamara.com" target="_blank">gbirchmeier@connamara.com</a>>; Mailing list for<br>
>> QuickFIX/n <<a href="mailto:quickfixn@lists.quickfixn.com" target="_blank">quickfixn@lists.quickfixn.com</a>><br>
>> Sent: Tuesday, 31 July 2012 11:18 PM<br>
>> Subject: {{Quickfixn}} RES: felipe's custom message problem<br>
>><br>
>> Hi Grant,<br>
>><br>
>> I am not sure I made any progress L<br>
>><br>
>> Here is the output I am receving from your code:<br>
>><br>
>><br>
>> 8=FIX.4.4☺9=82☺35=BW☺1346=TRADER☺1347=0☺1351=2☺1355=foo☺1182=10☺1183=<br>
>> 2<br>
>> 0☺1355=bar<br>
>> ☺1182=11☺1183=22☺10=202☺<br>
>><br>
>> Unhandled Exception: QuickFix.FieldNotFoundException: field not found<br>
>> for<br>
>> tag: 3<br>
>> 5<br>
>> at QuickFix.FieldMap.GetField(Int32 tag)<br>
>> at QuickFix.Session.SendRaw(Message message, Int32 seqNum)<br>
>> at QuickFix.Session.Send(Message message)<br>
>> at QuickFix.Session.SendToTarget(Message message, SessionID sessionID)<br>
>> at ConsoleApplication21.TCPReplayApp.RequestSeqNum(Int32 seqnum)<br>
>> at ConsoleApplication21.Program.Main(String[] args)<br>
>><br>
>> The error happens when I try Session.SendToTarget(m, sessionId);<br>
>><br>
>> Please help I don´t know where I should get information…<br>
>><br>
>> De: Grant Birchmeier [mailto:<a href="mailto:gbirchmeier@connamara.com" target="_blank">gbirchmeier@connamara.com</a>]<br>
>> Enviada em: terça-feira, 31 de julho de 2012 12:53<br>
>> Para: Mailing list for QuickFIX/n; Felipe Soares<br>
>> Assunto: felipe's custom message problem<br>
>><br>
>> Felipe,<br>
>><br>
>> In this an future discussions, I highly recommend that you turn off<br>
>> digest mode. It's making it difficult to follow the discussion when<br>
>> the subject lines are constantly changing.<br>
>><br>
>> Problem 1: In your cfg file, you need to add UseDataDictionary=Y<br>
>><br>
>> Problem 2: You are not constructing your repeating group correctly.<br>
>><br>
>> Problem 3: You were not using the correct message constructor. (The<br>
>> first parameter to Message(string,bool) is an entire FIX message<br>
>> string, not just the 35 field.) To construct your message with<br>
>> generic methods, it should look like this:<br>
>><br>
>> QuickFix.Message m = new Message();<br>
>> m.Header.SetField(new BeginString("FIX.4.4"));<br>
>> m.SetField(new QuickFix.Fields.StringField(35, "BW"));<br>
>><br>
>> m.SetField(new QuickFix.Fields.StringField(1346,<br>
>> "TRADER")); //AppReqId<br>
>> m.SetField(new QuickFix.Fields.IntField(1347, 0));<br>
>> //ApplReqType<br>
>><br>
>> int[] ordering = {1355,1182,1183};<br>
>> Group g = new Group(1351, 1355, ordering);<br>
>><br>
>> // first group element<br>
>> g.SetField(new<br>
>> QuickFix.Fields.StringField(1355,("foo")));<br>
>> //RefApplID<br>
>> g.SetField(new QuickFix.Fields.IntField(1182, 10));<br>
>> //ApplBegSeqNum<br>
>> g.SetField(new QuickFix.Fields.IntField(1183, 20));<br>
>> //ApplEndSeqNum<br>
>> m.AddGroup(g);<br>
>><br>
>> // second group element<br>
>> g.SetField(new QuickFix.Fields.StringField(1355,<br>
>> ("bar"))); //RefApplID<br>
>> g.SetField(new QuickFix.Fields.IntField(1182, 11));<br>
>> //ApplBegSeqNum<br>
>> g.SetField(new QuickFix.Fields.IntField(1183, 22));<br>
>> //ApplEndSeqNum<br>
>> m.AddGroup(g);<br>
>> Console.WriteLine(m.ToString());<br>
>> // prints<br>
>> 8=FIX.4.4|9=82|35=BW|1346=TRADER|1347=0|1351=2|1355=foo|1182=10|1183=<br>
>> 2<br>
>> 0|1355=bar|1182=11|1183=22|10=202|<br>
>><br>
>><br>
>><br>
>><br>
>> --<br>
>> Grant Birchmeier<br>
>> Connamara Systems, LLC<br>
>> Made-To-Measure Trading Solutions.<br>
>> Exactly what you need. No more. No less.<br>
>> <a href="http://connamara.com" target="_blank">http://connamara.com</a><br>
>><br>
>> _______________________________________________<br>
>> Quickfixn mailing list<br>
>> <a href="mailto:Quickfixn@lists.quickfixn.com" target="_blank">Quickfixn@lists.quickfixn.com</a><br>
>> <a href="http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com" target="_blank">http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com</a><br>
>><br>
>><br>
>><br>
>> --<br>
>> Grant Birchmeier<br>
>> Connamara Systems, LLC<br>
>> Made-To-Measure Trading Solutions.<br>
>> Exactly what you need. No more. No less.<br>
>> <a href="http://connamara.com" target="_blank">http://connamara.com</a><br>
>><br>
>><br>
>><br>
>><br>
>><br>
>> --<br>
>> Grant Birchmeier<br>
>> Connamara Systems, LLC<br>
>> Made-To-Measure Trading Solutions.<br>
>> Exactly what you need. No more. No less.<br>
>> <a href="http://connamara.com" target="_blank">http://connamara.com</a><br>
>><br>
>><br>
>><br>
>><br>
><br>
><br>
><br>
> --<br>
> Grant Birchmeier<br>
> Connamara Systems, LLC<br>
> Made-To-Measure Trading Solutions.<br>
> Exactly what you need. No more. No less.<br>
> <a href="http://connamara.com" target="_blank">http://connamara.com</a><br>
<br>
<br>
<br>
--<br>
Grant Birchmeier<br>
Connamara Systems, LLC<br>
Made-To-Measure Trading Solutions.<br>
Exactly what you need. No more. No less.<br>
<a href="http://connamara.com" target="_blank">http://connamara.com</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div><font><span style="background-color:#000000"><span style="background-color:#ffffff">Grant Birchmeier</span></span></font><font><font color="#3333ff"><br>
</font></font></div><div><font><b><font color="#3333ff"><span style="background-color:#ffcc33"><span style="background-color:#ffcc66"><span style="background-color:#ffcc99"><span style="background-color:#ffffff"><span style="background-color:#ffcc00">Connamara Systems, LLC</span></span></span></span></span></font></b></font><br>
</div><div><font><b>Made-To-Measure Trading Solutions.</b></font></div><div><font>Exactly what you need. No more. No less.</font><font><b><font color="#3333ff"><br></font></b></font></div><div><font><a href="http://connamara.com" target="_blank">http://connamara.com</a><br>
</font></div><br>