2017-08-11 57 views
0

我爲CurreneX創建了Java服務。我使用Quiqfix/j庫。當我發送新的QuoteRequest時,我在240秒內獲得行情。但是,如果我重新啓動服務或重置互聯網連接,我將停止recive Quotes。我如何繼續接受報價重新連接/重新啓動後?我使用的選項如何在重新啓動後恢復處理程序並繼續接收來自CurreneX的消息?

PersistMessages = Y 
ResetOnLogon = N 

梅比我不明白這是怎麼工作的?我需要在重新啓動後恢復處理程序,並繼續接收來自CurreneX的消息。或者我需要創建自己的logik和數據庫持久層?那麼爲什麼需要將消息存儲在quickfix JdbcStoreFactory中?

回答

1

是的,當你發送一個QuoteRequest然後你收到報價請求。然後考慮來自Currenex視角的連接。他們有n位發送報價請求的客戶。他們發回迴應/流。如果客戶端斷開連接,他們不知道客戶端爲什麼斷開連接,或者客戶端何時會重新連接。在他們那邊處理重新訂閱是有問題的,再加上它更乾淨,風險更小(例如,在交易期間斷開連接)以阻止未完成訂閱並讓客戶重新訂閱。所以這就是你必須做的。

至於ResetOnLogon這是關於重新啓動序列號,所以你不會尋找缺口消息的缺口填充。這是關於交易的安全性,而不是重新訂閱時陳舊的臨時報價。

您需要處理OnLogout並存儲您當前的報價請求,然後重新訂閱這些請求OnLogon

+0

ResetOnLogon - 你能解釋一下嗎?我沒有理解文檔中的任何內容。爲什麼需要以及如何使用它? – user5620472

+0

每個FIX消息都有一個序列號,以便可以跟蹤消息。因此,如果存在斷開連接,則有兩種可能性 - 您ResetOnLogon表示「忘記所有以前的消息」,或者您沒有,它說「這是我的序列號,我們需要通過重新發送任何超前的消息來進行同步數字「,以便事物同步 - 例如,如果在斷開連接或競賽條件時進行了交易。 – rupweb

相關問題