protected override void Init()
        {
            this.application = (QuickFIX42Application)this.CreateApplicationInstance();
            Dictionary dictionary = new Dictionary();

            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(2820), BeAEwTZGlZaeOmY5cm.J00weU3cM6(2852));
            dictionary.setLong(BeAEwTZGlZaeOmY5cm.J00weU3cM6(2874), this.HeartBtInt);
            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(2898), this.StartTime.ToString());
            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(2920), this.EndTime.ToString());
            dictionary.setLong(BeAEwTZGlZaeOmY5cm.J00weU3cM6(2938), this.ReconnectInterval);
            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(2976), this.BeginString);
            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3002), this.DataDictionary);
            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3034), this.FileStorePath);
            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3064), this.FileLogPath);
            dictionary.setBool(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3090), this.CheckLatency);
            dictionary.setLong(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3118), this.MaxLatency);
            dictionary.setBool(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3142), this.SendRedundantResendRequests);
            dictionary.setBool(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3200), this.ResetOnLogout);
            dictionary.setBool(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3230), this.ResetOnDisconnect);
            dictionary.setBool(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3268), this.RefreshOnLogon);
            dictionary.setBool(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3300), this.TcpNoDelay);
            this.OnDefaultsSessionSettingsCreated(dictionary);
            Dictionary settings1 = (Dictionary)null;

            if (this.PriceSessionEnabled)
            {
                settings1 = new Dictionary();
                settings1.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3330), this.PriceSocketConnectHost);
                settings1.setLong(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3368), this.PriceSocketConnectPort);
                settings1.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3406), this.PriceFileStorePath);
                this.OnPriceSessionSettingsCreated(settings1);
            }
            Dictionary settings2 = (Dictionary)null;

            if (this.OrderSessionEnabled)
            {
                settings2 = new Dictionary();
                settings2.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3436), this.OrderSocketConnectHost);
                settings2.setLong(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3474), this.OrderSocketConnectPort);
                settings2.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(3512), this.OrderFileStorePath);
                this.OnOrderSessionSettingsCreated(settings2);
            }
            SessionID sessionID1 = this.PriceSessionEnabled ? new SessionID(this.BeginString, this.PriceSenderCompID, this.PriceTargetCompID) : (SessionID)null;
            SessionID sessionID2 = this.OrderSessionEnabled ? new SessionID(this.BeginString, this.OrderSenderCompID, this.OrderTargetCompID) : (SessionID)null;

            this.sessionSettings = new SessionSettings();
            this.sessionSettings.set(dictionary);
            if (this.PriceSessionEnabled)
            {
                this.sessionSettings.set(sessionID1, settings1);
            }
            if (this.OrderSessionEnabled)
            {
                this.sessionSettings.set(sessionID2, settings2);
            }
            this.storeFactory   = (MessageStoreFactory) new FileStoreFactory(this.sessionSettings);
            this.logFactory     = (LogFactory) new FileLogFactory(this.sessionSettings);
            this.messageFactory = (MessageFactory) new DefaultMessageFactory();
            (this.application as QuickFIX42CommonApplication).adf1ZbrcY(sessionID1, sessionID2);
        }
        protected override void Init()
        {
            this.application = (QuickFIX43Application)this.CreateApplicationInstance();
            Dictionary dictionary = new Dictionary();

            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(4682), BeAEwTZGlZaeOmY5cm.J00weU3cM6(4714));
            dictionary.setLong(BeAEwTZGlZaeOmY5cm.J00weU3cM6(4736), this.HeartBtInt);
            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(4760), this.StartTime.ToString());
            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(4782), this.EndTime.ToString());
            dictionary.setLong(BeAEwTZGlZaeOmY5cm.J00weU3cM6(4800), this.ReconnectInterval);
            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(4838), this.BeginString);
            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(4864), this.DataDictionary);
            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(4896), this.FileStorePath);
            dictionary.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(4926), this.FileLogPath);
            dictionary.setBool(BeAEwTZGlZaeOmY5cm.J00weU3cM6(4952), this.CheckLatency);
            dictionary.setLong(BeAEwTZGlZaeOmY5cm.J00weU3cM6(4980), this.MaxLatency);
            dictionary.setBool(BeAEwTZGlZaeOmY5cm.J00weU3cM6(5004), this.ResetOnLogout);
            dictionary.setBool(BeAEwTZGlZaeOmY5cm.J00weU3cM6(5034), this.ResetOnDisconnect);
            this.OnDefaultsSessionSettingsCreated(dictionary);
            Dictionary settings1 = (Dictionary)null;

            if (this.PriceSessionEnabled)
            {
                settings1 = new Dictionary();
                settings1.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(5072), this.PriceSocketConnectHost);
                settings1.setLong(BeAEwTZGlZaeOmY5cm.J00weU3cM6(5110), this.PriceSocketConnectPort);
                settings1.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(5148), this.PriceFileStorePath);
                this.OnPriceSessionSettingsCreated(settings1);
            }
            Dictionary settings2 = (Dictionary)null;

            if (this.OrderSessionEnabled)
            {
                settings2 = new Dictionary();
                settings2.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(5178), this.OrderSocketConnectHost);
                settings2.setLong(BeAEwTZGlZaeOmY5cm.J00weU3cM6(5216), this.OrderSocketConnectPort);
                settings2.setString(BeAEwTZGlZaeOmY5cm.J00weU3cM6(5254), this.OrderFileStorePath);
                this.OnOrderSessionSettingsCreated(settings2);
            }
            SessionID sessionID1 = this.PriceSessionEnabled ? new SessionID(this.BeginString, this.PriceSenderCompID, this.PriceTargetCompID) : (SessionID)null;
            SessionID sessionID2 = this.OrderSessionEnabled ? new SessionID(this.BeginString, this.OrderSenderCompID, this.OrderTargetCompID) : (SessionID)null;

            this.sessionSettings = new SessionSettings();
            this.sessionSettings.set(dictionary);
            if (this.PriceSessionEnabled)
            {
                this.sessionSettings.set(sessionID1, settings1);
            }
            if (this.OrderSessionEnabled)
            {
                this.sessionSettings.set(sessionID2, settings2);
            }
            this.storeFactory   = (MessageStoreFactory) new FileStoreFactory(this.sessionSettings);
            this.logFactory     = (LogFactory) new FileLogFactory(this.sessionSettings);
            this.messageFactory = (MessageFactory) new DefaultMessageFactory();
            (this.application as QuickFIX43CommonApplication).zWmEpDbll(sessionID1, sessionID2);
        }
Пример #3
0
 public void testSetGetString()
 {
     testObject.setString("key1", "value1");
     testObject.setString("key2", "value2");
     testObject.setString("key3", "value3");
     Assert.AreEqual("value1", testObject.getString("key1"));
     Assert.AreEqual("value2", testObject.getString("key2"));
     Assert.AreEqual("value3", testObject.getString("key3"));
 }
Пример #4
0
    public void testSetGetSessionID()
    {
        Dictionary dictionary1 = new Dictionary();
        dictionary1.setString( "ConnectionType", "initiator" );
        Dictionary dictionary2 = new Dictionary();
        dictionary2.setString( "ConnectionType", "acceptor" );

        SessionID sessionID1 = new SessionID( "FIX.4.0", "SENDER1", "TARGET1" );
        SessionID sessionID2 = new SessionID( "FIX.4.0", "SENDER2", "TARGET2" );
        SessionID sessionID3 = new SessionID( "FIX.4.0", "SENDER3", "TARGET3" );

        testObject.set( sessionID1, dictionary1 );
        testObject.set( sessionID2, dictionary2 );
        dictionary1 = testObject.get( sessionID1 );
        dictionary2 = testObject.get( sessionID2 );

        Assert.AreEqual( "initiator", dictionary1.getString("ConnectionType") );
        Assert.AreEqual( "acceptor", dictionary2.getString("ConnectionType") );

        try
        {
            testObject.get( sessionID3 );
            Assert.Fail();
        }
        catch( ConfigError ) {}
    }
    public void testSetGetSessionID()
    {
        Dictionary dictionary1 = new Dictionary();

        dictionary1.setString("ConnectionType", "initiator");
        Dictionary dictionary2 = new Dictionary();

        dictionary2.setString("ConnectionType", "acceptor");

        SessionID sessionID1 = new SessionID("FIX.4.0", "SENDER1", "TARGET1");
        SessionID sessionID2 = new SessionID("FIX.4.0", "SENDER2", "TARGET2");
        SessionID sessionID3 = new SessionID("FIX.4.0", "SENDER3", "TARGET3");

        testObject.set(sessionID1, dictionary1);
        testObject.set(sessionID2, dictionary2);
        dictionary1 = testObject.get(sessionID1);
        dictionary2 = testObject.get(sessionID2);

        Assert.AreEqual("initiator", dictionary1.getString("ConnectionType"));
        Assert.AreEqual("acceptor", dictionary2.getString("ConnectionType"));

        try
        {
            testObject.get(sessionID3);
            Assert.Fail();
        }
        catch (ConfigError) {}
    }
