{{Quickfixn}} RES: RES: RES: RES: felipe's custom message problem

Felipe Soares felipe.soares at traderdata.com.br
Wed Aug 1 07:34:19 PDT 2012


Application Raw Data Reporting (tag 35 =URDR)
In order to resend the messages requested with Application Message Request
(tag 35-MsgType=BW), BM&FBovespa sends a set of Raw Data Reporting messages
(tag 35-MsgType=URDR) each containing one or more FAST encoded messages
appended in the RawData (tag 96) field.

-----Mensagem original-----
De: Grant Birchmeier [mailto:gbirchmeier at connamara.com]
Enviada em: quarta-feira, 1 de agosto de 2012 11:15
Para: KAPIL KUMAR LALWANI
Cc: Felipe Soares; Mailing list for QuickFIX/n
Assunto: Re: RES: RES: {{Quickfixn}} RES: felipe's custom message problem

What is a URDR message?

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



--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.
http://connamara.com



More information about the Quickfixn mailing list