On Wed, May 16, 2012 at 2:48 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><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div lang="PT-BR" link="blue" vlink="purple"><p class="MsoNormal"><span lang="EN-US"><span style="font-family:'Times New Roman';font-size:7pt"> </span></span><span lang="EN-US">Message size limt, is there any size limit? For instance for sending securityDefinitiion should I send one by one? Or with a group?</span></p>

</div></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="PT-BR" link="blue" vlink="purple"><p class="MsoNormal"><span lang="EN-US"><span style="font-family:'Times New Roman';font-size:7pt"> </span></span><span lang="EN-US">After I receive all my securitites I send a message with MarketDataRequest for each symbol in a separate message.</span></p>

</div></blockquote><div><p class="MsoNormal"><span lang="EN-US"> </span></p></div><div>The standard FIX SecurityDefinitionRequest and MarketDataRequest messages allow you to request multiple symbols in one message (one per group).  Your counterparty may not use plain vanilla FIX messages/semantics, of course, so check their documentation.  From experience, I would say it is probably not practical to request 10000 symbols in one message (or on one Session).   I don't think there is any hard limit in qf/n that will stop you from trying, but even if you successfully subscribe to 10000 symbols, you are probably going to experience performance issues trying to handle that much data on one Session.  And naturally, the more heavily quoted/traded the symbols are, the more messages you will have, and hence more potential for performance problems.</div>

<div><br></div><div>Note that when you are handling a FIX message, i.e. during the fromApp()/onMessage() callbacks, you are on the qf/n thread and thus blocking qf/n from handling the next message.  So you want to return from fromApp()/onMessage() as quickly as possible so that qf/n can continue processing.  If you are doing a lot of work in fromApp()/onMessage() or making blocking calls there, consider queuing the work onto a separate thread so that you can return more quickly.  Also, if possible, consider setting up more than one Session with your counterparty so that you can split up the 10000 symbols across multiple Sessions (and thus maybe even multiple applications).  This way, you give yourself the ability to configure your way out of performance issues.  For example with this design, if you realize that a handful of symbols are the most heavily quoted/traded, you can move them to a separate Session, maybe even on a different server.</div>

<div><br></div></div>-- <br><font face="arial, helvetica, sans-serif">Mike Gatny<br>Connamara Systems, LLC</font><br>