2017-03-02 2 views
0

In QuickFix/J ist es für die automatische Konfiguration für Failover-Initiator wie unten:Wie konfiguriert man SenderCompId für Quickfix Auto Failover Konfiguration?

SocketConnectHost=localhost1 
SocketConnectPort=9876 
SocketConnectHost1=localhost2 
SocketConnectPort1=9877 

In obigen alternativen IP oder Port kann wie SocketConnectHost n und SocketConnectPort n vorgesehen sein. Aber oben ist ein Session-Failover-Mechanismus, da SenderCompID und TargetCompID identisch sind.

Gibt es eine Möglichkeit, die SenderCompID zusammen mit socketConnect Host und Port zu konfigurieren?

Antwort

1

Nun ja Sie einfach Setup unter einer neuen Sitzung, die Art wie so:

[default] 
ReconnectInterval=5 
StartTime=00:00:00 
EndTime=00:00:00 
HeartBtInt=60 
ReconnectInterval=60 
ResetOnLogon=Y 
DataDictionary=FIX.4.4.xml 
UseDataDictionary=Y 
ValidateFieldsOutOfOrder=N 

[session] 
BeginString=FIX.4.4 
SenderCompID=Sender1 
TargetCompID=Target1 
SocketConnectPort=1201 
SocketConnectHost=1.2.3.4 
FileStorePath=store1 
FileLogPath=log1 
ConnectionType=initiator 

[session] 
BeginString=FIX.4.4 
SenderCompID=Sender2 
TargetCompID=Target2 
SocketConnectPort=1202 
SocketConnectHost=1.2.3.5 
FileStorePath=store2 
FileLogPath=log2 
ConnectionType=initiator 

[session] 
BeginString=FIX.4.4 
SenderCompID=Sender3 
TargetCompID=Target3 
SocketConnectPort=1203 
SocketConnectHost=1.2.3.6 
FileStorePath=store3 
FileLogPath=log3 
ConnectionType=initiator 
+0

Wenn die zweite Sitzung aktiv werden? Wie wird die Konfiguration der 2. Sitzung aktiviert? –

+0

Es wird gleichzeitig mit dem 1. aktiviert. Ich habe nicht genau in [den Code] (https://github.com/quickfix-j/quickfixj/blob/4bcf552b8a25fe3724a94aee7d15c57a675b1f13/quickfixj-core/src/main/java/quickfix/SocketInitiator.java) geschaut, aber im Grunde die Konfiguration Die Datei bestimmt, welche Sitzungen online gehen, dann gibt es einen Thread, der alle Nachrichten in allen Sitzungen behandelt, wobei jede ihre eigene Sitzungs-ID hat. Auf diese Weise wissen Sie, wer welche Nachricht gesendet/empfangen hat. Daher haben Sie beim automatischen Failover bereits beim Start die Failover-Sitzung initiiert. Bei dem Failover-Prozess geht es darum, wie Sie Nachrichten zu ihm wechseln. – rupweb

+0

Wenn Failover erneut ausgeführt wird, sollte die 1. Sitzung ein "onLogout()" -Ereignis auslösen. Dann könnten Sie einfach wieder 'logon()' für diese Sitzung oder 'logon()' für eine Failover-Sitzung verwenden. – rupweb

Verwandte Themen