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


Обработка ошибок администрирования COM+

Ошибки, создаваемые при использовании объектов COMAdmin, сообщаются двумя способами следующим образом:

  • Использование кодов ошибок, относящихся к библиотеке COMAdmin.
  • Использование расширенных сведений об ошибках, доступных в специальной коллекции ErrorInfo.

Коды ошибок

Коды ошибок администрирования обрабатываются как любое сообщение об ошибке COM. В Microsoft Visual C++эти коды возвращаются в виде значений HRESULT. В Microsoft Visual Basic они генерируются как исключения, которые можно поймать. Для программистов C++ коды ошибок администрирования COM+ определены в Winerror.h. Для программистов Visual Basic они доступны через интегрированную среду разработки Visual Basic.

Коллекция ErrorInfo

При возникновении ошибки, сигнализируемой каким-либо кодом ошибки, более подробные сведения могут быть доступны в зависимости от характера ошибки. Объекты COMAdmin предоставляют расширенную информацию в случаях, когда точные причины сбоя трудно определить без подробного отчета, например с несколькими операциями чтения и записи.

Например, при использовании таких методов, как Заполнение и SaveChanges для объекта COMAdminCatalogCollection, можно читать или записывать данные для каждого элемента коллекции. Сложные ошибки могут возникать, и их может быть трудно диагностировать на основе одного числового кода ошибки. Таким образом, библиотека COMAdmin предоставляет расширенные сведения об ошибках через специальную коллекцию.

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

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

Элементы в коллекции ErrorInfo предоставляют специальные свойства отчетов об ошибках MajorRef и MinorRef, которые подробно описывают причину ошибки. Дополнительные сведения см. в разделе ErrorInfo.

Операции администрирования COM+ в транзакциях

Вводный пример, используя каталог администрирования COM+

обзор объектов COMAdmin

Извлечение коллекций в каталоге COM+

установка свойств и сохранение изменений каталога COM+