Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

What is Myricom DBL API?

DBL™ is an optional, user-level, software interface for accelerating applications whose performance depends on network latency. Examples of applications that will benefit from DBL™ include algorithmic financial trading and others where reduced network latency is beneficial.

More information can be found here: Myricom DBL.

Does FIXAntenna support DBL UDP API acceleration?

Yes, FIXAntenna supports DBL UDP API acceleration for following Market Data adaptors:

    • Bats MD Adaptor 
       
      To use DBL UDP API acceleration in Bats MD Adaptor you need to set the property Bats::RuntimeParameters::readerType.

      Example:

      Code Block
      languagecpp
      titleSource Code
      struct AppListener : Bats::ApplicationListener
      {
      //your implementation of Bats::ApplicationListener interface
      };
      
      int main( int argc, char const* argv[] )
      {
      ...
      	//init FIX Engine
      	Engine::FixEngine::init( );
       
      	AppListener appListener;
       
      	Bats::ApplicationOptions options;
      	//set other options
      	...
      	//Enable using of DBL UDP API acceleration
          options.params.readerType = Bats::IncrementReaderType::MyricomDBL;
          options.params.incrementalThreads = 1;
      
      	//create an application
      	Bats::Application* app = Engine::FixEngine::singleton()->createBatsApplication(options, &appListener);
      ...
      }

      For more information, please, refer to the link:

      Bats::IncrementReaderType


    • Bovespa MD Adaptor
       

      To use DBL UDP API acceleration in Bovespa MD Adaptor you need to set the properties Bovespa::BovespaApplicationParams::transportType_.

      Example:

      Code Block
      languagecpp
      titleSource Code
      class BovespaClientApplicationListener
          : public Bovespa::BovespaApplicationListener
      {
      public:
      	//your implementation of Bovespa::BovespaApplicationListener interface
          BovespaClientApplicationListener(){}
          ~BovespaClientApplicationListener() {}
          virtual void onError( std::string const& errorMsg );
          virtual void process( Engine::FIXMessage const& msg,std::string const & channel_id );
          virtual void onConnectToFeed(std::string const& feedId) {}
          virtual void onDisconnectFromFeed(std::string const& feedId) {}
      };
       
      int main( int argc, char const* argv[] )
      {
      ...
      	//init FIX Engine
      	Engine::FixEngine::init();
       
      	//Create an application listener
          BovespaClientApplicationListener appListener;
      
      	//initialize BovespaApplication parameters
          Bovespa::BovespaApplicationParams params;
      	//set other options
      	...
      	params.transportType_ = Bovespa::BovespaApplicationParams::MyricomDBL;
          
      	//Create an MD application
          Bovespa::BovespaApplication* application = Engine::FixEngine::singleton()->createBovespaApplication( params, &appListener);
      ...
      }

      For more information, please, refer to the link:
      Bovespa::BovespaApplicationParams::Transport


    • Cqg MD Adaptor
       

      To use DBL UDP API acceleration in Cqg MD Adaptor you need to set the properties Cqg::MDApplicationParams::transportType_.

      Example:

      Code Block
      languagecpp
      titleSource Code
      class MyMDApplicationListener : public Cqg::MDApplicationListener
      {
      public:
      	//your implementation of Cqg::MDApplicationListener interface
      	virtual void process( ::Engine::FIXMessage const& msg, FeedID const &feedId );
      };
      
      int main( int argc, char const* argv[] )
      {
      ...
      	//init FIX Engine
      	Engine::FixEngine::init();
       
      	//Create an application listener
      	MyMDApplicationListener listener;
       
      	//initialize parameters
      	Cqg::MDApplicationParams params;
      	//set other options
      	...
      	params.transportType_ = Cqg::MDApplicationParams::MyricomDBL;
      	
      	//Create an MD application
      	Cqg::MDApplication* app = Engine::FixEngine::singleton()->createCqgMDApplication( &listener, params);
       ...
      }

...

    Cqg::MDApplicationParams::Transport


    • MOEX MD Adaptor

      To use DBL UDP API acceleration in MOEX MD Adaptor you need to set the property Micex::Mfix::MDApplicationParams::transportType_.

      Example:

      Code Block
      languagecpp
      titleSource Code
       //init FIX Engine
       Engine::FixEngine::init( );
       
       //Create Application listener (you need to implement the MDApplicationListener interface )
       MDApplicationListener* appListener = new MyMDApplicationListener;
      
       //configure parameters
       Micex::Mfix::MDApplicationParams appParams;
       ...
       appParams.transportType_ = Micex::Mfix::MDApplicationParams::MyricomDBL;
       ...
       //Create Micex MD Application
       Micex::Mfix::MDApplication* app = Engine::FixEngine::singleton()->createMICEXApplication( appParams, appListener );
       

    For more information, please, refer to the link:
    Micex::Mfix::MDApplicationParams::Transport


    • Spectra MD Adaptor
       

      To use DBL UDP API acceleration in Spectra MD Adaptor you need to set the properties Spectra::SpectraApplicationParams::transportType_.  

      Example:

      Code Block
      languagecpp
      titleSource Code
      int main( int argc, char const* argv[] )
      {
      ...
      	//init FIX Engine
      	Engine::FixEngine::init();
       
      	//Create an application listener
      	MyMDApplicationListener listener;
       
      	//initialize parameters
      	Spectra::SpectraApplicationParams params;
      	//set other options
      	...
          params.transportType_ = Spectra::SpectraApplicationParams::MyricomDBL;
          
      	//Create MD Application
          Spectra::SpectraApplication* application = Engine::FixEngine::singleton()->createSpectraApplication( params );
       ...
      }

                    For more information, please, refer to the link:

                    Spectra::SpectraApplicationParams::Transport


    • CME Globex MD Adaptor

      To use DBL UDP API acceleration in Spectra MD Adaptor you need to set the properties Globex::MDApplicationParams::transportType_.    

      Example:

      Code Block
      languagecpp
      titleSource Code
      class MyGlobexApplicationListener : public Globex::MDApplicationListener
      {
      public:
      	virtual void onError( std::string const& error );
      };
       
      int main( int argc, char const* argv[] )
      {
      ...
      	//init FIX Engine
      	Engine::FixEngine::init();
       
      	//Create an application listener
      	MyGlobexApplicationListener listener;
      	// Initialize parameters
      	Globex::MDApplicationParams params;
      	//set other options
      	...
      	params.transportType_ = Globex::MDApplicationParams::MyricomDBL;
      	
      	// Create MDApplication object
      	Globex::MDApplication* application = Engine::FixEngine::singleton()->createMDApplication( params, &listener );
       ...
      }

...

                  Globex::MDApplicationParams::Transport  

Does FIXAntenna support DBL TCP API acceleration?

 Yes, FIXAntenna supports DBL TCP API acceleration for FIX Sessions.

...

Yes, there is DBL TA mode that can be run by using the dblrun the dblrun utility which is provided with the driver package. More information about DBL TA mode and dblrun utility can be found here.

...