Заваливается сервер после исполнения большого объема данных

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

  1. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Привет всем
    Есть агент, который за раз обрабатывает большое объем данных. Этот агент произвольным образом валит сервер. Как можно решить проблему? Вот такая задачка...
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Если глобально - переписать агента :)
    Что за агент, какие конструкуции тяжёлые используются (list of NotesDatabase/NotesDocument/..., ещё что-нить)
     
  3. Klido

    Klido Гость

    обработчик ошибок подключен? что в консоли сервака при падении? там где Panic...
     
  4. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Omh
    Если глобально, то да... но не получится
    Агент по-расписанию, который обрабатывает отложенные в системе запросы. Может распределить его нагрузку между несколькими агентами по-расписанию?

    Klido
    Прости, можешь по-подробнее рассказать...

    Может есть какие тулзы, четко указывающие причину падения?
     
  5. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    была какая-то утилика, которая nsd после падения расшифровует..
     
  6. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    ToxaRat
    Очень интересно посмотреть... я её тоже где-то видел, но вот где?...

    Люди, никто не исследовал, как LN использует память? Как правильно убивать объекты?... вот такая инфа меня интересует
     
  7. Klido

    Klido Гость

    обработчик ошибок типа подключен класс (или на пальцах)
    On Error Goto errorHandler
    Dim RTE As RunTimeError
    .....
    errorHandler:
    Set RTE = New RunTimeError(Err, Error, Erl, "{Имя агнета}", True, True)
    Call RTE.SendToErrorsDB()
    Call RTE.LogToMail()
    Exit Sub
    хорошо бы во всех кодах ставить - может успеет сообщить проблему перед падением...

    консоль сервера - системный лог домино, там при падении можно в 80% случаев заметить отчего падает (либо последняя команда, либо в теме когда система говорит Panic...)

    честно говоря, за всё время жизни с лотусом у меня ровно 1 раз дошло до раскапывания nsd :) более того, в целях восстановляемости мы его нафиг нигде не делаем, вот разве что уже когда думать не на что - можно включить и сделать...
     
  8. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    Lotus Notes Diagnostic Tool
     
  9. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Klido
    Это, конечно, есть. Код отрабатывается без ошибок...

    RAJ
    Пасиба! оно, ща посмотрим, что делает
     
  10. Klido

    Klido Гость

    фиксап базе делали? мож какой-то плохой док встречается по пути... мож принт вывести в лог, чтоб понять в какой момент валится...
    в момент работы агента больше ничего не происходит с документами? другой агент, репликация?
     
  11. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Klido
    Ошибка может вообще не возникнуть. Я подозреваю, что неправильно расходуется память.
     
  12. Klido

    Klido Гость

    это запросто и сколько угодно :(
    а если вручную запустить с клиента? или не выйдет?
     
  13. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Klido
    Вручную видно, что память летит хорошо... сейчас добавляю везде delete. Клиент вроде не хочет падать
     
Загрузка...

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