У меня есть пакет SSIS, который без проблем работает в течение нескольких месяцев ежедневно. Внезапно он терпит неудачу каждый день с ошибкой выше. Насколько мне известно, никаких изменений в пакете или хранимых процессах, которые он запускает, не было, никаких изменений в среде базы данных не было, включая разрешения для учетной записи службы, которой принадлежит задание.
Это пакет SQL Server 2008, который подключается к базе данных SQL Server 2008 R2. Конфигурация осуществляется через таблицу ssisconfig, и она определяет, какой сервер использовать, через переменную среды.
Рассматриваемый компонент использует хранимую процедуру. В процедуре все поля явно приводятся к тому же типу данных таблицы, в которой данные также размещаются. Проц работает нормально сам по себе. Это относительно сложный процесс с двумя табличными переменными и CTE.
Я не могу запустить его со своего локального компьютера в prod, и dev не выходит из строя. Если я открою пакет prod SSIS, когда для меня задана переменная среды, которую использует владелец задания, я не получу ошибку проверки этого компонента. ValidateExternalMetadata имеет значение true для этого компонента. Однако для всего пакета для параметра «Задержка проверки» установлено значение «Истина». Я получаю ошибку проверки, которую можно было бы ожидать в задаче с использованием переменной, которая устанавливается динамически в более ранней задаче. Эта ошибка, однако, на много-много шагов позже, чем шаг, на котором она в настоящее время терпит неудачу.
Обычно в прошлом, когда у нас случались такого рода неспецифические ошибки, мне было легко увидеть проблему с данными, вызвавшую внезапный сбой. Но ни один из данных в наборе результатов proc даже близко не является неверным для типов данных, определенных для промежуточной таблицы для этого поля. Ни одно из обязательных полей не содержит недостающих данных.
У меня нет идей, на что еще посмотреть. Если среда не изменилась, фактический код не изменился и данные выглядят правильно, что остается попробовать?