На сервере зависает агент при очищении памяти

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

  1. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Млин... принудительно чистим память, чтобы не падал сервер. Агент запускается runOnServer. В конце агента срабатывает print, но исполнение агента не заканчивается - зависает =(. Сервер 8.5.1FP1, Linux... Что делать?
     
  2. Klido

    Klido Гость

    может стоит принудительно не занимать память на сервере? :) как именно чистите???
     
  3. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    >может стоит принудительно не занимать память на сервере?
    Предложи способ, мы попробуем

    >как именно чистите???
    Метод Delete

    На других серверах (правда тестировали только на Windows) все нормально работает
     
  4. Klido

    Klido Гость

    Надо понять почему падает. Что за код, который безвозмездно пожирает память?
     
  5. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Система написана на классах. Работает, работает... потом бумс и не работает
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    это чисто LS классы?
    или есть раперы вокруг САПИ, LS2J
     
  7. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Чисто LS
     
  8. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    LS не любит слишком много экземпляров классов. Память течёт и с очисткой кучи не всё хорошо. Часто очень много объектов физически удаляется из кучи только при выгрузке агента. Проявляется как раз долгой выгрузкой агента после выполнения последнего оператора. Лечится явным Delete объектов, особенно тех, которые имеют циклические ссылки друг на друга.
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    а память смотрели?
    скока жрут домино процессы - мониторить пытались? домина ограничена 32бит
     
  10. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    TIA
    Тут ситуация обратная - система виснет, если очищать память... причем только на определенных серверах

    lmike
    Каким образом?
     
  11. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    *никс утилитами ;)
    неуж-то одмины утилей не знают?
     
  12. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    +1.
    про циклические ссылки( на примере linked-lists ) доходчиво расписано у жерарда: http://www-10.lotus.com/ldd/bpmpblog.nsf/d...s-best-practice
     
  13. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    С утечкой памяти еще как-то можно бороться... а как бороться с тем, что агент зависает из-за того, что МЫ БОРЕМСЯ С УТЕЧКОЙ ПАМЯТИ
     
  14. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Может стоит присмотреться к порядку вызова Delete. Возможна ситуация, когда удаляется сперва родительский объект, затем дочерний.
     
  15. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    почти оффтоп, простите, не удержалась...
    тогда, может, как-то не так боретесь? не в той последовательности чистите или что-то лишнее...
    и ему плохо стало от этого.
     
  16. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Похоже (хотя не могу утверждать на 100%), была проблема в:
    в объект А объект Б, в объекте Б объект С. Насколько я понял, на сервере 8.5.1FP1 достаточно было удалить объект С и была *цензура* На 8.5.1FP2 нужно было удалить объект С, а потом попробовать получить к нему доступ через объект Б...

    не понятно мне, что тут такого запретного?
     
  17. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    ВМ старая ;), а работать над ней у ИБМ не хватает сил/времени/желания
     
  18. Klido

    Klido Гость

  19. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Раз уж тема пошла о памяти - какие объекты нужно чистить? Только объекты самописных классов или же еще LS?
     
  20. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Только самописных
     
Загрузка...

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