Обработка ошибок в SSIS Dynami c Диспетчер подключений - PullRequest
0 голосов
/ 08 мая 2020

У меня есть пакет SSIS, в котором я получаю данные из 350 различных oracle баз данных, размещенных на другом сервере. Я добавил контейнер foreach l oop для извлечения данных с другого сервера и сохранения их в 1 базе данных. Я хочу, чтобы в случае сбоя какого-либо соединения мой пакет пропустил это соединение и переместил его в следующее соединение, как я могу это реализовать?

1 Ответ

0 голосов
/ 08 мая 2020

Если бы я беспокоился о том, что он не работает, я бы протестировал с помощью try catch.

  1. Создайте переменную с именем canConnect type boolean.
  2. Вероятно, у вас уже есть это, но вы требуется строка типа переменной connectionString
  3. Эта строка подключения должна быть установлена ​​на каждой итерации foreach
  4. Добавить задачу сценария
  5. Передать canConnect как чтение / запись и connString как Прочтите
  6. Добавьте следующий код:

    Dts.Variables["canConnect"].Value = false;
    string cstr = Dts.Variables["connString"].Value;
    try
    {
         using(System.Data.OleDB.OleDbConnection conn = new System.Data.OleDB.OleDbConnection(cstr);)
          {
              conn.Open();
              Dts.Variables["canConnect"].Value = true;
    
          }
    }
    catch{}
    finally
    {conn.Close();}
    
  7. Сделайте что-нибудь, если знаете, что canConnect = false

...