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


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


Добрый день.
При первом запуске робота все нормально. При втором - вылетает
ошибка : 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