Alexander 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 16.03.2012
					
					
			
					 
					 
					
	
			smartcom и samplesmartsma от одного юзера запущен, от админа? версию S# тоже указывайте
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					AlexBuzaev 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 16.03.2012
					
					
			
					 
					 
					
	
			Точно, спасибо Надо запускать от админитсратора
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					kingdom2 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 08.10.2012
					
					
			
					 
					 
					
	
			Добавьте пожалуйста в доку, что Гидру тоже для smartcom надо из под админа пускать.
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Цифровой 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 09.10.2012
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Думал написать в отдельную тему, но раз уж эта "всплыла".
  Меня интересует вопрос, зачем вообще нужно убивать процесс SmartCOM? Негативные последствия от этого предположительно такие:
  1. Как минимум это не позволяет к нему подключиться из двух разных программ. Например, если хочется возложить скачивание маркет-данных на Гидру, а торговать из другой используя тот же SmartCOM.
  2. У меня есть нехороший эффект: если в Гидре сначала нажать Старт, потом Стоп, а затем снова Старт при включенном источнике Smart, то второй раз Старт отвалится по таймауту. Есть предположение, что это связано как раз с убийством SmartCOM во втором Старте.
  Вопрос - какая польза? Ведь она же должна быть :-)
 
  Параметры запуска: - Гидра, скомпилированная под x86 - Запуск с правами администратора - Windows 8 Release Preview x64, Windows 7 Ultimate x64
  Есть также тест на C#, написанный на основе консольного примера для Smart вида: new SmartTrader, Connect, StartExport, Dispose, new SmartTrader, Connect... Скомпилирован под x86. На втором коннекте либо крэш от отсутствия прав, если VisualStudio запущена не под админом, либо бесконечное ожидание успешного коннекта.
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Marco 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 10.10.2012
					
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
								 
							 | 
						 
					 
			
					 
					 
					
	
			Поддержу вопрос. Не знаю, связано ли это с убийством процесса SmartCOM, но определенно с реализацией подключения и переподключения в SmartTrader есть проблемы. Я тоже набросал тест, который умеет подключаться/отключаться, и содержит настройки переподключения при обрыве связи. При тестировании имеем: 
 - После запуска тест подключается к шлюзу и получает сделки.
  - При отключении вручную и последующем подключении вручную (Disconnect()/Connect()), получение сделок успешно возобновляется.
  - При физическом отключении от сети и последующем физическом подключении SmartTrader переподключение выполняет, но получение сделок НЕ возобновляется. (В обработчике события Connected я переподписываюсь на сделки и перезапускаю экспорт.) Вообще при переподключении происходят странные вещи. Например событие Disconnected вызывается с большой задержкой либо вообще не вызывается. При этом Disconnected и Connected могут вызываться несколько раз, в процессе может возникнуть исключение "Программа выполнила недопустимую операцию и будет закрыта" и т.д.
  - При перезапуске сервиса SmartCOM в процессе работы теста, просто перестают вызываться все обработчики событий. Никаких попыток восстановить соединение не предпринимается.
    Настройки переподключения у меня такие: Код
                        // настраиваем переподключение при обрыве связи для SmartCom  
                        trader.ReConnectionSettings.ReConnectingAttemptCount = -1;
                        trader.ReConnectionSettings.ConnectingAttemptCount = -1;
                        trader.ReConnectionSettings.IsReStartExport = false; // true - тоже пробовал.
                        trader.ReConnectionSettings.ExportTimeOutInterval = TimeSpan.FromSeconds(30);
                        trader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);
                        trader.ReConnectionSettings.WorkingTime = Exchange.Rts.WorkingTime;
                        trader.ReConnectionSettings.ConnectionRestored += () =>
                        {
                            Console.WriteLine("Соединение восстановлено.");
                        };
 Собственно вопросы такие: 
 - Есть ли возможность заставить SmartTrader/SmartCOM стабильно переподключаться при проблемах с каналом связи? Если проблема в моем коде, я готов оплатить техподдержку. 
  - Если проблемы в SmartTrader, и у уважаемых авторов библиотеки нет времени/желания/возможности их исправлять, могу ли я получить доступ к проекту SmartTrader, чтобы внести необходимые исправления?
  - Или посоветуете забить на SmartCOM и перейти на Plaza?
  
 P.S.: Тестовый проект - в аттаче. Там нужно поменять константы логина-пароля-портфеля. Прописан адрес основного сервера ITInvest. Если будете использовать тестовую систему - адрес нужно поменять.
			 
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 10.10.2012
					
					
			
					 
					 
					
	
			Убивание процесса было сделано потому, что если он зависнет (а такое было в 2010, когда я через него торговал, сейчас возможно это не актуально), то к нему уже никак не переключиться.
  Реконнект сейчас работает не очень стабильно. В планах его его переделать, но пока это далекие планы, так как нужно малому количеству юзеров. На Квике в последнее время тьфу-тьфу вроде все работает нормально, на Плазе так же, а это основная масса роботостроителей.
  Что можно сделать сейчас.
  1) Можно сделать флаг для опционального убивания процесса СмартКом (что, кстати, возможно и сейчас, достаточно переопределить метод SmartTrader.OnConnect). На разрыв соединения это не повлияет, но первое подключение возможно станет быстрее и стабильнее. 2) Можете оплатить доработку для экстренного фикса самостоятельно, или с кем-то, кому еще она нужна.
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Marco 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 10.10.2012
					
					
			
					 
					 
					
	
			Михаил, спасибо за комментарий. 
  А сколько будет стоить фикс реконнекта для SmartTrader? 
  Хотя предположу, что стратегически более правильно будет свалить на плазу.
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 10.10.2012
					
					
			
					 
					 
					
	
			Marco Михаил, спасибо за комментарий. 
  А сколько будет стоить фикс реконнекта для SmartTrader? 
  Хотя предположу, что стратегически более правильно будет свалить на плазу.  5-10... Не смотрел точно, как можно переделать. Просто видел в коде явные ошибки. Переподключения писалось очень давно, и тогда было другое мировоззрение на работу с потоками. Плаза - это хорошо, но только для ФОРТС.
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Marco 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 10.10.2012
					
					
			
					 
					 
					
	
			Михаил, спасибо. Цена сравнима со стоимостью подключения к плазе. Я подумаю.
			
			
			
			
		
 
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 | 
			
		
			
  | 
		
			
				
					Mikhail Sukhov 
					 
					 
					 
					 
					
					
						
						
					 
				 | 
				
					Дата: 10.10.2012
					
					
			
					 
					 
					
	
			Marco Михаил, спасибо. Цена сравнима со стоимостью подключения к плазе. Я подумаю.  Подключайтесь через СтокШарп  http://stocksharp.com/broker/ Бесплатное подключение к Плазе.[biggrin] 
			
			
			
			
		
  
				 | 
			
			
				| 
					
				 | 
				
					
	
		| 
			Спасибо:
		 | 
		
		
			 
		 | 
	 
 
				 | 
			
			
				| 
					
				 |