0

イニシエーターとアクセプターを 2 つの異なる OS で実行する必要があります。ソケットの切断という奇妙な問題が発生しています。以下は、私が試したさまざまなシナリオです。C++/Quickfix を使用しています。Debian/Ubuntu で長い間セットアップを使用してきましたが、問題はありません。CentOS と Ubuntu の接続確立で問題が発生しています。問題の詳細:-

シナリオ-1 (問題シナリオ)

私のイニシエータは、CentOS である Machine-1 で実行されています

私のアクセプターは、Ubuntu である Machine-2 で実行されています

接続しようとすると、次のエラーが表示されます:-

<20121213-03:57:41.619, FIX.4.2:ft-trade->ES, event>
  (Connecting to 10.0.0.40 on port 31209)
<20121213-03:57:41.620, FIX.4.2:ft-trade->ES, outgoing>
  (8=FIX.4.2 9=77 35=A 34=1 49=ft-trade 52=20121213-03:57:41.620 56=ES 98=0 108=30 141=Y 10=230 )
<20121213-03:57:41.620, FIX.4.2:ft-trade->ES, event>
  (Initiated logon request)
<20121213-03:57:41.621, FIX.4.2:ft-trade->ES, event>
  (Socket Error: Connection reset by peer.)
<20121213-03:57:41.621, FIX.4.2:ft-trade->ES, event>
  (Disconnecting)

ここに投稿する前に送信者/ターゲットの compid を変更する必要があったため、上記のパケットのチェックサム フィールドを使用しないでください。

シナリオ 2 (正常に動作)

同じイニシエータ コードを別の Machine-3 に使用しました。現在、両方のUbuntu。

Machine-3 から Machine-2 に正常に接続できます。

このシナリオは問題がなかったので、設定ファイルなどはすべて問題ありません。

シナリオ-3 (正常に動作)

同じアクセプター コードを Machine-1 に使用しました。両方の CentOS が現在

今回も無事に接続できました。

また、ファイアウォール関連の問題があるかどうかも確認しました。しかし、Machine-1 から Machine-2 への telnet は成功しているため、問題はありません。

私が理解しているように、これはピアが開いた後にソケットを切断または閉じるときの TCP/IP エラーです。しかし、メッセージが入ってくる方法は、エラーが TCP/IP によるものなのか、クイックフィックスによるものなのかわかりません。TELNET も正常に動作するため、TCP/IP ハンドシェークの問題の原因はわかりません。

4

0 に答える 0