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.

...