Как определить выгрузился ли агент полностью?

Тема в разделе "Lotus - Программирование", создана пользователем ToxaRat, 22 июн 2010.

  1. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    В общем есть агент, скорее всего скриптовый с большим количеством какого-то там кода.
    Как можно определить выгрузился ли он полностью?
    Это вообще даже чисто теоритически возможно?
    Агент может содержать свои самописные классны, сорваться по ошибке и часть памяти он таким макаром точно ужрёт.
    Агент может делать репликацию и тем самым тоже будет сорван, если не справится по таймауту.
    Агент может делать синхронизацию по ODBC/JDBC и т.д. и опять тако сорвется.
    Ну и т.д.
    В общем есть ли какой-то LS скрипт, который в состоянии это определить и не сработать ложно, когда агент менеджер кешируют часть базы(зачем он это делает тоже не понятно)???

    Решения типа постоянного мониторинга памяти, загрузки и прочего не интересует.
    Интересует исключительно определение постфакта, что агент "весь не вышел"
    Да и куда это повесить, терминейт агента как по мне не поможет, так как не говорит о полной выгрузке, использовать связку агент запускает агента?
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    А есть ли подтверждение того, что проблема вообще существует?
     
  3. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    Akupaka
    вот когда смогу создать такой механизм сразу и сообщу, есть ли такая проблема и чем конркретнее она может быть вызвана
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ToxaRat, ты прям Дон Кихот! :)
     
  5. duchan

    duchan Well-Known Member

    Регистрация:
    20 сен 2006
    Сообщения:
    106
    Симпатии:
    3
    например, если агент серверный, то можно с консоли "посмотреть" чем агент менеджер занимается...
    см.NotesSession.SendConsoleCommand ;)

    ну или как-то вытащить agent log - правда прямых способов для этого не помню, через API походу только...
     
  6. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    ни то ни другое не обьясняет мне факт, почему к концу дня процессы nAmgr.exe сьедают по гигу вируальной памяти и нет ни одного средства это сбросить кроме как выгрузить Amgr
     
  7. duchan

    duchan Well-Known Member

    Регистрация:
    20 сен 2006
    Сообщения:
    106
    Симпатии:
    3
    ну, как мне видится, тут скорее проблема не столько агентов, сколько агентменеджера, теряющего память, и версии сервера....
    некоторые версии теряли память и не только, лечилось только апгрейдом сервера...

    Все доступные программные средства в лотусе интерпритируемые среды, сам по себе агент упасть не может, падает агентменеджер его выполняющий. так же агентменеджер отвечает за сбор "мусора" - освобожденной памяти, так что если агент недовыполнился то агентменеджер должен ВСЕ подчистить, если он этого не делает, значит проблема в нем, значит надо его менять на более "свежую" или работающую версию, а это только вместе с сервером.... :)
     
  8. akat

    akat Lotus team
    Lotus team

    Регистрация:
    16 июн 2010
    Сообщения:
    243
    Симпатии:
    7
    ToxaRat,
    а в ваших агентах есть вызовы COM-объектов, или других инородных лотусу тел?:)
     
  9. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    AlexeyKatyushyn
    агенты не обязательно мои, это общая конценция, которую я тоже хочу контролировать :)
     
  10. akat

    akat Lotus team
    Lotus team

    Регистрация:
    16 июн 2010
    Сообщения:
    243
    Симпатии:
    7
    Если провести аналогию, то в случае разработки веб-приложения (не на Домине) и использования плагинов в браузере, вы бы хотели конроллировать, что плагин отработал и выгрузился:facepalm:

    ИМХО, КЕСАРЕВО - КЕСАРЮ...
    Т.е. скорее вопросы к IBM.
     
  11. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    данный вопрос я рассматриваю и как в контектсте своего анализатора - http://codeby.net/forum/threads/31210.html
    и как в контексте своей СЭД, которую любым доступным мне способом пытаюсь сделать совершеннее

    врядли ИБМ может помочь мне решить этот вопрос, так как все их мануалы, редбуки и прочее я уже читал

    а вот ответ такого вида, хоть направил меня куда-то:
    Код (LotusScript):
    Re: Hidden functions in LotusScript: Lsi_info()
    I was interested to learn about the lsi_info() function recently, but could not seem to find any documentation on it, except for 3 parameters for LS memory. I wrote a small chunk of script (in a web agent) to test the function, as follows:

    For i=0 To 255
    Print Cstr(i) & "=" & Lsi_info(i) & "<BR>"
    Next


    Unfortunately it's almost impossible to speculate on the meaning of each of the
    variables, so was near useless. I have discovered though (correct me if my
    guess is wrong):


    lsi_info(2) = The name of the currently executing function
    lsi_info(6) = The version of LotusScript running (!?)
    lsi_info(9) = Current language (en for english)
    lsi_info(12) = The name of the function that called this one


    These I have seen documented on Notes.net:
    lsi_info(50) = LS memory allocated
    lsi_info(51) = LS memory allocated from OS
    lsi_info(52) = LS blocks used
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Куда?
     
  13. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Советую почитать: LSI_Info Not Thread Safe
    Если не отбило охоту использовать Lsi_info, то на 255 доступные команды не заканчиваются:
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Const LSI_INFO</div></div><div class="sp-body"><div class="sp-content">Public Const LSI_INFO_SOURCE_LINE = 1 'current line number
    Public Const LSI_INFO_PROC = 2 'name of current procedure
    Public Const LSI_INFO_MODULE = 3 'name of current module
    Public Const LSI_INFO_VERSION = 6 'LotusScript version number
    Public Const LSI_INFO_LANGUAGE = 9 'language setting
    Public Const LSI_INFO_COUNTRY = 10 'country or region setting
    Public Const LSI_INFO_CALLPROC = 12 'name of calling procedure
    Public Const LSI_INFO_CALLMODULE = 13 'name of calling module
    Public Const LSI_INFO_MEMORY = 50 'LotusScript memory allocated
    Public Const LSI_INFO_MEMORY_OS = 51 'LotusScript memory allocated from OS
    Public Const LSI_INFO_MEMORY_BLOCKS = 52 'LotusScript blocks used
    Public Const LSI_INFO_TICKS_PER_SEC = 98 'clock ticks per second
    Public Const LSI_INFO_TICKS = 99 'current clock ticks
    Public Const LSI_INFO_PROCESS_ID = 400 'process ID
    Public Const LSI_INFO_LINE = 420 'current line number
    Public Const LSI_INFO_CALLLINE = 430 'line number of calling module
    Public Const LSI_INFO_PLATFORM = 440 'platform information
     
  14. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    nvy
    о, чем дальше копаешь тем больше интересного узнаёшь

    а есть где-то полный список по этой функции?
     
  15. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    В IBM :). То что выложил — компиляция из разных источников и "научный тык". Баловался со скриптом, похожим на вышеприведённый, только где-то до 5000, дальше заленился. Всё интересное/полезное привёл, остальное либо нули, либо не поддаётся интерпретации.
     
  16. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
  17. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    не думаю, что полный=)
    ссылку взяла с форума интертраста, кто-то из форумчан недавно давал ссылку на тот топик.
    Ссылку записала в codebase - есть там тема про недокументированное.
    Если что, ищите там... и дополняйте.
     
  18. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    в продолжение темы

    ( 14.07.2010 10:32:30 ) Взятие статистики...
    ( 14.07.2010 10:32:30 ) LS memory allocated: 13101224
    ( 14.07.2010 10:32:30 ) LS memory allocated from OS: 37971110
    ( 14.07.2010 10:32:30 ) LS blocks used: 166864
    ......море гомнокода.....
    ( 14.07.2010 10:36:27 ) LS memory allocated: 15339344
    ( 14.07.2010 10:36:27 ) LS memory allocated from OS: 42718374
    ( 14.07.2010 10:36:27 ) LS blocks used: 190524

    как бы в трансе, должно же быть наоборот, а оно не только память не сьело а наоборот кучу освободило? :)
     
  19. Yakov

    Yakov Гость

    Почему должно быть наоборот? По состоянию на 14.07.2010 10:36:27 потребление памяти увеличилось по сравнению с 14.07.2010 10:32:30.
     
  20. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Ты как считал?
    LS memory allocated:
    10:32:30: 13101224
    10:36:27: 15339344

    15339344 < 13101224 ??? О.о
     
Загрузка...

Поделиться этой страницей