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


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

Теги:


Спасибо:




11 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 09.03.2010
Ответить


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

Спасибо:

Pulsar

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


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 09.03.2010
Ответить


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

Спасибо:

Pulsar

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


Нет. Это что? Не нашел описания в вашем Хелпе.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 09.03.2010
Ответить


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

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

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

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

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

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

Спасибо:

Pulsar

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


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

Andrey

Фотография
Благотворитель
Дата: 16.03.2010
Ответить


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

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

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

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

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 16.03.2010
Ответить


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

Спасибо:

Andrey

Фотография
Благотворитель
Дата: 16.03.2010
Ответить


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

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 16.03.2010
Ответить


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

Спасибо:

Andrey

Фотография
Благотворитель
Дата: 23.03.2010
Ответить


Михаил, обнаружил еще странную вещь.
Инициализирую QuikTrader, запускаю экспорт по дде.
Потом мне все это надо остановить, предположим. Останавливаю экспорт.
делаю дисконект и Dispose.
После это не выходя из программы делаю заново включение, т.е.
инициализирую QuikTrader и запускаю экспорт по ДДЕ.
все таблицы экспортируются, но при этом в GetMarketDepth BestAsk и
BestBid - null.
Посмотрите, пожалуйста, это только мой баг.

Спасибо:


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

loading
clippy