¿Qué es el contrato de mensajería de QuickFIX / J? ¿Tengo garantía en la entrega del pedido?

Aug 18 2020

Recién estoy comenzando con QuickFIX / J. Una cosa que me confunde al leer sus documentos es que, ¿qué es exactamente el contrato de mensajería garantizado por la implementación QuickFIX del protocolo FIX?

En particular, sé que FIX tiene un mecanismo integrado basado en el número de secuencia que las implementaciones pueden aprovechar para manejar mensajes fuera de orden, faltantes o duplicados. Pero, ¿QuickFIX / J ya tiene la capacidad incorporada? Como una aplicación que usa QuickFIX / J para comunicarse con un motor de reparación, puedo asumir:

  1. Los mensajes enviados a mi aplicación desde QuickFIX / J siempre están en orden.

  2. No faltan mensajes (QuickFIX / J manejará automáticamente la nueva solicitud)

  3. No hay mensajes duplicados (QuickFIX / J puede mirar el número de secuencia recibido hasta ahora y filtrar posibles duplicaciones)

  4. Si el motor de reparación remota falla, me volveré a conectar con el último número de secuencia conocido automáticamente cuando el motor regrese

  5. Si mi aplicación falla, cuando se reinicie, ¿podrá reanudar automáticamente la sesión desde el número de secuencia conocido anterior? (por ejemplo, ¿habrá algún mecanismo de persistencia de número de secuencia listo para usar?)

Respuestas

1 ChristophJohn Aug 18 2020 at 18:15

QuickFIX / J implementa el protocolo de sesión FIX, por lo que maneja todas las cosas a nivel de sesión (conexión, números de secuencia, ...) por usted.

  1. Sí, pero puede haber duplicados, consulte 3.
  2. Si.
  3. No, en realidad QFJ aún reenviará posibles duplicados a su aplicación porque es posible que aún desee manejarlos. Debe filtrarlos usted mismo si lo desea, en función de 43/PossDupFlag.
  4. Si.
  5. Si. QFJ tiene algunos fuera de la caja de la persistencia de mecanismos como FileStore, JdbcStore, MemoryStore. También puede implementar el suyo Storesi lo necesita.

Aquí hay un enlace sobre cómo crear una aplicación QFJ, en caso de que aún no la haya encontrado: https://github.com/quickfix-j/quickfixj#creating-a-quickfixj-application