2012-07-24 186 views
0

我需要知道我們如何限制發送「重發請求」。我正在複製下面的日誌。由於我們沒有編寫任何用於發起重發請求的代碼,因此似乎是從QuickFixEngine dll發送「重發請求」。請幫我解決一下如何限制重發請求。此外,它似乎MsgSeqNum是正確的順序。您的幫助將得到很大的讚賞。QuickFix如何不發送重發請求?

8 = FIX.4.29 = 5735 = 034 = 9949 = UATENV52 = 20120717-16:31:28.29656 = TRDUAT10 = 243

8 = FIX.4.29 = 5835 = 049 = TRDUAT56 = UATENV52 = 20120717-16 :28:34.24834 = 11910 = 029

8 = FIX.4.29 = 37635 = 849 = TRDUAT56 = UATENV52 = 20120717-16:28:41.00434 = 12050 = CBOEO57 = Test_Trader37 = 1120716000006003150 = 139 = 120 = 060 = 20120717- 16:28:40.00040 = 254 = 138 = 10442 = 2654 = 1167 = OPT55 = IBM44 = -0.5077 = O202 = 180.00201 = 1200 = 201207205 = 2121 = 359 = 01 = TestAcct10115 = USD14 = 56 = 0.50198 = 12280400019882 = N17 = 071710150000128151 = 576 = INCA30 = CBOE75 = 2012071732 = 531 = 0.5011 = 82184825010 = 144 8 = FIX.4.29 = 37935 = 849 = TRDUAT56 = UATENV52 = 20120717-16:28:41.00534 = 12150 = CBOEO57 = Test_Trader37 = 1120716000 006004150 = 139 = 120 = 060 = 20120717-16:28:40.00040 = 254 = 238 = 20442 = 2654 = 2167 = OPT55 = IBM44 = -0.5077 = O202 = 185.00201 = 1200 = 201207205 = 2121 = 359 = 01 = TestAcct10115 = USD14 = 106 = 0.50198 = 12280400019882 = N17 = 071720150000129151 = 1076 = INCA30 = CBOE75 = 2012071732 = 1031 = 0.5011 = 82184825010 = 036

8 = FIX.4.29 = 6935 = 234 = 10049 = UATENV52 = 20120717-16:31: 35.50056 = TRDUAT 7 = 120 * 16 = 0 * 10 = 230

8 = FIX.4.29 = 37635 = 849 = TRDUAT56 = UATENV52 = 20120717-16:28:41.00534 = 12250 = CBOEO57 = Test_Trader37 = 1120716000006005150 = 139 = 120 = 060 = 20120717-16:28:40.00040 = 254 = 138 = 10442 = 2654 = 3167 = OPT55 = IBM44 = -0.5077 = O202 = 190.00201 = 1200 = 201207205 = 2121 = 359 = 01 = TestAcct10115 = USD14 = 56 = 0.50198 = 12280400019882 = N17 = 071710 150000130151 = 576 = INCA30 = CBOE75 = 2012071732 = 531 = 0.5011 = 82184825010 = 145

8 = FIX.4.29 = 37935 = 834 = 12149 = TRDUAT50 = CBOEO52 = 20120717-16:28:41.00556 = UATENV57 = Test_Trader1 = TestAcct1016 = 0.5011 = 82184825014 = 1015 = USD17 = 07172015000012920 = 021 = 330 = CBOE31 = 0.5032 = 1037 = 112071600000600438 = 2039 = 140 = 244 = -0.5054 = 255 = IBM59 = 060 = 20120717-16:28:40.00075 = 2012071776 = INCA77 = Ø150= 1151 = 10167 = OPT198 = 1228040001200 = 201207201 = 1202 = 185.00205 = 21442 = 2654 = 29882 = N10 = 036

8 = FIX.4.29 = 37635 = 834 = 12249 = TRDUAT50 = CBOEO52 = 20120717-16:28 :41.00556 = UATENV57 = Test_Trader1 = TestAcct1016 = 0.5011 = 82184825014 = 515 = USD17 = 07171015000013020 = 021 = 330 = CBOE31 = 0.5032 = 537 = 112071600000600538 = 1039 = 140 = 244 = -0.5054 = 155 = IBM59 = 060 = 20120717-16: 28:40.00075 = 2012071776 = INCA77 =Ø150= 1151 = 5167 = OPT198 = 1228040001200 = 201207201 = 1202 = 190 .00205 = 21442 = 2654 = 39882 = N10 = 145

8 = FIX.4.29 = 40735 = 849 = TRDUAT56 = UATENV52 = 20120717-16:28:41.444122 = 20120717-16:28:41.00443 = Y34 = 12050 = CBOEO57 = Test_Trader37 = 1120716000006003150 = 139 = 120 = 060 = 20120717-16:28:40.00040 = 254 = 138 = 10442 = 2654 = 1167 = OPT55 = IBM44 = -0.5077 = O202 = 180.00201 = 1200 = 201207205 = 2121 = 359 = 01 = TestAcct10115 = USD14 = 56 = 0.50198 = 12280400019882 = N17 = 071710150000128151 = 576 = INCA30 = CBOE75 = 2012071732 = 531 = 0.5011 = 82184825010 = 145

8 = FIX.4.29 = 41035 = 849 = TRDUAT56 = UATENV52 = 20120717- 16:28:41.444122 = 20120717-16:28:41.00543 = Y34 = 12150 = CBOEO57 = Test_Trader37 = 1120716000006004150 = 139 = 120 = 060 = 20120717-16:28:40.00040 = 254 = 238 = 20442 = 2654 = 2167 = OPT55 = IBM44 = -0.5077 = O202 = 185.00201 = 1200 = 201207205 = 2121 = 359 = 01 = TestAcct10115 = USD14 = 106 = 0.50198 = 12280400019882 = N17 = 071720150000129151 = 1076 = INCA30 = CBOE75 = 2012071732 = 1031 = 0.5011 = 82184825010 = 028

8 = FIX.4.29 = 40735 = 849 = TRDUAT56 = UATENV52 = 20120717-16:28:41.444122 = 20120717-16:28:41。005

感謝

回答

4

通常你會斷開後重新連接時獲得重發請求。確保你沒有錯過和留言很重要。如果你想避免它,你需要編輯quickfix config並設置ResetOnLogon註銷並斷開連接到Y.這樣它不會嘗試每次斷開連接時重新發送消息。我不認爲這是一個特別好的主意。你可能會錯過信息。爲什麼重新發送請求會對您造成問題?

+0

其實我們要發送訂單企業問我們要不要發送任何「ResendRequest」。我認爲這不是一個好主意..無論如何,我們必須聽取公司要求的內容。 – Anish 2012-07-24 17:26:00

+0

您可能不希望重新發送任何舊訂單而您不想執行的訂單 - 您將如何實現該目標? – mcmillab 2016-08-22 09:02:18

2

如果您想忽略ResendRequests(即您不想重發任何消息),則FIX中正確的方式是通過使用SequenceReset進行響應。

您可以在QuickFix中實現此操作,即重寫toApp()方法並拋出異常。

QuickFix將基於發出的ResendRequest生成正確的SequenceReset響應。

下面是一個例子:

8=FIX.4.29=9135=234=349=MY-INITIATOR-SERVICE52=20160418-09:11:20.69456=MY-ACCEPTOR-SERVICE7=216=510=133 
8=FIX.4.29=12435=434=243=Y49=MY-ACCEPTOR-SERVICE52=20160418-09:11:20.69756=MY-INITIATOR-SERVICE122=20160418-09:11:20.69736=2123=Y10=068