1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

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

  1. fedotxxl

    fedotxxl Well-Known Member

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

    Klido Гость

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

    fedotxxl Well-Known Member

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

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

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

    Klido Гость

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

    fedotxxl Well-Known Member

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

    lmike нет, пердело совершенство
    Lotus team

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

    fedotxxl Well-Known Member

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

    TIA :-)
    Lotus team

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

    lmike нет, пердело совершенство
    Lotus team

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

    fedotxxl Well-Known Member

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

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

    lmike нет, пердело совершенство
    Lotus team

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

    Репутация:
    0
    Регистрация:
    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

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

    nvyush Well-Known Member
    Lotus team

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

    hosm * so what *

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

    fedotxxl Well-Known Member

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

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

    lmike нет, пердело совершенство
    Lotus team

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

    Klido Гость

    Репутация:
    0
  19. fedotxxl

    fedotxxl Well-Known Member

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

    TIA :-)
    Lotus team

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

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