Пример #6
0
    public void testSetGetDefault()
    {
        Dictionary dictionary = new Dictionary();
        dictionary.setString( "ConnectionType", "initiator" );

        testObject.set( dictionary );
        dictionary = testObject.get();

        Assert.AreEqual( "initiator", dictionary.getString( "ConnectionType" ) );
    }
    public void testSetGetDefault()
    {
        Dictionary dictionary = new Dictionary();

        dictionary.setString("ConnectionType", "initiator");

        testObject.set(dictionary);
        dictionary = testObject.get();

        Assert.AreEqual("initiator", dictionary.getString("ConnectionType"));
    }
Пример #8
0
        protected override void Init()
        {
            Dictionary defaults = new Dictionary();

            defaults.setString(nvcneRd3YWS84l4984.Ey6KSwFglw(222), nvcneRd3YWS84l4984.Ey6KSwFglw(254));
            defaults.setString(nvcneRd3YWS84l4984.Ey6KSwFglw(276), this.StartTime.ToString());
            defaults.setString(nvcneRd3YWS84l4984.Ey6KSwFglw(298), this.EndTime.ToString());
            defaults.setBool(nvcneRd3YWS84l4984.Ey6KSwFglw(316), this.SendRedundantResendRequests);
            defaults.setBool(nvcneRd3YWS84l4984.Ey6KSwFglw(374), this.ResetOnLogout);
            defaults.setBool(nvcneRd3YWS84l4984.Ey6KSwFglw(404), this.ResetOnDisconnect);
            defaults.setBool(nvcneRd3YWS84l4984.Ey6KSwFglw(442), this.RefreshOnLogon);
            defaults.setString(nvcneRd3YWS84l4984.Ey6KSwFglw(474), this.DataDictionary);
            defaults.setBool(nvcneRd3YWS84l4984.Ey6KSwFglw(506), this.CheckLatency);
            defaults.setLong(nvcneRd3YWS84l4984.Ey6KSwFglw(534), (int)this.MaxLatency.TotalSeconds);
            defaults.setLong(nvcneRd3YWS84l4984.Ey6KSwFglw(558), (int)this.ReconnectInterval.TotalSeconds);
            defaults.setLong(nvcneRd3YWS84l4984.Ey6KSwFglw(596), (int)this.HeartBtInt.TotalSeconds);
            defaults.setBool(nvcneRd3YWS84l4984.Ey6KSwFglw(620), this.PersistMessages);
            if (this.PersistMessages)
            {
                defaults.setString(nvcneRd3YWS84l4984.Ey6KSwFglw(654), this.FileStorePath);
            }
            if (this.LoggingEnabled)
            {
                defaults.setString(nvcneRd3YWS84l4984.Ey6KSwFglw(684), this.FileLogPath);
            }
            Dictionary settings = new Dictionary();

            settings.setString(nvcneRd3YWS84l4984.Ey6KSwFglw(710), this.SocketConnectHost);
            settings.setLong(nvcneRd3YWS84l4984.Ey6KSwFglw(748), (int)this.SocketConnectPort);
            SessionID sessionID = new SessionID(nvcneRd3YWS84l4984.Ey6KSwFglw(786), this.SenderCompID, this.TargetCompID);

            this.sessionSettings = new SessionSettings();
            this.sessionSettings.set(defaults);
            this.sessionSettings.set(sessionID, settings);
            this.storeFactory   = this.PersistMessages ? (MessageStoreFactory) new FileStoreFactory(this.sessionSettings) : (MessageStoreFactory) new MemoryStoreFactory();
            this.logFactory     = this.LoggingEnabled ? (LogFactory) new FileLogFactory(this.sessionSettings) : (LogFactory) new NullLogFactory();
            this.messageFactory = (MessageFactory) new DefaultMessageFactory();
            this.application    = (QuickFIX42Application) new mWYFJZ8xKCsaXEKF78(this);
        }
