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


Причины событий служб Notification Services и способы их решения

Изменения: 17 июля 2006 г.

События Notification Services делятся на четыре категории: ошибка, предупреждение, сведения и детализация. Эти категории используются, чтобы указать, какого типа события службы Notification Services записывают в журнал «Приложение». Дополнительные сведения о настройке ведения журнала событий см. в разделе Настройка ведения журнала событий служб Notification Services.

Типы событий

В следующей таблице показаны диапазоны идентификаторов событий, описание событий в каждом диапазоне и тип событий, показываемый в средстве просмотра событий.

Диапазон идентификаторов событий Описание Тип события

0 - 9999

Ошибки из всех источников, за исключением расширенных хранимых процедур

Ошибка

10000 - 19999

Предупреждения из всех источников

Предупреждение

20000 - 29999

Сведения из всех источников

Сведения

30000 - 39999

Подробные сведения из всех источников

Сведения

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

ms164113.note(ru-ru,SQL.90).gifПримечание.
Следите за событиями с помощью уникальных идентификаторов событий. Не следует отслеживать в описаниях событий определенный текст, так как текст может меняться в зависимости от настроек языкового стандарта и в последующих версиях службы Notification Services.

Причины событий и способы их решения

В следующем списке перечислены события, наиболее часто происходящие при работе служб Notification Services, и возможные способы их решения.

Код события Сообщение, причина и решение

1006

Не удалось открыть запрошенную базу данных.

Причина

Эта ошибка соответствует ошибке 4060 SQL Server. Она указывает, что у текущего пользователя недостаточно прав для входа в указанную базу данных.

В запись журнала событий для данной ошибки входит описание вызвавшей ее ошибки SQL Server. Описание выглядит приблизительно так:

    Невозможно открыть запрошенную при входе базу данных "имя_базы_данных". Ошибка входа в систему.

Решение

Удостоверьтесь, что для учетной записи, которой пользуются службы Notification Services, есть учетная запись входа SQL Server и разрешения в базе данных, упомянутые в сообщении об ошибке. Дополнительные сведения см. в разделе Настройка разрешений SQL Server для экземпляра служб Notification Services.

1008

Недопустимое имя параметров сортировки. Допустимые имена см. в электронной документации по SQL Server.

Причина

Эта ошибка соответствует ошибке 448 SQL Server. Эта ошибка говорит о том, что указанное имя параметров сортировки (обычно в определении приложения) недопустимо.

В запись журнала событий для данной ошибки входит описание вызвавшей ее ошибки SQL Server. Описание выглядит приблизительно так:

    Недопустимые параметры сортировки "имя_параметров_сортировки".

Решение

В определении приложения есть несколько мест, где можно указать параметры сортировки. Найдите имя_параметров_сортировки в записи журнала событий и замените это имя на правильное. Дополнительные сведения о параметрах сортировки см. в разделе COLLATE (Transact-SQL).

1009

Истекло время ожидания выполнения инструкции Transact-SQL.

Причина

Эта ошибка происходит, когда выполнение запроса или хранимой процедуры не завершается в течение указанного времени ожидания. Чаще всего это говорит о большой загруженности SQL Server. Если при выполнении правила событий или правила подписки превышается значение времени ожидания, указанное в определении приложения, возвращается другое сообщение об ошибке.

В запись журнала событий для данной ошибки входит описание фактически вызвавшей ее ошибки.

Решение

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

Если причиной сбоя была очистка, то, вероятно, следует удалить события и уведомления, срок действия которых истек. Дополнительные сведения см. в разделе Удаление устаревших данных приложения.

В службах Notification Services для большинства операций используется значение времени ожидания, равное 30 секундам. Если возможно, попытайтесь ускорить обработку действия, чтобы она завершилась в течение 30 секунд.

1010

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

Причина

Эта ошибка соответствует ошибке 446 SQL Server. Она говорит о том, что указанной операции были переданы объекты с несоответствующими параметрами сортировки.

В запись журнала событий для данной ошибки входит описание фактически вызвавшей ее ошибки. Описание выглядит приблизительно так:

    Не удается разрешить конфликт параметров сортировки для операции имя_операции.

Решение

Определите, какая операция привела к ошибке, просмотрев запись журнала событий, и убедитесь, что в аргументах этой операции указаны соответствующие параметры сортировки. Например, если в одной таблице имеется два столбца с греческими и латинскими параметрами сортировки, то предложение WHERE, аналогичное следующему, вызовет подобную ошибку:

    WHERE GreekCol = LatinCol

