{{Quickfixn}} MemoryMessageStore only holds outgoing messages

Matthias Güntert matthias.guentert at raiffeisen.ch
Wed Jun 26 00:15:23 PDT 2019


Hello

I am building a C# solution based on QuickFix/ 1.8.0.

Below is the basic structure of my application. I see replies coming in from our counterparty, but unfortunately they don't show up in the message store type, which in this case is a MemoryStore. However I do see all outgoing messages, like logon, heartbeat and the market data request messages.

The challenge behind this issue is that one market data request results in many replies (of type: MarketDataSnapshotFullRefresh) on which I have to do some calculations upon.

Following a couple of questions:


1.    Why is quickfix behaving this way? Do I have to explicitly add the replies to the store?

2.    What is the intended way to synchronize / control the request/reply dataflow?

3.    How do I know, at which point all requested replies have been received?

4.    What is the best way to await a logon to complete?

Thanks and Best regards,
Matthias Güntert

public class FixMessageHandler : MessageCracker, IApplication
{
       private Session _session;

       [...]

       public void OnCreate(SessionID sessionID)
       {
             this._session = Session.LookupSession(sessionID);
       }

       public void FromApp(Message message, SessionID sessionID)
       {
             try
             {
                    Crack(message, sessionID);
             }
             catch (UnsupportedMessageType ex)
             {
                    [...]
             }
       }

       public void OnMessage(MarketDataSnapshotFullRefresh message, SessionID sessionId)
{
       this._logger.Info("MarketDataSnapshotFullRefresh received");
}

       [...]
}

public class FixClient : SocketInitiator
{
       [...]

       public void SendRequest(MarketDataRequest request)
       {
             Session.SendToTarget(request, this._sessionId);
       }

       public void ReadReplies()
       {
             var session = Session.LookupSession(this._sessionId);
             var messages = List<string>();
             session.MessageStore.Get(0,100, messages)

             [...]
       }
}

*****************************************************

This e-mail may contain confidential material. It is intended only for the person or entity which it is addressed to. In case you should not be supposed to get this e-mail we ask you to delete it without taking notice of its content. Any views or opinions expressed in this e-mail are those of the sender and do not necessarily coincide with those of The Swiss Raiffeisen Group. Therefore this e-mail does not represent a binding agreement nor an offer to deal. E-Mail transmission can be insecure and can contain errors. Information could be intercepted, corrupted, lost, destroyed, incomplete or may contain viruses. Neither The Swiss Raiffeisen Group nor the sender can accept any liability for any kind of damage as the result of viruses or transmission errors.

*****************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20190626/a97cfbc1/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5096 bytes
Desc: not available
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20190626/a97cfbc1/attachment-0001.bin>


More information about the Quickfixn mailing list