1

これは、内部および外部の DNS 設定用です。だから私の設定ファイルは言う:

connectionType=acceptor
SenderCompID=provider
TargetCompID=client1
SocketAcceptAddress=X.X.X.X
SocketAcceptPort=1901

その後

connectionType=acceptor
SenderCompID=provider
TargetCompID=client2
SocketAcceptAddress=url.mapping.to.X.X.X.X
SocketAcceptPort=1902

そしてアクセプターはエラーで実行されません:

quickfix.RuntimeError: java.net.BindException: Cannot assign requested address: bind
4

2 に答える 2

1

SenderCompID=プロバイダー、TargetCompID=client1

どちらも同じです。私の記憶が正しければ、Quicfix は BeginString、SenderCompID、TargetCompID によって一意のセッションを識別します。したがって、これらが 2 つのセッションで同じである場合、エラーが発生します。したがって、どちらか一方が他方と異なっている必要があります。

2番目のクエリは、なぜこれを行うのですか? これはフェイルオーバー用ですか?

于 2015-07-22T08:27:15.433 に答える
1

答えは、すべてのクライアントに内部ソケット アドレスを使用することでしたが、LAN クライアントは内部 DNS "machine1" を使用し、外部クライアントは外部 DNS "remote.machine1.com" を使用します。

したがって、構成は次のようになります。

connectionType=acceptor
SenderCompID=provider
TargetCompID=client1
SocketAcceptAddress=192.168.20.25
SocketAcceptPort=1901

connectionType=acceptor
SenderCompID=provider
TargetCompID=client2
SocketAcceptAddress=192.168.20.25
SocketAcceptPort=1901

各クライアントは同じポート上にあります...

于 2015-07-22T14:12:50.780 に答える