В описании ошибки будут присутствовать следующие дополнительные сведения:

    Не удалось разрешить конфликт параметров сортировки в операции равенства.

Чтобы система функционировала правильно, необходимо решить проблему, указанную в описании ошибки.

Дополнительные сведения см. в разделе COLLATE (Transact-SQL).

1011

Не удалось подключиться к SQL Server.

Причина

Это ошибка соответствует ошибке 18456 SQL Server. Она указывает, что у данного пользователя нет соответствующих разрешений для входа в систему.

В запись журнала событий для данной ошибки входит описание вызвавшей ее ошибки SQL Server. Описание выглядит приблизительно так:

    Ошибка входа в систему для пользователя имя_пользователя.

Решение

Убедитесь, что у пользователя, имя которого указано в сообщении об ошибке, есть необходимые разрешения.

Дополнительные сведения см. в разделе Разрешение общих проблем служб Notification Services.

2009

Службам Notification Services не удалось создать экземпляр поставщика событий.

Причина

Службам Notification Services не удалось создать экземпляр поставщика событий. Эта ошибка может произойти в том случае, если пользовательский поставщик событий создавался не при использовании .NET Framework версии 2.0.50727. Когда службы Notification Services и пользовательский компонент используют разные версии .NET Framework, различия в библиотеках классов могут приводить к ошибкам приложения.

Решение

Если возможно, создавайте пользовательские компоненты при помощи платформы .NET Framework версии 2.0.50727. Если необходимо создавать пользовательские компоненты при помощи других версий .NET Framework, то можно настроить службы Notification Services для использования той же версии. Для этого в файл NSService.exe.config добавьте узел <startup>. Этот файл находится в папке vN.N.N.N\Bin служб Notification Services. В следующем примере показан узел <startup>:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

<startup>

<supportedRuntime version="v2.1"/>

<supportedRuntime version="v2.0.50727"/>

</startup>

...

Элементы <supportedRuntime> ограничивают версии .NET Framework, которые могут использоваться службами Notification Services. Порядок перечисления версий определяет порядок, в котором службы Notification Services пытаются загрузить версии .NET Framework. В предыдущем примере службы Notification Services в первую очередь пытаются загрузить .NET Framework версии 2.1. Если она недоступна, то производится попытка загрузить .NET Framework версии 2.0.50727. Следует иметь в виду, что 2.1 не является действительным номер версии, оно приведено только для примера.

Чтобы изменения в файле NSService.exe.config вступили в силу, необходимо перезапустить экземпляр служб Notification Services.

2023

Не удалось найти указанное имя класса поставщиков событий в данной сборке. Убедитесь, что в определении приложения указаны правильные имена класса и сборки.

Причина

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

Службы Notification Services создают экземпляр поставщика событий, загружая сборку, указанную свойством AssemblyName в определении приложения, а затем создавая объект типа, указанного свойством ClassName. Эта ошибка говорит о том, что службам Notification Services не удалось создать экземпляр имени класса из данной DLL-библиотеки. Чаще всего причина заключается в том, что в свойстве AssemblyName указана неверная DLL-библиотека или свойство ClassName содержит неверный класс.

Запись журнала событий для этой ошибки содержит описание возникшего исключения.

Решение

Во-первых, удостоверьтесь, что свойства ClassName и AssemblyName определены правильно. В случае внесения изменений обновите приложение служб Notification Services, а затем включите события. Узел поставщика попытается перезапустить поставщик событий. Если служба во время обновления была остановлена, узел поставщика попытается перезапустить поставщик событий после перезапуска службы.

4012

Существует завершенный такт, содержащий текущее реальное время.

Причина

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

Решение

Проверьте часы в системе базы данных, установив правильное время.

6007

Не удалось загрузить сборку, которая содержит протокол доставки.

Причина

Эта ошибка возникает тогда, когда распространителю не удается загрузить сборку, указанную для пользовательского протокола доставки.

Решение

В конфигурации экземпляра проверьте свойство Protocols, чтобы убедиться в правильности имени сборки, указанного для пользовательского протокола. Имя сборки должно содержать полный путь. Например, если имя сборки myprotocol.dll и она находится в каталоге «C:\bin\CustomComponents», то имя сборки нужно указывать так: «C:\bin\CustomComponents\myprotocol.dll».

