PlazaConnectionPool
Atom
5/28/2011


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

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

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


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

Tags:


Thanks:


aspirant

Avatar
Date: 5/28/2011
Reply


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


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


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


Thanks:

Mikhail Sukhov

Avatar
Date: 5/28/2011
Reply


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


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


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

aspirant Go to

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


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

aspirant

Avatar
Date: 5/28/2011
Reply


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


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

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

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


Quote:
2011-05-28 18:53:17.103;p2mq-cli;;New message added to recvList. Size: 1


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

esper

Avatar
Date: 5/30/2011
Reply


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

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

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

Mikhail Sukhov

Avatar
Date: 5/30/2011
Reply


esper Go to

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


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

aspirant

Avatar
Date: 5/30/2011
Reply


Mikhail Sukhov Go to
esper Go to

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


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


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


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy