SSIS 2008R2 Отключить свойство, сохраненное во время разработки во время выполнения

Это случайная деталь (оригинальная) реализация сокетов Berkeley. В основном, реализация использовала номер файловых дескрипторов в качестве переменной размера для некоторых временных внутренних битовых массивов. Поскольку дескрипторы Unix начинаются с нуля, наибольший дескриптор будет на один меньше, чем размер любого массива с семантикой с одним слотом на дескриптор. Следовательно, требование «наибольшее-плюс-одно». Эта настройка плюс-1 могла быть поглощена самим системным вызовом, но не была.

Древняя история, вот и все. В результате правильная интерпретация первого аргумента имеет меньшее отношение к значениям дескриптора , чем к числу из них (т. Е. Максимальное количество дескрипторов, подлежащих тестированию). См. Раздел 6.3 из Stevens et al (Это переработанная и обновленная версия классического текста Rich Stevens. Если у вас ее нет, получите ее!) [/ ​​G6]

0
задан Mark Roworth 16 January 2019 в 16:17
поделиться

2 ответа

Проведя несколько экспериментов, я определил следующее:

  1. Я думаю, что это ошибка, а не функция, но это не имеет значения, и да, в результате значение времени выполнения определенно ЗАПИСЫВАЕТСЯ к значению времени проектирования.

  2. Свойство Disable переоценивается адекватно, поэтому, если его значение будет изменено во время выполнения, задача выполнит это. Я проверил это, используя контейнер цикла, который будет работать бесконечно, и одну задачу ExecuteSQL, которая включается только в первую секунду каждой минуты. Задача ExecuteSQL записывает текущее время и дату в простую таблицу. Таблица медленно заполнялась датами в течение первой секунды каждой минуты, когда выполнялось задание.

InitExpression: @WDindex = DATEPART("s", GETDATE()) EvalExpression: true AssignExpression: @WDindex = DATEPART("s", GETDATE())

Для задачи ExecuteSQL:

INSERT Sandbox.dbo.Log
    (CreatedDateTime,
    Description)
VALUES
    (GETDATE(),
    'Task not disabled')
  1. Я не знаю, но учитывая результат 2, это не совсем дело.
0
ответ дан Mark Roworth 16 January 2019 в 16:17
поделиться

Существует опыт разработки и опыт выполнения. Во время разработки значение переменной @WDindex ... каким бы оно ни было. Я возьму 1 за этот ответ. У вас есть задачи, включенные / отключенные в зависимости от значения, которое отражено в конструкторе.

При запуске пакета значение @WDIndex изменяется на текущее значение / значение времени выполнения. Здесь я предполагаю, что это не 1, так что все правильно в вашем пакете. Когда выполнение пакета служб SSIS завершается, оно не сохраняет текущее состояние. Вместо этого это рабочее пространство сбрасывается до значений времени разработки по умолчанию в ожидании следующего запуска.

Выражения оцениваются каждый раз, когда к ним обращаются. Если бы у вас был какой-то метод переключения @WDIndex между задачами, вы бы это увидели. Более простой способ убедиться в этом - взглянуть на функцию GetDate (). Каждый раз, когда вы просите проверить его, значение будет меняться - если только вы явно не сохраните значение в переменной с помощью задачи сценария или задачи выражения (2012 +).

0
ответ дан billinkc 16 January 2019 в 16:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: