OnixS C++ Tradeweb Approved Publication Arrangement (APA) Handler  1.2.2.18
API documentation
Replaying Log Files

Using Logs to Replay Market Data

Under normal flow, Handler logs all important aspects of its execution onto file system. Log files include also original market data processed by the Handler. This information is usually saved for analysis of non-standard situations which may occur during use of the Handler. However, it also can be used to reproduce normal Handler's behavior for a certain period of time.

Once Handler was executed with logging enabled, it's possible to use log files for further replay. First of all, logs must be backed up (copied to another location) or Handler's configuration must be updated to use another directory for new logs. This is because current implementation of the Handler doesn't support replay from the same folder in which new logs will be stored.

Market data replay can be done with the help of start member. It accepts instance of OnixS::Tradeweb::MarketData::Apa::ReplayOptions class containing list of logs to be replayed.

Collection of log files can be either manually assigned or fulfilled from provided folder.

ReplayOptions replayOptions("logStore");
handler.start(replayOptions);

Alternatively, it's possible manually define list of log files to be replayed. Manually manipulating list of log files allows replaying log files whose names differ from names used by the Handler.

ReplayOptions replayOptions;
replayOptions.logs.push_back("1.log");
replayOptions.logs.push_back("2.log");
replayOptions.logs.push_back("3.log");
handler.start(replayOptions);
Note
Files to be replayed must be in exact order as they were recorded by the Handler in bounds of single processing session.
In contrast to the previous releases, log replay is performed by the Handler synchronously to simplify end of processing detection.

From listener callbacks perspective, there's no difference whether Handler processes market from the network or from log files.

Note
Currently, log replay must be run with the same set of Handler's settings which were originally used.

Sample application demonstrating Log Replay feature can be found in samples/Backtesting subfolder of library distributive package.