Ошибка "Торговый поток занят"

 
Уважаемые разработчики !

В посте "Критическая ошибка" описывала ошибку терминала, возникающую при ручной торговле.

Эта ошибка с высокой вероятностью возникает при следующих условиях:

- двойной клик на ордере BUY ( SELL ) в терминале, появляется панель закрытия ордера;

- оставляем панель открытой на время от нескольких минут до нескольких десятков минут;

- по истечении этого времени любая попытка открыть, закрыть или модифицировать ордер непреодолимо наталкивается на сообщение "Торговый поток занят", "Неправильная цена".

Выход из такой ситуации только один: закрыть терминал и заново его открыть. Все проблемы мгновенно исчезают сами собой.
 
Какой билд программы используется и что пишется в лог файлах терминала в этом случае?

Мы постаремся воспроизвести у себя, но нам нужны детали. Вообще-то таких сообщений о ошибке торгового потока практически нет (да, они были пару лет назад в очень старых версиях).
 
Билд 216 ( 16 Apr 2008 ). О логах информации предоставить не могу.
 
Билд 216 ( 16 Apr 2008 ). О логах информации предоставить не могу.

Однако именно в логах будет указание на проблему.
 
To Renat 14.05.08 17:12

Когда такое случается на реале, единственная мысль - как закрыть ордера ?

При повторении ошибки сообщу о логах. Ошибка наблюдалась на Win98, Win XP.

Главное подольше держать открытой панель ордеров.
 
Уважаемые разработчики !

Снова "Торговый поток занят" в ранее описанной ситуации на реале.

Сообщение в логах :

16:11:13 'my_login': order #2161149 sell 0.10 EURJPY closing at 162.93 failed [Trade context is busy]

Какая еще информация Вас интересует ?

Устраните эту ошибку, пожалуйста !
 
Думаю, что связано не с временем активности окна операций с ордерами, что-то на стороне сервера происходит, например у меня два счета в одном ДЦ - один баксовый, другой центовый, так вот центовый, после недавнего скандала с человеком воспользовавшимся недостатками котировочного механизма, вообще никакой. Приказы исполняются очень долго (более минуты иногда!!!), хотя скорость прохождения пакетов до 280 мс (стабильно в среднем 190мс) и менее 1% потерь (статистика построена на нескольких замерах из посылок в 1000 пакетов) [другие настройки системы - по умолчанию] на обоих серверах почти одинаковый.
Лог трассировки, где видно, что есть некоторый затык в пути
  1    <1 мс    <1 мс    <1 мс  192.168.1.1
  2    10 ms    11 ms    11 ms  192.168.228.11
  3    10 ms    11 ms    11 ms  192.168.224.41
  4    15 ms    12 ms    11 ms  172.22.13.34
  5    15 ms    11 ms    11 ms  145.109.232.89.in-addr.arpa [89.232.109.145]
  6    10 ms    11 ms    11 ms  217.150.48.30
  7    95 ms    92 ms    91 ms  ge-3-2-0-zcr2.lnt.cw.net [166.63.222.65]
  8   171 ms   167 ms   173 ms  so-0-0-0-dcr1.nyk.cw.net [195.2.10.109]
  9   272 ms   173 ms   172 ms  so-0-0-0-ecr1.nyk.cw.net [195.2.3.14]
 10     *        *        *     Превышен интервал ожидания для запроса.
 11   189 ms     *      192 ms  vl3.distb4.dca2.hopone.net [66.36.224.247]
 12   173 ms   173 ms   173 ms  data-00.***-****.us [209.160.20.**]


Причем такое ощущение, что котирует не автомат, т.к. явно наблюдаются задержки только в определенные моменты. Так вот на центовом часто выдает ошибку "TradeContext: transaction sending error" "TradeContext: ping error" "failed [Trade context is busy]" . К справедливости нужно сказать что связь - это постоянное соединение ADSL со скоростью до 64 кбит/сек и кроме терминала чуток просматриваю форумы. Есть также предположение, что такое поведение связано с большим количеством клиентов и огромным количеством ордеров в базе (хотя недавно была урезана хранимая история, все что было до января 2008 конвертировали в пару строк, остальные записи из базы убрали.)
Если есть возможность попробуй воспроизвести ошибку с другим ДЦ, менее популярным.

 
Думаю, что связано не с временем активности окна операций с ордерами, что-то на стороне сервера происходит, например у меня два счета в одном ДЦ - один баксовый, другой центовый, так вот центовый, после недавнего скандала с человеком воспользовавшимся недостатками котировочного механизма, вообще никакой. Приказы исполняются очень долго (более минуты иногда!!!), хотя скорость прохождения пакетов до 280 мс (стабильно в среднем 190мс) и менее 1% потерь (статистика построена на нескольких замерах из посылок в 1000 пакетов) [другие настройки системы - по умолчанию] на обоих серверах почти одинаковый.
Лог трассировки, где видно, что есть некоторый затык в пути
  1    <1 мс    <1 мс    <1 мс  192.168.1.1
  2    10 ms    11 ms    11 ms  192.168.228.11
  3    10 ms    11 ms    11 ms  192.168.224.41
  4    15 ms    12 ms    11 ms  172.22.13.34
  5    15 ms    11 ms    11 ms  145.109.232.89.in-addr.arpa [89.232.109.145]
  6    10 ms    11 ms    11 ms  217.150.48.30
  7    95 ms    92 ms    91 ms  ge-3-2-0-zcr2.lnt.cw.net [166.63.222.65]
  8   171 ms   167 ms   173 ms  so-0-0-0-dcr1.nyk.cw.net [195.2.10.109]
  9   272 ms   173 ms   172 ms  so-0-0-0-ecr1.nyk.cw.net [195.2.3.14]
 10     *        *        *     Превышен интервал ожидания для запроса.
 11   189 ms     *      192 ms  vl3.distb4.dca2.hopone.net [66.36.224.247]
 12   173 ms   173 ms   173 ms  data-00.***-****.us [209.160.20.**]


Причем такое ощущение, что котирует не автомат, т.к. явно наблюдаются задержки только в определенные моменты. Так вот на центовом часто выдает ошибку "TradeContext: transaction sending error" "TradeContext: ping error" "failed [Trade context is busy]" . К справедливости нужно сказать что связь - это постоянное соединение ADSL со скоростью до 64 кбит/сек и кроме терминала чуток просматриваю форумы. Есть также предположение, что такое поведение связано с большим количеством клиентов и огромным количеством ордеров в базе (хотя недавно была урезана хранимая история, все что было до января 2008 конвертировали в пару строк, остальные записи из базы убрали.)
Если есть возможность попробуй воспроизвести ошибку с другим ДЦ, менее популярным.


Попросите брокера решить вопрос с качеством связи между 9 и 11 хостом.
 
ок, обязательно попробую, спасибо.
 
При попытке установки ордера (в МТ4) возникает ошибка 146 - торговый поток занят. Но при этом функция IsTradeContextBusy() и функция IsTradeAllowed() не регистрируют, что поток занят, и не обрабатывают ошибку (с помощью паузы), и совершается новая попытка открытия ордера, и опять ошибка 146... Не пойму, в чём дело. Можно конечно просто делать паузу при получении этой ошибки, а не в цикле while(IsTradeContextBusy()), но просто непонятно, откуда такой баг.