Превышено максимальное количество одновременных подключений

Превышено максимальное количество одновременных подключений
Atom
3/9/2010
Pulsar


Добрый день. При первом запуске робота все нормально. При втором - вылетает ошибка : Failed Сообщение Connection failed at step 4 with error 233. Одновременно Квик пишет САБЖ. Лечится залезанием в Диспетчер задач Виндовса и отключением оставшегося в памяти процесса (хотя приложения такого уже в списке нет). В чем собака порылась?


Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 3/9/2010
Reply


Собака порылось в том, что Квик не умеет работать с 2-мя подключениями. Нужно спец. шаманские действия производить. А что за приложение остается в памяти? Мой пример? Какой?

Thanks:

Pulsar

Avatar
Date: 3/9/2010
Reply


Нет, это не ваш пример. Это мой собственный простейший привод (с именем "Привод") всего с двумя кнопками ("Купить по рынку", "Продать по рынку"). Сделан был исключительно с целью ознакомления с основными принципами работы вашей библиотеки, поскольку мне, незнакомому с C#, пришлось реализовывать эти простейшие механизмы (подключение, запуск ДДЕ, получение цены, формирование и отправки заявки) под VB. То что Квик поддерживает только одно подключение - это я уже понял из смысла сообщения :). Вопрос в том что после закрытия приложения "Привод", в списке процессов Диспетчера задач остается процесс "Привод", который и занимает это соединение. Теперь я пытаюсь понять с чем это может быть связано, и что за те самые шаманские действия? Остановка ДДЕ по выходу из приложения "Привод" не помогла.

Thanks:

Mikhail Sukhov

Avatar
Date: 3/9/2010
Reply


QuikTrader.Dispose вызывали?

Thanks:

Pulsar

Avatar
Date: 3/9/2010
Reply


Нет. Это что? Не нашел описания в вашем Хелпе.

Thanks:

Mikhail Sukhov

Avatar
Date: 3/9/2010
Reply


Логично - не написал.

В кратце, new QuikTrader - выделяет ресурсы. Dispose - их освобождает.

StopDde - это лишь остановка экспорта. Его тоже нужно вызывать, но это лишь для того, чтобы Квик не ругался и было корректное завершение экспорта.

Вот что пишет документация, если интересно -

http://msdn.microsoft.com/ru-ru/library/system.idisposable.dispose.aspx

Но если не хочется вдаваться в подробности, просто запомните правило: перед закрытием программы вызывайте QuikTrader.Dispose.

Thanks:

Pulsar

Avatar
Date: 3/9/2010
Reply


Ну я примерно так и понял. Применение метода действительно решило проблему. А поскольку метод системный а не библиотечный то его описания у вас и нет - тоже логично. Спасибо.

Thanks:

Andrey

Avatar
Date: 3/16/2010
Reply


Михаил, у меня возникла следующая проблема c инициализацией/ деинициализацией QuikTrader

  1. Если я инициализирую QuikTrader и при этом квик выключен или не залогинен, то вылетит ошибка в trans2quik.dll - все правильно. после этого вызываю .Dispose - получаю ошибку от trans2quik.dll через какое-то время хочу заново запустить (инициализировать) QuikTrader - получаю ошибку "Элемент с тем же ключом уже добавлен" .

  2. тоже самое происходит если изначально QuikTrader - запустился нормально. но потом после отключения Квика - вызвать Dispose.

Помогите, пожалуйста, разобраться, как правильно свернуть работу приложения если квик не залогинен в момент завершения работы и как правильно потом начать работу, не выключая программу.

Thanks:

Mikhail Sukhov

Avatar
Date: 3/16/2010
Reply


  1. Я не пробовал создавать QuikTrader при выключенном квике. Судя по ошибке - DDE создается и повторно выкидывает ошибку.
  2. То же самое - это значит ошибка? Возможно. Я не хотел оборачивать в try catch такие блоки, так как это может скрыть нужную ошибку. Поэтому нужно самостоятельно создавать перехват ошибок.
Thanks:

Andrey

Avatar
Date: 3/16/2010
Reply


в try catch обернуть можно, но не понятно как отключать дде сервер. т.к. QuikTrader не хочет правильно выполнять Dispose: квик то отключен и раньше отключения дде, функция выдает ошибку из-за невозможности разорвать соединение с квиком.

Thanks:

Mikhail Sukhov

Avatar
Date: 3/16/2010
Reply


Логично. Бага. Спасибо, буду править.

Thanks:
1 2  >

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

loading
clippy