Поделиться через


Рекомендации по проектированию для разработки COM+ CRM

Ниже приведены инструкции по разработке COM+ CRM:

  1. Перед началом разработки задайте время ожидания транзакции равным нулю (с помощью средства администрирования служб компонентов). Задайте флаг реестра VTRACE1 (см. раздел параметры реестра COM+ CRM), чтобы видеть предупреждения и сообщения об ошибках CRM в отладочной трассировке.
  2. Определите, какой набор интерфейсов необходимо использовать, структурированные (варианты) или неструктурированные. (См. интерфейсы COM+ CRM.) Это зависит от языка, используемого для разработки CRM, например Microsoft Visual C++ или Microsoft Visual Basic.
  3. Сначала разработайте компонент CRM. Определите сведения, необходимые в записях журнала. Определите необходимые типы записей журналов и их формат.
  4. Отладочный компенсатор CRM предоставляется в составе примеров CRM (в пакете SDK для Windows). Это можно временно использовать при отладке CRM рабочего процесса вместо реального компенсатора CRM.
  5. Когда CRM работает правильно, разработайте основной компенсатор CRM и замените отладочный компенсатор основным компенсатором CRM.
  6. Возможно, желательно изначально не проводить тестирование случая восстановления. Если это так, удалите файл журнала CRM для приложения сервера CRM каждый раз перед началом работы с серверным приложением CRM.

Соображения

  1. Напишите заранее. Компонент CRM должен заранее вести журнал; то есть он должен записать лог, указывающий, что собирается выполнить действие, прежде чем выполнить его на самом деле. Кроме того, эта запись журнала должна быть принудительно записана на диск сразу после записи и перед выполнением действия.
  2. Изоляция. CRM не применяет изоляцию. Дизайн CRM должен обеспечить изоляцию между несколькими клиентами в отдельных транзакциях, а также учитывать ситуацию перед восстановлением.
  3. Выполняется восстановление. Сотрудник CRM должен обрабатывать код ошибки "восстановление в процессе". См. устранение неполадок COM+ CRM для получения дополнительной информации об этом коде ошибки.
  4. Обработка ошибок. Работник CRM должен справиться с тем случаем, когда транзакция прервана раньше, чем ожидалось. См. раздел обработка ошибок вCOM+ CRM.
  5. Время восстановления. CRM-компенсатор должен быть спроектирован для быстрого выполнения процесса восстановления, чтобы новая работа для серверного приложения CRM не должна была ждать.
  6. Идемпотентность. Возможно, компенсатор CRM может снова получить ту же самую запись журнала, чтобы отменить или повторить действие, которое уже было отменено или повторено. Действия, которые может выполнять компенсатор CRM, должны быть идемпотентными, что часто означает, что коды ошибок, возвращаемые этими действиями, должны игнорироваться.
  7. Запуск восстановления. Восстановление серверного приложения CRM выполняется при запуске этого серверного приложения CRM. Однако автоматическое запуск приложения сервера CRM отсутствует. Разработчик приложений должен рассмотреть способ запуска и восстановления.

Концепции компенсирующего менеджера ресурсов COM+