| aspirant 
 
   
 
						
						
					 | Дата: 09.06.2011 
						
							|  |  |  |   |  
 
 
	
			esper Mikhail Sukhov 1. Для этой версии все таки ввернуть поддержку базового клиента (в виде опции). Надеюсь, это не сложно. А если просто ревизии по таблицам сохранять между сессиями? Тогда при переподключении будем скачивать только новые данные. Добавить одну строчку действительно было несложно: Кодthis.DataStream.DBConnString = "P2DBSQLite3.dll;sqlite3.ini;{0}.db".Put(this.Table.UniqueName.Replace('\\', '_')); Но при тестировании возникла проблема: если между сессиями меняешь набор колонок в таблице, приходится удалять db файл, и получать данные с нуля.  То есть, если пользователь запустил PlazaTrader, инициализировал таблицу 1 с колонками 1,2,3,4, накачал данных, вышел.  Подумал-подумал, понял, что нужна еще колонка 5, и добавил ее в инициализацию.  Снова запустил PlazaTrader и получил исключение, потому что в db файле в таблице только колонки 1,2,3,4, а плазовсий роутер не умеет менять схему таблиц в db файлах, он только создает их с нуля. Еще: я до конца не разобрался, но, вроде, вытаскивать данные из локальной базы данных (db файл или SQL Server) мы должны сами. Подводя итог, предлагаю временный гибридный вариант:  стаканы: ЛИБО делаем все колонки обязательными (там только одна необязательная: Moment) и при старте получаем данные из локального хранилища, ЛИБО каждый раз получаем с нуля.
 все остальное: храним ревижены между запусками.
 Еще 2: у всех таблиц есть индексы (см. ini файлы-схемы).  Для безбазового клиента они не нужны, поэтому я их не делал (нужно лопатить каждый класс в метаданных).  Без индексов таблицы создаются, но они ведь не зря указываются в файлах-схемах.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| TestPlaza 
 
   
 
						
						
					 | Дата: 09.06.2011 
 
 
	
			Приветствую!Захотелось проверить старую разработку через Плазу. Переписал робота, получил боевой логин. При запуске программы бросается месседж:  "Ошибка подключения к серверу Плазы"
 Может кто-нибудь написать небольшую инструкцию, как подготовить машину для работы с Плазой через Вашу библиотеку?
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| aspirant 
 
   
 
						
						
					 | Дата: 09.06.2011 
 
 
	
			TestPlaza Приветствую!Захотелось проверить старую разработку через Плазу. Переписал робота, получил боевой логин. При запуске программы бросается месседж:  "Ошибка подключения к серверу Плазы"
 Может кто-нибудь написать небольшую инструкцию, как подготовить машину для работы с Плазой через Вашу библиотеку?
 К какому серверу подключаетесь (см. файл client_router.ini)?  Пришлите лог P2SimpleReplClient.log. Инструкцию сейчас пишу.  Как и вся документация, идет не так быстро, как хотелось бы[sad] 
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| Mikhail Sukhov 
 
   
 
						
						
					 | Дата: 09.06.2011 
 
 
	
			TestPlaza Приветствую!Захотелось проверить старую разработку через Плазу. Переписал робота, получил боевой логин. При запуске программы бросается месседж:  "Ошибка подключения к серверу Плазы"
 Может кто-нибудь написать небольшую инструкцию, как подготовить машину для работы с Плазой через Вашу библиотеку?
 Дайте угадаю, в примере ввели логин пароль в текстовый поля? Оставьте их пустыми и просто нажимайте кнопку Подключиться.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| TestPlaza 
 
   
 
						
						
					 | Дата: 10.06.2011 
 
 
	
			Подключаюсь на 194.247.133.25:4001. Нет, ваш пример я даже не собирал, сразу работаю со своим роботом.
 2aspirant: Вечером на ваше мыло сброшу лог.
 
 Может быть проблема с тtм, что я сам не ставил роутер. А использовал тот, который устанавливается с программой LTS Direct.
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| esper 
 
   
 
						
						
					 | Дата: 10.06.2011 
 
 
	
			TestPlaza Подключаюсь на 194.247.133.25:4001. Нет, ваш пример я даже не собирал, сразу работаю со своим роботом.
 2aspirant: Вечером на ваше мыло сброшу лог.
 
 Может быть проблема с тtм, что я сам не ставил роутер. А использовал тот, который устанавливается с программой LTS Direct.
 Лог так же можно сбросить на help@rts.ru , техподдержка у них достаточно оперативная
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| lkor 
 
   
 
						
						
					 | Дата: 10.06.2011 
 
 
	
			TestPlaza Подключаюсь на 194.247.133.25:4001. Нет, ваш пример я даже не собирал, сразу работаю со своим роботом.
 2aspirant: Вечером на ваше мыло сброшу лог.
 
 Может быть проблема с тtм, что я сам не ставил роутер. А использовал тот, который устанавливается с программой LTS Direct.
 Если вы подключаетесь к тестовому серверу то адрес должен быть 194.247.133.43:3001 (или beta-forts.rts.ru:3001 что одно и то же). Соберите пример, проверьте работает ли он. Если да, то проблема в вашем приложении, если нет, то нада искать проблему в роутере. Ссылки на установщики роутеров есть тут .
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| TestPlaza 
 
   
 
						
						
					 | Дата: 14.06.2011 
						
							|  |  |  |   |  
 
 
	
			Я подключаюсь к боевоему серверу. С тех.поддержкой РТС не связывался, так как может проблема в неправильном использовании Вашего фреймворка. Удалил роутер который устанавливался с LTSD. Установил P2_ClientGate1.11.5_32.exe c ftp РТС. Это не решило проблему - "Ошибка подключения к серверу Плазы" Лог роутера Цитата:[p2syslog:trace:p2mq-cli]MQ library started=1
 info=1
 New connection created;mq-conn 0x%X=0
 Socket created;conn 0x%X;sock 0x%X=0
 Socket connected;conn 0x%X;host '%s';port %u=1
 Recv completed;;conn 0x%X;count %d; data %#.*Z=0
 CConnection::RecvLLMsg();InHdr %d;recvLen %d;recvRem %d=0
 CConnection::RecvLLMsg();system_type 0x%X=0
 LLMsg received;mq-conn 0x%X;type 0x%X;ver 0x%X;len %u;flags 0x%X;sign 0x%X%X%X%X;body %#.*Z=0
 RecvLLMsg() finished;res %X;inHdr %d;recvRem %d=0
 Router status received;mq-conn 0x%X;state 0x%X;node_name '%s';login_id %u=0
 LLMsg is sent;mq-conn 0x%X;type 0x%X;len %u;oper_num %d=0
 Operation result received;mq-conn 0x%X;type 0x%X;len %u;oper_num %d;res 0x%X('%s')=0
 Posting message: to '%s'; cat: '%s'; type %d; size %d; bodySize: %d=0
 New message added to recvList. Size: %d=0
 Socket closed;conn 0x%X=1
 Connection released;mq-conn 0x%X=0
 MQ library stopped=1
 Socket closed by peer;conn 0x%X=1
 Socket created;conn 0x%p;sock 0x%p=0
 Socket connected;conn 0x%p;host '%s';port %u=1
 Recv completed;;conn 0x%p;count %d; data %#.*Z=0
 LLMsg received;mq-conn 0x%p;type 0x%X;ver 0x%X;len %u;flags 0x%X;sign 0x%X%X%X%X;body %#.*Z=0
 Router status received;mq-conn 0x%p;state 0x%X;node_name '%s';login_id %u=0
 LLMsg is sent;mq-conn 0x%p;type 0x%X;len %u;oper_num %d=0
 Operation result received;mq-conn 0x%p;type 0x%X;len %u;oper_num %d;res 0x%X('%s')=0
 Socket closed;conn 0x%p=1
 Socket select finished with error in socket;conn 0x%p;sock_err %r=1
 error=1
 Couldn't connect socket;conn 0x%p;host '%s';port %u;timeout %u;sock_err %r=1
 
 [p2syslog:trace:p2repl-cli]
 Client replication library started=1
 info=1
 Stream created;stream 0x%X=1
 Stream opening started;stream 0x%X;type %d;name '%s';server_addr '%s';db_conn '%s'=1
 Stream opened;stream 0x%X;channel 0x%I64X=1
 Scheme setting started;stream 0x%X=1
 Scheme is set;stream 0x%X;channel 0x%I64X=1
 Statistics module '%s' was successfully registered=1
 Statistics was registered;stream name %s=1
 Data requested;stream 0x%X;channel 0x%I64X;session %d=1
 CLEAR_DELETED message received;stream 0x%X=1
 CLOSE message posted;stream 0x%X=1
 Statistics module was unregistered, module name %s=1
 Stream destroyed;stream 0x%X=1
 Client replication library stopped=1
 DATA message received;stream 0x%X=1
 Begin transaction=1
 Preprocessing received record;stream 0x%X;table_idx %u;rec_rev %I64u=0
 Processing received record;stream 0x%X %s; table_idx %u;rec_rev %I64u=1
 Commit transaction=1
 ACK message posted;stream 0x%X=1
 Stream is on-line;stream 0x%X=1
 PING message posted;stream 0x%X=1
 COUNTED_PING message received;stream 0x%X=0
 Couldn't open db-connection;stream 0x%X;db_conn '%s'=1
 error=1
 Couldn't connect to DB;stream 0x%X;db_conn '%s'=1
 Stream created;stream 0x%p=1
 Stream opening started;stream 0x%p,type %d,name '%s',server_addr '%s'=1
 Stream opened;stream 0x%p;channel 0x%I64X=1
 Scheme setting started;stream 0x%p=1
 Scheme is set;stream 0x%p;channel 0x%I64X=1
 Statistics module for table '%s' was successfully registered=1
 Data requested;stream 0x%p;channel 0x%I64X;session %d=1
 CLOSE message received;stream 0x%p=1
 Stream is being closed by server;stream 0x%p,reason 0x%X(%d)=1
 CLEAR_DELETED message received;stream 0x%p=1
 DATA message received;stream 0x%p=1
 Stream is on-line;stream 0x%p=1
 ACK message posted;stream 0x%p=1
 CLOSE message posted;stream 0x%p=1
 PING message posted;stream 0x%p=1
 COUNTED_PING message received;stream 0x%p=1
 
 [p2syslog:trace:db]
 connection with driver %s created=1
 info=1
 
 [p2syslog:trace:SQLLite]
 SQL: %s=0
 info=0
 Processing ini-file '%s' with additional connection settings=0
 
 [p2syslog:trace:P2ClientGate]
 Notification not handled ; notif %I32d; datastream 0x%X=0
 Couldn't set message body; message 0x%X=1
 error=1
 Before P2MQGetMsg for MQ conn %p=0
 Before P2ReplProcessMessage for MQ conn %p and MQ msg %p=0
 After P2ReplProcessMessage for MQ conn %p and MQ msg %p=0
 Stream %s switched to snapshot server %s=1
 info=1
 Stream %s switched to online server %s=1
 
 [p2syslog:trace:RETURN_P2ERR]
 Line %s:%d=0
 
 [p2syslog:trace:Scheme]
 Opened db handles %d, opened table handles %d, opened fld handles %d=1
 info=1
 
 [p2syslog:trace:NULL Fields]
 Parse NULL fields %d=0
 
 [p2syslog:trace:p2db-odbc]
 Couldn't establish connection;conn_str '%s';sql-error %d;descr '%s'=1
 error=1
 Connection established;conn_str '%s';dbc 0x%p=1
 info=1
 Connection closed;dbc 0x%p=1
 Executing SQL-statement;sql '%s';stmt 0x%p=0
 Couldn't execute prepared SQL-statement;stmt 0x%p;sql-error %d;descr '%s'=1
 Preparing SQL-statement;sql '%s';stmt 0x%p=0
 Executing prepared SQL-statement;stmt 0x%p=0
 
 [p2syslog:trace:p2db]
 Startup statements from ini-file were successfully executed=0
 
 [p2syslog:trace:P2ReplStorage]
 DB policy on conn-str created;stream 0x%p,policy 0x%p=1
 info=1
 DB policy on conn-str deleted;stream 0x%p,policy 0x%p=1
 Preprocessing received record;stream 0x%X;table_idx %u;rec_rev %I64u=0
 Processed received record;stream 0x%X %s; table_idx %u;rec_rev %I64u=1
 Revision adjustment;stream 0x%X;table_idx %u;cur_rev %I64d; new_rev %I64d=1
 
 [p2syslog:trace:ReplUtils]
 CLEAR_OLD_REV table %s; minRev %I64d; clearRev %I64d;deletion step %d=1
 info=1
 
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| esper 
 
   
 
						
						
					 | Дата: 14.06.2011 
 
 
	
			Это не лог роутера, а файл конфигурации логирования
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  | 
		
			| 
 | 
		
			
				| transdex 
 
   
 
						
						
					 | Дата: 14.06.2011 
						
							|  |  |  |   |  
 
 
	
			Опыт установки: Исходные ингридиенты: Установщик роутера: P2_ClientGate1.11.5_32.exe PlazaTrader:  отсюда: http://box.net/plaza  версия от 30.05.2011 Как я понял этот вариант (в отличие от первого от 17.05.2011)   сделан под базовую авторизацию: "Базовый способ: аутентификационная информация, т.е. имя пользователя и пароль, указывается в ini-файле роутера, например, при установке P2ClientGate из дистрибутива. При этом клиентский код ничего не знает про аутентификацию. В силу простоты – рекомендуемый метод." Соответственно пароль находится в открытом виде в .ini файле.  Если роутер установлен не как сервис его надо запустить вручную. Плаза-трейдер просто тупо коннектится к локальному 4001 порту. Кстати почему-то все время подразумевается что локальный порт и удаленный одинаковы и равны 4001, что не всегда так. При установке Роутера вводим  адреса и порты сервера Plaza(локальный порт можно изменить в .ini файле), выбираем MTA библиотеку, выбираем установку как сервис или отдельно запускаемое приложение по желанию,а также логин и пароль на подключение к плазе. Если роутер установлен как сервис просто запускаем SampleGUI и жмем на кнопку подключить. Если роутер не сервис, предварительно запускаем роутер файликом start_router.cmd из папки куда установлен роутер. После чего как обычно пишут в Microsoft, можно откинуться на спинку стула и выпить чашечку кофе... В связи с последним на первое время не помешала бы галочка "Не загружать сделки и заявки при старте", аналогично как есть в Cofite SDK.
			
			
			
			
		
 | 
			
				|  | 
	
		| Спасибо: |   |  | 
			
				|  |