ПоискПоиск  ПравилаПравила  ПользователиПользователи  ПрофильПрофиль  РегистрацияРегистрация  ВходВход
Форум «Техническая поддержка»
Форум для разработчиков и пользователей программного обеспечения, использующегося на бирже.

Раздел тех.поддержки | Форма обратной связи Тех.поддержка ОАО Московская Биржа: +7 (495) 733-9507, 287-7691
Не можем подключиться к тестовому контуру T1 через SpectraCGate.
Новая тема   Ответить на тему
 Предыдущая тема :: Следующая тема 
 Автор  Сообщение 
Мы
Стаж: 2 месяца 28 дней
Сообщений: 1
Вт Апр 14, 2020 19:37 Ответить с цитатой Получить постоянный адрес сообщения
Написали приложение WPF с использованием шлюзовой библиотеки SpectraCGate для торговли на фондовой бирже. Библиотеку скачали 06-Апр-2020 и в тот же день установили для тестового контура T1. Роутер работает как служба. (Открывали службы и смотрели проверяли - роутер работает.) Не выполняется подключение к тестовому контуру. Вызов функции

CGate.Open("ini=netrepl.ini;key=11111111")
;

выполняется. Ошибка подключения возникает на вызове функции Connection.Open() при попытке установки (как мы понимаем) соединения с роутером. Ниже приводим снипеты кода, в которых показывается, где возникает ошибка.

Подключение к серверу репликации:

/// <summary>
/// Непосредственно устанавливает соединение с сервером
/// репликации и управляет получением репликации.
/// </summary>
private void ConnectAndReceiveReplication(Object p_cancellationToken)
{
	. . . . . . . .
	Connection connToReplServer = new Connection("p2lrpcq://127.0.0.1:4001;app_name=appGetReplication");
    Listener listenerFutInfo = new Listener(connToReplServer,
"p2repl://FORTS_FUTINFO_REPL;scheme=|FILE|fut_info.ini|CustReplScheme");
	listenerFutInfo.Handler += new Listener.MessageHandler(FutInfoReplMessageHandler);
	Listener listenerOrdersAggr = new Listener(connToReplServer,
		"p2repl://FORTS_FUTAGGR20_REPL;scheme=|FILE|orders_aggr.ini|CustReplScheme");
	listenerOrdersAggr.Handler += new Listener.MessageHandler(FutOrdersAggrReplMessageHandler);
	Listener listenerFutTrades = new Listener(connToReplServer,
		"p2repl://FORTS_FUTTRADE_REPL;scheme=|FILE|fut_trades.ini|CustReplScheme");
	listenerFutTrades.Handler += new Listener.MessageHandler(FutTradesReplMessageHandler);
	Listener listenerRtsIndex = new Listener(connToReplServer,
		"p2repl://RTS_INDEX_REPL;scheme=|FILE|rts_index.ini|CustReplScheme");
	listenerRtsIndex.Handler += new Listener.MessageHandler(RtsIndexReplMessageHandler);
	Listener listenerRtsIndexLog = new Listener(connToReplServer,
		"p2repl://RTS_INDEXLOG_REPL;scheme=|FILE|rts_indexlog.ini|CustReplScheme");
	listenerRtsIndexLog.Handler += new Listener.MessageHandler(RtsIndexLogReplMessageHandler);
	Listener listenerPosRepl = new Listener(connToReplServer,
		"p2repl://FORTS_POS_REPL;scheme=|FILE|pos.ini|CustReplScheme");
	listenerPosRepl.Handler += new Listener.MessageHandler(PosReplMessageHandler);
	Listener listenerPartsRepl = new Listener(connToReplServer,
		"p2repl://FORTS_PART_REPL;scheme=|FILE|part.ini|CustReplScheme");
	listenerPartsRepl.Handler += new Listener.MessageHandler(PartsReplMessageHandler);
	Listener listenerClrRepl = new Listener(connToReplServer,
		"p2repl://FORTS_CLR_REPL;scheme=|FILE|clr.ini|CustReplScheme");
	listenerClrRepl.Handler += new Listener.MessageHandler(ClrReplMessageHandler);
	
	// Цикл проверки сосотояния соединения:
    while (!cancelToken.IsCancellationRequested)
	{
		. . . . . . . .
		else if (state == State.Closed)
        {
            connToReplServer.Open(""); // ЗДЕСЬ ОШИБКА СОЕДИНЕНИЯ.
        }
		. . . . . . . .
	}
}


Подключение к серверу заявок.

/// <summary>
/// Непосредственно устанавливает соединение с сервером
/// заявок и выполняет разбор его ответных сообщений.
/// </summary>,.
public void ConnectAndCheckMqReplies(Object p_cancellationToken)
{
	. . . . . . . . . .
	Connection connToOrdersServer = new Connection("p2lrpcq://127.0.0.1:4001;app_name=appSendOrders");
    PublisherForSendingOrders = new Publisher(connToOrdersServer, "p2mq://FORTS_SRV;category=FORTS_MSG;name=pubToSendOrders;timeout=60000;scheme=|FILE|forts_messages.ini|message");
    Listener listenerToGetReplys = new Listener(connToOrdersServer, "p2mqreply://;ref=pubToSendOrders");
    listenerToGetReplys.Handler += new Listener.MessageHandler(CheckMqReplyHandler);
	
	// Цикл проверки сосотояния соединения:
    while (!cancelToken.IsCancellationRequested)
	{
		. . . . . . . . . . . . . . . .
		else if (state == State.Closed)
        {
            connToOrdersServer.Open(""); // ЗДЕСЬ ОШИБКА СОЕДИНЕНИЯ.
        }
		. . . . . . . . . . . . . . . .
	}
}


У техподдержки, можно сказать, "оборвали" телефоны. Но чувствуем, что только с их помощью не справимся. Решили прибегнуть к вашей помощи, уважаемые разработчики. Заранее благодарим. 
 
norvik
Стаж: 3 года 3 месяца
Сообщений: 4
Чт Апр 16, 2020 15:07 (спустя 1 день 19 часов) Ответить с цитатой Получить постоянный адрес сообщения
Три дня назад проблем с подключением не было. Подключался сюда:

default=spectra-t1.moex.com:3001
direct=spectra-t1.moex.com:3000
direct.2=spectra-t1.moex.com:3003
direct.3=spectra-t1.moex.com:3004

Сегодня удалось подключиться к Т0, но почему то не приходит в коллбэке событие CG_MSG_P2REPL_ONLINE,
и начинает течь память у приложения..  
 
Показать сообщения:   
Новая тема   Ответить на тему
Список разделов форума -> Техническая поддержка

Rambler's Top100 Rambler's Top100
Рейтинг@Mail.ru
Copyright © Московская биржа, 2006-2020.
Ваши предложения, замечания и вопросы
по работе форума направляйте на email: