Variables de entorno
Configurando el engine
El servicio Mercap FIX Engine se gestó para que sea altamente configurable. Accediendo al archivo .env
(ubicado en la raíz del ambiente) se pueden modificar las siguientes variables, utilizadas por la solución al ser ejecutada por docker.
Usuario y grupo
En la primer sección del archivo de variables de entorno nos encontramos con lo siguiente:
Parámetro
Obligatorio
Default
Descripción
USER_ID
SI
N/A
ID de usuario para Docker
GROUP_ID
SI
N/A
ID de grupo para el usuario de Docker
Como se menciona, ambas variables son obligatorias y hacen referencia a los identificadores del sistema operativo para el usuario destinado a ejecutar el servicio y su grupo de pertenencia. De esta manera, docker ejecutará los contenedores con los mismos permisos que tenga el usuario en el sistema host.
Red
Luego, nos encontramos con los parámetros relacionados con la red:
Parámetro
Obligatorio
Default
Descripción
SUBNET
SI
N/A
Segmento de subred a utilizar
La variable SUBNET especifica el segmento de red (y su máscara) que se destinará al engine. Por lo tanto, todos los contenedores que se ejecuten bajo el servicio del engine, tendrán direcciones IP dentro de dicho rango indicado.
Observamos que la variable también es obligatoria, para dejar de manera explícita (y en responsabilidad del usuario final) cuales serán las direcciones utilizadas y evitar así conflictos con otros servicios en la red de la institución.
RabbitMQ
Mercap FIX Engine hace uso de colas de mensajes para recibir las solicitudes desde el OMS (por lo general nuestro Mercap Order Management) y comunicarle al mismo las respuestas devueltas por el mercado en cuestión (ya sean satisfactorias o erróneas).
Parámetro
Obligatorio
Default
Descripción
RABBIT_MQ_USERNAME
SI
mcp
Usuario del servidor de RabbitMQ
RABBIT_MQ_PASSWORD
SI
mcp
Contraseña del servidor de RabbitMQ
RABBIT_MQ_HOST_PORT
NO
5672
Puerto de RabbitMQ. Debe ser accesible desde el servidor de Mercap OM.
RABBIT_MQ_MGMT_HOST_PORT
NO
15672
Puerto del módulo de administración de RabbitMQ. Es deseable que sea accesible desde fuera del servidor del engine.
Se requiere un usuario y una contraseña para configurar el servidor de rabbitmq y luego poder conectarse al mismo, por lo tanto ambos parámetros son obligatorios y tienen mcp como valor por defecto.
Por otro lado, se pueden configurar dos puertos de manera opcional. El puerto donde escuchará el servicio de rabbitmq y aquel donde estará escuchando el administrador de rabbitmq. Ambos tienen valores por defecto, por lo tanto no es obligatorio indicarle otros valores.
Importante: Si estas variables se modifican, los cambios se deben reflejar también en la configuración de Mercap Order Management para que ambos productos puedan establecer una comunicación satisfactoria.
STunnel
Recién vimos la configuración relacionada a la comunicación del engine con el ruteador de órdenes. También debemos configurar la comunicación del engine con el mercado.
Como dicha comunicación será por Internet, deberá ser encriptada para proveer seguridad a la información sensible que se transmitirá por el canal establecido.
Parámetro
Obligatorio
Default
Descripción
STUNNEL_CONNECT_IP
SI
N/A
Dirección del mercado
STUNNEL_CONNECT_PORT
SI
N/A
Puerto del mercado
STUNNEL_CERTNAME
SI
stunnel
Nombre del certificado SSL
STUNNEL_KEYFILE
SI
server.pem
Nombre del archivo que contiene la clave pública
STUNNEL_CERTFILE
SI
server.crt
Nombre de archivo del certificado
Los parámetros mas importantes que requiere stunnel son la dirección destino y el puerto. Los mismos son los datos del mercado contra el cual el engine establecerá la sesión FIX. La variable STUNNEL_CONNECT_IP puede estar definida tanto en formato DNS o IP.
Las tres últimas variables (relacionadas con la encriptación), si bien son obligatorias, tienen valores predeterminados. Es de utilidad cambiar dichos datos solo cuando se desea utilizar un certificado SSL propio, diferente al provisto por defecto.
QFIX
Finalmente, el core del engine se configura mediante las variables declaradas bajo la presente categoría:
Parámetro
Obligatorio
Default
Descripción
QFIX_TARGET
SI
N/A
Nombre FIX del mercado
QFIX_SENDER
SI
N/A
Nombre FIX del broker en dicho mercado
QFIX_USERNAME
SI
N/A
Usuario provisto por el mercado
QFIX_PASSWORD
SI
N/A
Contraseña provista por el mercado
QFIX_ACCOUNT
SI
N/A
Nombre de la cuenta FIX provista por el mercado
QFIX_APPL_DATA_DICT
SI
FIX50SP2.xml
Nombre del archivo del diccionario FIX de aplicación (solo nombre, sin el path)
QFIX_TRANSPORT_DICT
SI
FIXT11.xml
Nombre del archivo del diccionario FIX de transporte (solo nombre, sin el path)
Las cinco primeras variables son provistas por el mercado a cada agente y por dicho motivo son obligatorias y no tienen valor por defecto. Las mismas representan:
El nombre o código del mercado (target)
El nombre del agente registrado en el mercado (sender)
El usuario (suele ser idéntico al nombre del agente, username)
La contraseña (cada cierta frecuencia se debe actualizar, password)
La cuenta (es un concepto propio del protocolo FIX, account)
Las dos últimas variables hacen referencia a los archivos de especificación FIX que se utilizará durante la sesión. Los mismos son archivos .xml que contienen la estructura de los mensajes válidos para determinada versión del protocolo (QFIX_APPL_DATA_DICT) y que indican como se realiza la mensajería a nivel de capa de transporte (QFIX_TRANSPORT_DICT).
Se almacenan en el directorio qfix_client/conf/spec/
. Finalmente, para cambiar de una versión a otra solo basta con especificar el nombre del archivo deseado, que deberá estar en el path mencionado.
Last updated
Was this helpful?