Пример #9
0
        public void Run()
        {
            try
            {
                logger.Info("*** Iniciado Retransmissor BMF!");



                // Cria sessao que será usada para mandar as mensagens
                SessionID _session =
                    new SessionID(
                        new BeginString(_config.BeginString),
                        new SenderCompID(_config.SenderCompID),
                        new TargetCompID(_config.TargetCompID));

                // Cria dicionario da configuracao
                Dictionary mainDic = new Dictionary();

                mainDic.setLong("SocketConnectPort", _config.SocketConnectPort);
                mainDic.setLong("HeartBtInt", _config.HeartBtInt);
                mainDic.setLong("ReconnectInterval", _config.ReconnectInterval);

                mainDic.setBool("ResetOnLogon", _config.ResetSeqNum);
                mainDic.setBool("PersistMessages", _config.PersistMessages);

                // Ver
                // ret.setString("ConnectionType", ConnectionType.ToLower());
                mainDic.setString("SocketConnectHost", _config.Host);
                mainDic.setString("FileStorePath", _config.FileStorePath);

                logger.Debug("FileLogPath: " + _config.FileLogPath);

                mainDic.setString("FileLogPath", _config.FileLogPath);
                mainDic.setString("StartTime", _config.StartTime);
                mainDic.setString("EndTime", _config.EndTime);
                mainDic.setString("ConnectionType", "initiator");

                Dictionary sessDic = new Dictionary();

                sessDic.setString("BeginString", _config.BeginString);
                sessDic.setString("SenderCompID", _config.SenderCompID);
                sessDic.setString("TargetCompID", _config.TargetCompID);
                sessDic.setString("DataDictionary", _config.DataDictionary);
                sessDic.setBool("UseDataDictionary", true);

                if (_config.RawData != null && _config.RawData.Length > 0)
                {
                    sessDic.setString(SessaoFIX.FIX_RAWDATA, _config.RawData);
                }

                if (_config.NewPassword != null && _config.NewPassword.Length > 0)
                {
                    sessDic.setString(SessaoFIX.FIX_NEWPASSWORD, _config.NewPassword);
                }

                if (_config.FiltroListaInstrumentos != null && _config.FiltroListaInstrumentos.Length > 0)
                {
                    sessDic.setString(SessaoFIX.FIX_FILTRO_LISTA_INSTRUMENTOS, _config.FiltroListaInstrumentos);
                }

                if (_config.MdReqID != null && _config.MdReqID.Length > 0)
                {
                    sessDic.setString(SessaoFIX.FIX_MDREQID_PADRAO, _config.MdReqID);
                }

                // Configure the session settings
                SessionSettings sessionSettings = new SessionSettings();

                sessionSettings.set(mainDic);
                sessionSettings.set(_session, sessDic);

                //MemoryStoreFactory fileStore = new MemoryStoreFactory();
                FileStoreFactory          fileStore = new FileStoreFactory(sessionSettings);
                FileLogFactory            fileLog   = new FileLogFactory(sessionSettings);
                QuickFix44.MessageFactory message   = new QuickFix44.MessageFactory();


                SessaoFIX sessaoFIX = new SessaoFIX(
                    sessionSettings,
                    dadosGlobais,
                    filaMensagensFIXInstantaneo,
                    filaMensagensFIXIncremental,
                    filaMensagensRetransmissorBMF);

                while (this.dadosGlobais.KeepRunning)
                {
                    Initiator sessao =
                        new ThreadedSocketInitiator(
                            sessaoFIX, fileStore, sessionSettings, fileLog, message);

                    try
                    {
                        logger.Info("Iniciando Sessao FIX...");

                        sessao.start();

                        string mensagem = filaFeeder.Pop();
                        if (mensagem.Contains(ConstantesMDS.TIPOMSG_FIM_CONEXAO))
                        {
                            break;
                        }

                        logger.Info("Finalizando Sessao FIX...");
                        sessao.stop();
                    }

                    catch (Exception ex)
                    {
                        logger.Error("Falha ao enviar mensagem na fila do Retransmissor BMF: " +
                                     ex.Message, ex);
                        continue;
                    }
                }
            }
            catch (ConfigError e)
            {
                logger.Error("Falha durante configuracao do QuickFix:" + e.Message);
                return;
            }
            catch (Exception ex)
            {
                logger.Error("Run(): " + ex.Message, ex);
                return;
            }
        }
