|  25.10.2004, 17:44 | #1 | 
| Участник | класс AOSLoadGen 
			
			Что делает системный класс AOSLoadGen? Поделитесь знаниями, кто может :-)
		 | 
|  | 
|  26.10.2004, 14:42 | #2 | 
| Модератор | 
			
			а перекрестные ссылки?   им Benchmark tool запускает скрипты, чтобы одним тонким клиентом имитировать работу нескольких | 
|  | 
|  27.10.2004, 10:31 | #3 | 
| Участник | 
			
			Да, упоминается он в одном месте в коде. static server void exec3Tier(BMUserScriptID userScriptID) { AOSLoadGen AOSLoadGen; str userScriptIdstr; userScriptIdStr = userScriptID; if (!AOSLoadGen) AOSLoadGen = new AOSLoadGen('',classnum(BMInfo)); if (!AOSLoadGen.spawnClass(classnum(BMUserScriptrun),userScriptIDstr)) throw error("@SYS60253"); } Но что делает, для меня пока остается загадкой. Как он имитирует работу нескольких клиентов? Запускает отдельную сессию на сервере и выполняет в ней класс? | 
|  | 
|  27.10.2004, 12:27 | #4 | 
| Модератор | Цитата: 
		
			Изначально опубликовано kalex  Как он имитирует работу нескольких клиентов? Запускает отдельную сессию на сервере и выполняет в ней класс? по внешнм признакам: - новая сессия если и запускается, то довольно интересно - ни в "активных пользователях", ни в performance monitor она не появляется. Может быть, это сделано специально, чтобы избежать проблем с лицензиями - AOSLoadGen.spawnClass скармливаются два параметра - classNum и строковой параметр. Тот в свою очередь запустит main() соответствующего класса, параметр доступен через args.parm() все это в принципе и так видно на примере а можно поинтересоваться - чего Вы от него добиваетесь? | 
|  | 
|  27.10.2004, 12:31 | #5 | 
| Участник | 
			
			Я ищу способ запустить код на другом клиенте.
		 | 
|  | 
|  27.10.2004, 15:20 | #6 | 
| Участник | Цитата: 
		
			Изначально опубликовано kalex  Я ищу способ запустить код на другом клиенте. | 
|  | 
|  27.10.2004, 15:59 | #7 | 
| Модератор | 
			
			может быть есть смысл посмотреть в сторону SysEventHandler? только очень аккуратно, чтобы не поломать то, что есть   | 
|  | 
|  28.10.2004, 10:49 | #8 | 
| Участник | 
			
			Дело в том, что SysEventHandler работает в отдельном Thread. А из него мне не удается открыть форму или хотя бы вывести info(). Если подскажите, как этого добится, буду очень благодарен.
		 | 
|  | 
|  28.10.2004, 11:56 | #9 | 
| Участник | 
			
			А вот такое решение: пишем текстовый файл в котором необходимый код на X++ далее у клиента запускаем периодическую функцию по setTimeOut - она считывает файл и его исполняет | 
|  | 
|  28.10.2004, 14:49 | #10 | 
| Участник | Цитата: 
		
			Изначально опубликовано monk  А вот такое решение: пишем текстовый файл в котором необходимый код на X++ далее у клиента запускаем периодическую функцию по setTimeOut - она считывает файл и его исполняет   | 
|  | 
|  28.10.2004, 15:22 | #11 | 
| Участник | 
			
			Хорошая идея :-) Но фишка в том, что для работы по таймеру нужно где-то хранить ссылку на класс, иначе его мусорщик соберет. Другого места, как GlobalCash я не вижу. Но если в application.startup() добавить код создания класса и помещения ссылки на него к кэш, таймер почему-то не работате (или ссылка куда-то девается). Хотя если потом руками запустить, то все хорошо работает. В общем, встает проблема: как это запустить при открытии клиента. | 
|  | 
|  28.10.2004, 16:26 | #12 | 
| Модератор | Цитата: 
		
			Изначально опубликовано kalex  Хорошая идея :-) Но фишка в том, что для работы по таймеру нужно где-то хранить ссылку на класс, иначе его мусорщик соберет. Другого места, как GlobalCash я не вижу.  загляните в его classDeclaration | 
|  | 
|  28.10.2004, 16:50 | #13 | 
| Участник | Цитата: 
		
			Изначально опубликовано kalex  Хорошая идея :-) Но фишка в том, что для работы по таймеру нужно где-то хранить ссылку на класс, иначе его мусорщик соберет. Другого места, как GlobalCash я не вижу. Но если в application.startup() добавить код создания класса и помещения ссылки на него к кэш, таймер почему-то не работате (или ссылка куда-то девается). Хотя если потом руками запустить, то все хорошо работает. В общем, встает проблема: как это запустить при открытии клиента. http://axforum.info/forums/showthrea...0&pagenumber=3 и даже пример приведен. У меня всё работает. Возможно что проблема может крытся в том где создаётся объект-резидент (вызывающий таймер) - на клиенте или на сервере в 3-х звеньевой конфигурации. Делайте его с "run on = client". | 
|  | 
|  29.10.2004, 11:08 | #14 | 
| Участник | 
			
			Спасибо! Действительно, класс должен жить на клиенте. | 
|  |