PlazaConnectionPool
Atom
28.05.2011


Восстановил его использование. В процессе переписки с РТС тех поддержкой выяснилось, что даже на тестовом полигоне round-trip заявок уменьшается почти в 2-3 раза, если использовать раздельные коннекшены для потоков и транзакций.

Еще мне тех поддержка посоветовала посмотреть на размер очереди:

Цитата:
Рекомендуется включить трейс New message added to recvList. Size: %d=1 в используемом P2SimpleReplClient_trace.ini и последить за размером очереди сообщений в логе P2SimpleReplClient.log.


Включить то я включил, а вот в лог все равно запись не попадает. Причем похоже локальный P2SimpleReplClient_trace.ini вообще никак не влияет на форматирование лога. Наверное, где-то туплю.

Теги:


Спасибо:


aspirant

Фотография
Дата: 28.05.2011
Ответить


Mikhail Sukhov Перейти
Включить то я включил, а вот в лог все равно запись не попадает. Причем похоже локальный P2SimpleReplClient_trace.ini вообще никак не влияет на форматирование лога. Наверное, где-то туплю.


И заявки перестали региться? Первоисточник не читаешь[smile]
Цитата:
Вызовы колбэков по репликационным потокам, привязанным к отдельно взятому P2Connection, происходят, естественно, внутри ProcessMessage для этого коннекшена.


CP2ConnectionClass для потоков репликации мы прокачиваем в PlazaStreamManager, а основной CP2ConnectionClass (объявленный в PlazaTrader) игнорируется. Прокачку я поставил в TransactionManager. Заявки регистрируются, новая запись в лог попадает. Объявлять трейс нужно в локальном P2SimpleReplClient_trace.ini.


Спасибо:

Mikhail Sukhov

Фотография
Дата: 28.05.2011
Ответить


aspirant Перейти
Mikhail Sukhov Перейти
Включить то я включил, а вот в лог все равно запись не попадает. Причем похоже локальный P2SimpleReplClient_trace.ini вообще никак не влияет на форматирование лога. Наверное, где-то туплю.


И заявки перестали региться? Первоисточник не читаешь[smile]


С заявками то все ок, я же round trip вычислял. Делать прокачку сообщений для транзакционного подключения мне кажется бессмысленно.

aspirant Перейти

Заявки регистрируются, новая запись в лог попадает.


Тоесть у тебя появилась строчка с размером очереди в логе?
Спасибо:

aspirant

Фотография
Дата: 28.05.2011
Ответить


Mikhail Sukhov Перейти
С заявками то все ок, я же round trip вычислял. Делать прокачку сообщений для транзакционного подключения мне кажется бессмысленно.


Насколько я понимаю, прокачка обязательна, если асинхронно отправляешь сообщения: внутри ProcessMessage вызываются коллбэки, например, IP2AsyncSendEvent2. Ради примера, закоментируй нитку прокачки сообщений в TransactionManager (_pollThread = ThreadHelper.CreateThread(PollProc);) и отправь заявку. У меня ответа не было. С прокачкой через 1-2 секунды.

Прокачка не нужна, если сообщения отправляются синхронно.

Mikhail Sukhov Перейти
То есть у тебя появилась строчка с размером очереди в логе?


Цитата:
2011-05-28 18:53:17.103;p2mq-cli;;New message added to recvList. Size: 1


Кстати, может быть сделаем 4 потока, исходя из этой информации (взято отсюда)?
Цитата:
  • Default линк - вспомогательные потоки (POS, PART, INFO, MISC, CLMONEY, INDEX, VOLAT, VM);
  • Первый direct линк - основные торговые потоки (TRADE, AGGR, COMMON);
  • Второй direct линк - подача команд;
  • Третий direct линк - получение исторических данных по потоку TRADE (SNAPSHOT).
Спасибо:

esper

Фотография
Дата: 30.05.2011
Ответить


aspirant Перейти
Кстати, может быть сделаем 4 потока, исходя из этой информации (взято отсюда)?
  • Default линк - вспомогательные потоки (POS, PART, INFO, MISC, CLMONEY, INDEX, VOLAT, VM);
  • Первый direct линк - основные торговые потоки (TRADE, AGGR, COMMON);
  • Второй direct линк - подача команд;
  • Третий direct линк - получение исторических данных по потоку TRADE (SNAPSHOT).

Думаю, это не совсем логично, например, Третий direct линк будет использоваться только однажды при старте и потом будет простаивать. Может так:
  1. подача команд;
  2. получение редкоменяющихся данных + волатильность;
  3. получение данных по фьючерсам;
  4. получение данных по опционам.
?

В любом случае, надо будет контролировать размер очереди по логам, да и данных на тестовом контуре не так много, чтобы нормально протестировать[sad]
Спасибо:

Mikhail Sukhov

Фотография
Дата: 30.05.2011
Ответить


esper Перейти

  1. подача команд;
  2. получение редкоменяющихся данных + волатильность;
  3. получение данных по фьючерсам;
  4. получение данных по опционам.
?


3 и 4 имеют разную нагрузку. Может сделать получение стаканов в отдельном потоке.
Спасибо:

aspirant

Фотография
Дата: 30.05.2011
Ответить


Mikhail Sukhov Перейти
esper Перейти

  1. подача команд;
  2. получение редкоменяющихся данных + волатильность;
  3. получение данных по фьючерсам;
  4. получение данных по опционам.
?


3 и 4 имеют разную нагрузку. Может сделать получение стаканов в отдельном потоке.


Тогда получается три подключения: команды, стаканы и все остальное? Если все правильно, займусь.
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy