Разработка контента курса дистанционного обучения "DB2 универсальная база данных", страница 22

...

} catch (Exceptin ex){

          ex.printStackTrace(System.out);

}

Для данного приложения в контексте JNDI WebSphere должно быть опубликовано два ресурса: DataSource (JNDI-имя "DOROGADB") и EJB-компонент ReplicatorBean (JNDI-имя "REPLICATOR"). EJB-компонент ReplicatorBean получает соединение с DB2 и выполняет SQL-запросы, необходимые для репликации. SQL-коды этих операций ReplicatorBean записывает в таблицу журнала REPL_LOG.

Структура таблицы REPL_LOG представлена в таблице 2.4: 

Таблица 2.4 Структура таблицы REPL_LOG

Наименование поля

Тип данных

Комментарий

TIMESTAMP

TIMESTAMP

Значение атрибута “timeStamp” элемента “rowset” XML-документа.

PRIMARY KEY

ROW_ID

VARCHAR(10)

Значение атрибута “id” элемента “row” XML-документа.

PRIMARY KEY

SQLCODE

INTEGER

SQL-код выполнения операции над строкой XML-документа

NOT NULL

Кроме того, обратившемуся к нему классу MultiPartParser EJB-компонент возвращает код завершения операции репликации. Предусмотрено три кода ответа: 1 - ошибка SQL при записи в журнал репликации; 2 - в контексте JNDI не найден ресурс "DOROGADB", или ресурс найден, но установить соединение с DB2 он не может; 0 - описанных выше ошибок не произошло. Сервлет XMLReceiver предоставляет эту информацию пользователю. На рисунках 2.81-2.82 показаны страницы с сообщениями об ошибках:

Рис. 2.81 Ошибка при выполнении приложения

Рис. 2.82 Ошибка при выполнении приложения

Как уже упоминалось, SQL-коды репликации хранятся в журнале (таблица REPL_LOG). Доступ к журналу предоставляется сервлетом Journal. Строка журнала соответствует одному элементу "row" XML-документа и содержит три записи: значение атрибута "timeStamp" элемента "rowset", значение атрибута "id" элемента "row" и SQL-код выполнения операции для соответствующей строки. В случае если имеем SQL-код ошибки, есть возможность точно установить, в каком XML-документа находилась ошибочная строка. Сервлет Journal так же использует JNDI-ресурс "DOROGADB" и соответствующий ему DataSource. На рисунке 2.83 показан результат выполнения репликации в базу данных:

Рис. 2.83 Результат работы приложения

На рисунке 2.84 показана таблица repl_log, которая выводится по нажатии на ссылку "Журнал SQL - операции" на предыдущей странице:

Рис. 2.84 Журнал репликации - результат репликации в базу данных


3. СИСТЕМОТЕХНИЧЕСКИЕ РАСЧЕТЫ

3.1. Введение

Системный подход к разработке программ позволил перейти от «искусства» программирования к технологии, которая представляет собой совокупность приемов, методов, средств, позволяющих формализовать как отдельные этапы проектирования, так и весь процесс в целом. Модульное программирование является необходимой составной частью любой современной технологии программирования.

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

Модуль - это набор знаний, тесно связанных между собой. Каждый модуль состоит из объектов и работ. Между модулями существуют зависимости.

На диаграмме (рис. 3.1) представлена модульная структура курса дистанционного обучения "Разработка Java Web приложений для DB2":

Рис.  3.1 Модульная структура курса

Качество модульной структуры можно охарактеризовать следующими показателями:

1. Прочность модуля - мера внутренних связей.

2. Сцепление модулей - мера взаимозависимости модулей по данным, характеризуется как способом передачи данных, так и свойствами самих этих данных.

Существует семь классов прочности модулей:

I. Модуль, прочный по совпадению - модуль, между элементами которого нет осмысленных связей.

II. Модуль, прочный по логике, при каждом вызове выполняет выбранную функцию из набора связанных с ним. Выбираемая функция обычно запрашивается вызывающим модулем.