Qual é o contrato de mensagens do QuickFIX / J? Tenho garantia na entrega da encomenda?
Estou apenas começando a usar o QuickFIX / J. Uma coisa que fico confuso ao ler seus documentos é que exatamente o que é o contrato de mensagens garantido pela implementação QuickFIX do protocolo FIX?
Em particular, eu sei que o FIX tem um mecanismo baseado em número de sequência embutido que as implementações podem aproveitar para lidar com mensagens fora de ordem, ausentes ou duplicadas. Mas o QuickFIX / J já tem esse recurso embutido? Como um aplicativo que usa QuickFIX / J para se comunicar com um mecanismo de correção, posso assumir:
As mensagens entregues ao meu aplicativo pelo QuickFIX / J estão sempre em ordem.
Não há mensagens perdidas (QuickFIX / J tratará automaticamente da nova solicitação)
Não há mensagens duplicadas (QuickFIX / J pode olhar para o número de sequência recebido até agora e filtrar possível duplicação)
Se o mecanismo de correção remota falhar, vou me reconectar com o último número de sequência conhecido automaticamente quando o mecanismo voltar
Se meu aplicativo travar, quando ele for reiniciado, ele poderá retomar automaticamente a sessão a partir do número de sequência conhecido anterior? (por exemplo, haverá algum mecanismo de persistência de número de sequência pronto para uso?)
Respostas
QuickFIX / J implementa o protocolo de sessão FIX, então ele lida com todas as coisas no nível da sessão (conexão, números de seqüência, ...) para você.
- Sim, mas pode haver duplicatas, consulte 3.
- Sim.
- Não, na verdade, o QFJ ainda encaminhará possíveis duplicatas para seu aplicativo porque você ainda pode querer lidar com elas. Você precisa filtrá-los sozinho, se quiser, com base em
43/PossDupFlag
. - Sim.
- Sim. QFJ tem algum fora da caixa persistência de mecanismos como
FileStore
,JdbcStore
,MemoryStore
. Você também pode implementar o seu próprio,Store
se necessário.
Aqui está um link sobre como criar um aplicativo QFJ, caso você ainda não o tenha encontrado: https://github.com/quickfix-j/quickfixj#creating-a-quickfixj-application