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 |
Участник
|
Спасибо!
Действительно, класс должен жить на клиенте. |
|