Компания IBM
Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 529 / 63 | Оценка: 4.48 / 4.37 | Длительность: 08:45:00
Лекция 5:

Диагностирование и отладка приложения ITSO Electronics

Аннотация: Лекция посвящена отладке приложений: профилирование кода, отладке LotusScript и Java

В Lotus Domino Designer 7 появились новые улучшенные средства диагностирования и отладки. Это профилирование кода, продвинутая отладка LotusScript и удаленная отладка Java. Благодаря этим нововведениям и дополнениям можно улучшить производительность приложений Lotus Domino. Взяв в качестве примера приложение ITSO Electronics, мы займемся исследованием некоторых компонентов из инструментария Lotus Domino Designer. Среди них:

  • профилирование кода: оптимизация производительности в приложении ITSO Electronics;
  • отладка LotusScript: применение улучшенных инструментов отладки LotusScript в приложении ITSO Electronics;
  • отладка Java: удаленная отладка приложения ITSO Electronics.

5.1 Профилирование кода в приложении ITSO Electronics

В Lotus Domino Designer 7 включен мощный оптимизатор кода, Profiler – инструмент, профилирующий код и позволяющий разработчику приложения измерять время, требуемое для выполнения методов в агентах, Web-сервисах и библиотеках скриптов в приложениях Lotus Notes и Domino. Измерение производительности методов в приложениях Lotus Domino позволяет разработчикам определить недостатки кода и сфокусироваться на оптимизации тех его фрагментов, выполнение которых отнимает больше всего времени, что отражается на производительности. В этом разделе мы рассмотрим, как с помощью профилирования кода достичь максимальной производительности и эффективности приложения ITSO Electronics.

Profiler исследует и оценивает методы как в Java, так и в LotusScript, включая операции над объектами Lotus Domino, такими как база данных Lotus Domino. Можно включить поддержку профилирования в агенте или в Web-сервисе, для чего следует открыть закладку Security окна свойств и активировать опцию Profile this agent (Профилировать этот агент) или Profile this web service (Профилировать этот Web-сервис). Профилирование происходит каждый раз, когда выполняется агент или Web-сервис, в котором активировано профилирование. Профилирование агента происходит и на клиенте Lotus Notes, и на сервере Lotus Domino. После активирования опции профилирования на второй закладке окна свойств Agent (см. рис. 5.1) профилирование агента будет производиться, начиная со следующего запуска агента.

Окно свойств Agent

Рис. 5.1. Окно свойств Agent

Агент может быть профилирован вне зависимости от того, запущен он как агент, работающий по расписанию, Web-агент или вручную через меню Action. Профилирующая информация хранится в профильном документе в базе данных, связанной с этим агентом. Для просмотра профилирующей информации выберите профилируемый агент, после чего щелкните Agent => View Profile Results (Агент \Rightarrow Просмотреть результаты профилирования). В верхней части каждого профильного документа записано название агента и время профилирования. Общее затраченное время равно общему количеству времени, в течение которого работал агент. За ним следует полное измеренное время, которое обычно несколько меньше из-за того, что значения времени округляются в меньшую сторону. Например, значения меньше одной миллисекунды в профильном документе округляются до нуля. В профилирующей таблице содержится строка для каждого вызванного метода Domino Objects, а также 5 столбцов:

  • Class (Класс): название класса Domino Objects, используя стандартные имена, такие как Session, Database, Document.
  • Method (Метод): названия метода или свойства Domino Objects, записанные с помощью стандартных имен, таких как CurrentDatabase, AppendItemValue и Save.
  • Operation (Операция): для свойств, тип операции, либо Get, либо Set.
  • Calls (Вызовы): количество вызовов метода или свойства.
  • Time (Длительность): количество времени, затраченного на выполнение вызова в миллисекундах. Символ "<" означает, что времени для вычисления было недостаточно.

Информация в профилирующей таблице упорядочена по убыванию, то есть сначала показаны методы, на выполнение которых ушло больше всего времени. Из профилирующей таблицы этого примера, представленной на рис. 5.2, видно, что метод UpdateFTIndex оказался той частью агента, которая отнимает максимальное количество времени.

Результаты профилирования кода

увеличить изображение
Рис. 5.2. Результаты профилирования кода

Профилирование кода агентов в реальных приложениях обеспечивает разработчиков полезной информацией, позволяя им определять слабые места в своих программах. Используя эту информацию, разработчик модифицирует логику агента, что экономит время и увеличивает производительность.

5.2 Отладка LotusScript в приложении ITSO Electronics

В Lotus Domino Designer 7 усилены возможности отладки LotusScript за счет большей наглядности средств отладки. В дополнение к запуску отладки через системное меню разработчики приложений теперь могут начинать и прекращать отладку с помощью иконки. Сообщение, указывающее на начало или прекращение отладки LotusScript, располагается на панели состояния, а не в окне сообщений. В этом разделе мы продемонстрируем новые средства диагностики на примере приложения ITSO Electronics.

Для отладки LotusScript-приложения ITSO Electronics с использованием новых возможностей и средств отладки выполните следующие действия:

  1. Чтобы включить отладчик, щелкните по кнопке Debug LotusScript (Отладить LotusScript), расположенной на панели инструментов. В строке состояния появится сообщение "LotusScript debugging started" ( рис. 5.3).
    Запуск отладчика LotusScript

    увеличить изображение
    Рис. 5.3. Запуск отладчика LotusScript
  2. Чтобы отключить отладчик, снова щелкните по иконке Debug LotusScript. В строке состояния появится сообщение "LotusScript debugging terminated" ( рис. 5.4).
    Остановка отладчика LotusScript

    увеличить изображение
    Рис. 5.4. Остановка отладчика LotusScript

5.3 Отладка Java в приложении ITSO Electronics

Пожалуй, самое интересное дополнение к инструментарию отладчика в Lotus Domino Designer 7 – это удаленная отладка Java. Удаленная отладка Java позволяет разработчику приложения в среде Lotus Domino отладить агенты Java, предварительные просмотры в Web и библиотеки скриптов, работающие под управлением клиента Lotus Notes в Java Virtual Machine (JVM) с отладчиком, поддерживающим Java Platform Debugger Architecture (JPDA), таким как Rational Application Developer, основанном на технологии Eclipse. И хотя вы не можете отладить код Java, работающий на сервере Lotus Domino, JPDA предлагает богатый набор функций, когда дело касается локальной отладки кода Java. В этом разделе мы продемонстрируем удаленную отладку Java в приложении ITSO Electronics, используя Rational Application Developer.

5.3.1 Включение отладки Java в клиенте Lotus Notes

Клиент Lotus Notes поддерживает отладку Java в представленных ниже контекстах. В каждом контексте есть свой собственный JVM. Код Java из библиотеки скриптов выполняется в контексте вызывающего кода. Отладку в каждом контексте может производить единовременно лишь один пользователь.

  • Foreground (Передний план): код Java, который интерактивно выполняется в клиенте Lotus Notes, например агент, запускаемый из меню Actions.
  • Background (Задний план): код Java, который выполняется в клиенте Lotus Notes под управлением загрузчика заданий, например локальный агент, работающий по расписанию.
  • Web preview (Предварительный просмотр Web): код Java, просматриваемый в браузере через Lotus Domino Designer, например апплет на форме.

Для включения отладки Java в приложении ITSO Electronics из клиента Lotus Notes выполните следующее:

  1. Выберите File => Tools => Java Debugging Preferences (Файл \Rightarrow Сервис \Rightarrow Параметры отладки Java). Откроется окно свойств Java Debugging, представленное на рис. 5.5.
    Окно свойств Java Debugging

    увеличить изображение
    Рис. 5.5. Окно свойств Java Debugging
  2. Для включения отладки переднего плана (foreground debugging) выберите Client Agents/Applets (Агенты/приложения клиента) и определите номер порта, через который будут подключаться отлаживающие компьютеры и Lotus Notes ( рис. 5.6). Очистите это поле, если хотите отключить данную функцию.
    Окно свойств Java Debugging с выбранным типом агента Client Agents/Applets

    увеличить изображение
    Рис. 5.6. Окно свойств Java Debugging с выбранным типом агента Client Agents/Applets
  3. Для включения отладки предпросмотра в Web (Web preview debugging), выберите Http Preview (Просмотр в протоколе Http ) и определите номер порта, по которому могли бы подключаться компьютеры, на которых запущен клиент Lotus Notes.

    Очистите это поле, если не хотите использовать данную функцию. Выберите номер свободного порта. Чтобы узнать, какие порты используются на данном компьютере, работающем под управлением операционной системы Windows, выполните в командной строке команду

    > netstat –a
    (для вызова командной строки щелкните Пуск => Выполнить (Start => Run), после чего введите с клавиатуры cmd и нажмите на клавишу Enter ). По умолчанию отладка Java выключена.

Если вы выполняете изменения в параметрах переднего плана ( foreground ) и заднего плана ( background ), Lotus Notes необходимо перезапустить. Если вы выполните изменения в параметрах предварительного просмотра Web (Web preview), необходимо будет произвести перезапуск предварительного просмотра.