Apa kontrak perpesanan QuickFIX / J? Apakah saya mendapat jaminan dalam pengiriman pesanan?

Aug 18 2020

Saya baru saja memulai QuickFIX / J. Satu hal yang membuat saya bingung membaca dokumen mereka adalah apa sebenarnya kontrak pengiriman pesan yang dijamin oleh implementasi QuickFIX dari protokol FIX?

Secara khusus, saya tahu FIX memiliki mekanisme berbasis nomor urut bawaan yang implementasinya dapat memanfaatkan untuk menangani pesan yang rusak, hilang atau digandakan. Tetapi apakah QuickFIX / J sudah memiliki kapabilitas bawaan? Sebagai aplikasi yang menggunakan QuickFIX / J untuk berkomunikasi dengan mesin perbaikan, dapatkah saya berasumsi:

  1. Pesan yang dikirim ke aplikasi saya dari QuickFIX / J selalu teratur.

  2. Tidak ada pesan yang hilang (QuickFIX / J akan secara otomatis menangani permintaan ulang)

  3. Tidak ada pesan duplikat (QuickFIX / J dapat melihat nomor urut yang diterima sejauh ini dan menyaring kemungkinan duplikasi)

  4. Jika mesin perbaikan jarak jauh macet, saya akan menyambung kembali dengan nomor urut terakhir yang diketahui secara otomatis saat mesin kembali

  5. Jika aplikasi saya macet, saat dimulai ulang akankah aplikasi tersebut secara otomatis melanjutkan sesi dari nomor urut sebelumnya yang diketahui? (misalnya, apakah akan ada mekanisme persistensi nomor urut di luar kotak?)

Jawaban

1 ChristophJohn Aug 18 2020 at 18:15

QuickFIX / J mengimplementasikan protokol sesi FIX, sehingga menangani semua hal tingkat sesi (menghubungkan, nomor urut, ...) untuk Anda.

  1. Ya, tetapi mungkin ada duplikat, lihat 3.
  2. Iya.
  3. Tidak, sebenarnya QFJ masih akan meneruskan kemungkinan duplikat ke aplikasi Anda karena Anda mungkin masih ingin menanganinya. Anda perlu memfilternya sendiri jika Anda mau, berdasarkan 43/PossDupFlag.
  4. Iya.
  5. Iya. QFJ memiliki beberapa keluar dari kotak ketekunan mekanisme seperti FileStore, JdbcStore, MemoryStore. Anda juga bisa menerapkan milik Anda sendiri Storejika perlu.

Berikut ini tautan cara membuat aplikasi QFJ, jika Anda belum menemukannya: https://github.com/quickfix-j/quickfixj#creating-a-quickfixj-application