Это имя сборки должно указывать на действительную сборку управляемого кода. Чтобы проверить, является ли файл сборкой управляемого кода, попытайтесь открыть его в программе ildasm.exe, входящей в состав пакета Microsoft .NET Framework SDK.

9028

Версия сборки не соответствует версии базы данных.

Причина

Это событие происходит в том случае, когда версия служб Notification Services не соответствует версии, хранящейся в базе данных экземпляра.

Службы Notification Services требуют, чтобы версия исполняемого файла службы (NSService.exe) соответствовала версии последней созданной, обновленной или измененной базы данных. В запись журнала событий входит параметр AssemblyVersion, содержащий версию исполняемого файла службы, и параметр DatabaseVersion.

Решение

В этой ситуации есть три возможных решения:

  • Запустите исполняемый файл службы, версия которого совпадает с версией баз данных экземпляра.
  • Обновите базы данных экземпляра до версии исполняемого файла. Дополнительные сведения см. в разделе Миграция экземпляров служб Notification Services.
  • Заново создайте базы данных экземпляра. К этому средству следует прибегать лишь при крайней необходимости, так как вся информация экземпляра может быть утеряна.

9041

База данных создана в (или обновлена до) другом выпуске служб Notification Services. Пользуйтесь тем выпуском служб Notification Services, с которым может работать база данных.

Причина

Это событие возникает в том случае, когда выпуск служб Notification Services (например Standard или Enterprise) не соответствует выпуску базы данных экземпляра.

Службы Notification Services требуют, чтобы выпуск исполняемого файла службы (NSService.exe) соответствовал выпуску базы данных экземпляра. В тексте записи журнала событий содержится выпуск служб Notification Services, то есть выпуск исполняемого файла службы, а также выпуск базы данных. Эти значения должны совпадать.

Решение

В этой ситуации есть три возможных решения:

  • Если сохранилась версия файла NSService.exe, соответствующая выпуску баз данных экземпляра, запустите его.
  • Если выпуск баз данных экземпляра более старый, чем версия файла NSService.exe, обновите версию базы данных экземпляра до версии исполняемого файла. Дополнительные сведения см. в разделе Миграция экземпляров служб Notification Services.
  • В качестве последнего средства можно заново создать базы данных экземпляра. Помните, что при этом вся информация экземпляра будет удалена.

16001

Обработка рабочего элемента была прервана из-за большого количества последовательных ошибок в канале доставки.

Причина

Это предупреждение выдается в том случае, когда распространитель прекращает обработку рабочего элемента из-за слишком большого количества последовательных ошибок доставки. Обычно оно указывает на длительное неисправное состояние канала доставки.

Решение

Просмотрите сведения о состоянии доставки в разных уведомлениях, чтобы определить природу сбоев и выбрать корректирующее действие для устранения неполадки.

Количество последовательных ошибок доставки, после которого распространитель прерывает обработку рабочего элемента, можно настраивать. Для этого укажите значение параметра FailuresBeforeAbort в разделе ProtocolExecutionSettings определения приложения для каждого протокола, поддерживаемого классом уведомлений. Если значение этого параметра явно не определено, то используется значение по умолчанию, равное 20.

4093 - 4099

Невозможно обновить счетчик производительности.

Причина

Службам Notification Services не удалось обновить счетчики производительности. Попытка это сделать будет произведена в следующем тактовом интервале.

Если эта ошибка происходит несколько раз, то, вероятно, счетчики производительности служб Notification Services повреждены и обновление невозможно до тех пор, пока повреждение не будет устранено. Существует несколько вероятных причин повреждения: повреждение записи реестра, проблемы в других DLL-библиотеках системного монитора и др.

Решение

Если обновление счетчиков производительности Windows не требуется, то можно пропустить это предупреждение. Рекомендации по устранению неполадки и дополнительную информацию см. в статье базы знаний Устранение неполадок с поврежденными счетчиками производительности служб Notification Services.

См. также

Задачи

Просмотр событий служб Notification Services

Основные понятия

Формат событий служб Notification Services

Другие ресурсы

События и ошибки служб Notification Services
Использование сообщений о событиях

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

17 июля 2006 г.

Измененное содержимое
  • Добавлен список наиболее часто встречающихся сообщений о событиях и описание рекомендуемых действий.