Пример #10
0
        public virtual void IniciarServico()
        {
            logger.Info("IniciarServico(): iniciando canal Bovespa ....");

            // Carrega configurações
            _config = GerenciadorConfig.ReceberConfig <CanalNegociacaoConfig>();

            // Cria sessao que será usada para mandar as mensagens
            _session =
                new SessionID(
                    new BeginString(_config.BeginString),
                    new SenderCompID(_config.SenderCompID),
                    new TargetCompID(_config.TargetCompID));


            // Cria dicionario da configuracao
            Dictionary mainDic = new Dictionary();

            if (_config.SocketAcceptPort > 0)
            {
                mainDic.setLong("SocketAcceptPort", _config.SocketAcceptPort);
            }
            mainDic.setLong("SocketConnectPort", _config.SocketConnectPort);
            mainDic.setLong("HeartBtInt", _config.HeartBtInt);
            mainDic.setLong("ReconnectInterval", _config.ReconnectInterval);

            mainDic.setBool("ResetOnLogon", _config.ResetSeqNum);
            mainDic.setBool("PersistMessages", _config.PersistMessages);

            // Ver
            // ret.setString("ConnectionType", ConnectionType.ToLower());
            mainDic.setString("SocketConnectHost", _config.Host);
            mainDic.setString("FileStorePath", _config.FileStorePath);

            logger.Debug("FileLogPath: " + _config.FileLogPath);
            mainDic.setString("FileLogPath", _config.FileLogPath);
            mainDic.setString("StartTime", _config.StartTime);
            mainDic.setString("EndTime", _config.EndTime);
            if (_config.Initiator)
            {
                mainDic.setString("ConnectionType", "initiator");
            }
            else
            {
                mainDic.setString("ConnectionType", "acceptor");
            }

            Dictionary sessDic = new Dictionary();

            sessDic.setString("BeginString", _config.BeginString);
            sessDic.setString("SenderCompID", _config.SenderCompID);
            sessDic.setString("TargetCompID", _config.TargetCompID);
            sessDic.setString("DataDictionary", _config.DataDictionary);
            sessDic.setBool("UseDataDictionary", true);


            // Configure the session settings
            SessionSettings settings = new SessionSettings();

            settings.set(mainDic);
            settings.set(_session, sessDic);

            FileStoreFactory store = new FileStoreFactory(settings);
            FileLogFactory   logs  = new FileLogFactory(settings);

            QuickFix.MessageFactory msgs = new DefaultMessageFactory();

            // Cria o socket
            if (_config.Initiator)
            {
                _socketInitiator = new SocketInitiator(this, store, settings, logs, msgs);
                _socketInitiator.start();
            }
            else
            {
                _socketAcceptor = new SocketAcceptor(this, store, settings, logs, msgs);
                _socketAcceptor.start();
            }

            _status = ServicoStatus.EmExecucao;

            logger.Info("IniciarServico(): canal Bovespa em execucao....");
        }