Ich bin neu bei QuickFIX und habe einige grundlegende Fragen zu QuickFix:
1) Wenn man bedenkt, dass es zu einer Zeit nur eine fixe Sitzung zwischen einem Akzeptor und einem Initiator geben wird. Ich verstehe den Zweck der ThreadedSocketInitiator- und ThreadedSocketAcceptor-Klassen nicht ganz.
Oder gibt es diese Klassen, um mehrere Sitzungen zu ermöglichen, in denen mehrere "Initiatoren" mit verschiedenen Akzeptoren sprechen können und umgekehrt?
2) Hat QuickFIX einige Arten der Nachrichtenpersistenz, zum Beispiel, was passiert, wenn die Nachricht während der Übertragung verloren geht? Versorgt der Motor die Nachricht erneut?
1) Quickfix verwendet 1 Thread pro Sitzung. Engine, die Sie annehmen können, ist der gesamte Prozess.
ThreadedSocketInitiator wird verwendet, wenn Sie die Engine als Client verwenden möchten. Sie stellen eine Verbindung zu einem anderen Server her und übertragen Nachrichten. Sie initiieren Verbindungen, daher der Name Initiator. Sie erstellen einen neuen Thread für jede Sitzung, die Sie mit einem Server einrichten.
ThreadedSocketAcceptor wird verwendet, wenn Sie die Engine als Server verwenden möchten. Sie akzeptieren Verbindungen, also Akzeptor. Wenn Sie eine neue Sitzung mit einem Client einrichten, wird nur für diese bestimmte Sitzung ein neuer Thread generiert.
Denken Sie daran, dass alle Sitzungen eine eindeutige ID haben, um zwischen mehreren Sitzungen zu unterscheiden. Ein Server kann mehrere Sitzungen mit demselben Client haben und umgekehrt.
2) Ja. Der Empfänger muss jedoch eine ResendRequest-Nachricht initiieren, damit der Absender erneut sendet. Es wird automatisch ausgeführt, indem das Latenz-Flag in der Konfigurationsdatei überprüft wird, wenn es keine Antwort auf eine bereits gesendete Nachricht erhalten hat.