Bovespa Market Data Adaptor: How to use TCP Replayer
Overview
The global TCP Replayer Connection (previously known as TCP Replay) functionality allows a client to request messages that were already sent through the incremental stream. These messages will be returned to the client over a TCP connection (a FIX 4.4 session). The same connection is used for both the request and the retransmission. TCP Replayer is enabled with Bovespa::BovespaApplicationParams. These chapters shows how to use prameters for setting up a TCP Replayer connection.
In order to access a TCP Replayer feed and obtain credentials, please contact to Bovespa.
The TCP connection (a FIX 4.4 session) uses customized FIX dictionary. So, FIX Antenna C++ requires that the property AdditionalParsersList in engine.properties file is equal to "id" from the dictionary (see BovespaClient sample):
AdditionalParsersList = FIX44BVMF
TCP Replayer Session properties
To establish a session the following parameters should be defined:
Bovespa::BovespaApplicationParams params; // ... params.tcpReplayParams_.senderCompId_ = "Sender"; params.tcpReplayParams_.targetCompId_ = "BVMF"; params.tcpReplayParams_.username_ = "username"; params.tcpReplayParams_.password_ = "password";
The senderCompId_, targetCompId_, username_, password_ parameter values should be given by Bovespa for Logon.
Configuration network connections for TCP Replayer recovery
The 'UMDF channels definition' section contains the FIX/FAST Market Data Channel Definitions. The feeds specified in the configuration XML files (see samples in /samples/BovespaClient/bin/ path). The desired channels for TCP Replayer Connections and network parameters should be specified in your C++ code.
params.tcpReplayParams_.channels_.push_back("151"); // use tcp replayer for channel 151 from configuration params.tcpReplayParams_.channels_.push_back("141"); // use tcp replayer for channel 141 from configuration params.tcpReplayParams_.channels_.push_back("121"); // use tcp replayer for channel 121 from configuration params.tcpReplayParams_.reconnectAttemptCount_ = 5; params.tcpReplayParams_.ip_ = ""; params.tcpReplayParams_.port_ = 0;
Certified version of the client solution in Logon for TCP Replayer
According Bovespa FIX Specification in tag Text (58) in Logon (35=A) customers should provide the name and certified version of the client solution used to connect to the Exchange. Therefore the new parameter has been added for FIX Antenna C++ 2.23.
params.tcpReplayParams_.softwareId_ = "FIX Antenna C++ 2.23";
The softwareId_ parameter values should be given by Bovespa after certification.
Pass Recovery option for Instrument subscription
Bovespa::BovespaSubscriptionItem instument; instument.symbol_ = symbol; instument.recovery_ = Bovespa::RO_USE_MARKET_TCP_AS_POSIBLE_RECOVERY; instument.recovery_ = recoveryOption_; application_->subscribeToInstrument( instument, iterator.first->second.get() );
Recovery doesn't work with a subscription to feed ( Bovespa::BovespaApplication::subscribeToFeed() )
Troubleshooting
TCP Replayer session is not established.
Check AdditionalParsersList is set to "FIX44BVMF" in the engine.property file.