Project
Installation
This document describes how to install FIXimulator along with a sample buy side application called Banzai. These two applications are delivered in zip archives named Banzai.zip and FIXimulator.zip that can be downloaded from the Download section at the left. When the archives are extracted, directories with the same names are created. FIXimulator requires Java SE Runtime Environment (JRE) 6 which can be downloaded from here.
To launch FIXimulator, the fiximulator.bat file needs to be executed. FIXimulator will wait for a connection. Similarly, to launch Banzai, the banzai.bat file needs to be run. Banzai is a sample buy-side application that initiates a connection to FIXimulator when the program starts. Both applications are configured by default to connect to each other.
FIXimulator has an optional functionality to log its messages to a MySQL database and to create reports from the database. Configuring a MySQL database is beyond the scope of this document but downloads and installation instructions are available from the MySQL website. If a MySQL database is running on the same machine as FIXimulator then a new database and a user account will need to be created. To create these simply execute the create.bat in the FIXimulatormysql directory by double clicking the file. The file contains the following instructions.
mysql -u root -p --execute="source mysql.sql"; pause;
This script calls the mysql.sql script to be executed on the database as the root user.
source quickfix_database.sql; source fiximulator_user; source sessions_table.sql; source messages_table.sql; source messages_log_table.sql; source event_log_table.sql;
The first script called in this file simply creates a database “quickfix”.
DROP DATABASE IF EXISTS quickfix; CREATE DATABASE quickfix;
The fiximulator_user.sql script creates a "fiximulator" user in the database. This user is granted all privileges to the quickfix database.
grant all privileges on quickfix.* to 'fiximulator'@'localhost' identified by 'fiximulator';
The script then calls the sessions_table.sql script to create the sessions table.
USE quickfix; DROP TABLE IF EXISTS sessions; CREATE TABLE sessions ( beginstring CHAR(8) NOT NULL, sendercompid VARCHAR(64) NOT NULL, sendersubid VARCHAR(64) NOT NULL, senderlocid VARCHAR(64) NOT NULL, targetcompid VARCHAR(64) NOT NULL, targetsubid VARCHAR(64) NOT NULL, targetlocid VARCHAR(64) NOT NULL, session_qualifier VARCHAR(64) NOT NULL, creation_time DATETIME NOT NULL, incoming_seqnum INT NOT NULL, outgoing_seqnum INT NOT NULL, PRIMARY KEY (beginstring, sendercompid, sendersubid, senderlocid, targetcompid, targetsubid, targetlocid, session_qualifier) );
Similarly, the next scripts that are called, messages_table.sql, messages_log_table.sql, event_log_table.sql create the other tables. Once the mysql.sql file runs to success a new database "quickfix" is created along with a user "fiximulator" and 4 tables "sessions", "event_log", "messages", and "messages_log" that are used by FIXimulator. This allows FIXimulator to log to a database and the option can be enabled in the FIXimulator settings.