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


Обновление пользовательских объектов для служб SQL Server 2008 Integration Services

SQL Server 2008 содержит новые функции служб Integration Services, которые вызывают критические изменения, влияющие на пользовательские объекты, созданные в службах SQL Server 2005Integration Services. Если нужно использовать такие пользовательские объекты в пакетах служб SQL Server 2008Integration Services, необходимо обновить эти объекты.

В этом разделе описывается выбор наилучших параметров обновления пользовательских объектов и способы обновления этих объектов от версии SQL Server 2005Integration Services до версии SQL Server 2008Integration Services, а также их развертывание. Также объясняется, как обеспечить возможность обнаружения обновленных пользовательских объектов во время автоматизированного обновления пакетов.

Выбор способа обновления пользовательских объектов

Можно либо просто обновить пользовательские объекты, либо обновить их и изменить версию.

  • Только обновление. В этом случае пользовательские объекты изменяются с целью обеспечения совместимости со службами SQL Server 2008Integration Services.

  • Обновление и изменение версии. В этом случае вначале объекты обновляются. Затем обновленным объектам присваивается версия новой сборки и создается файл сопоставления, определяющий расположение новых объектов.

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

ПримечаниеПримечание

Версия SQL Server 2008 среды BI Development Studio автоматически запускает средство обновления пакетов при открытии отдельного пакета SQL Server 2005. Мастер обновления пакетов также использует это средство при обновлении пакета пакетов.

Следующая таблица помогает выбрать способ обновления, указывая на различные факторы, которые следует учитывать при обновлении.

Способ

Влияние на обновление пакетов

Влияние на параллельное существование

Обновление только пользовательских объектов

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

На конкретном компьютере можно использовать только версии пользовательских объектов SQL Server 2008 или версии пользовательских объектов SQL Server 2005. Нельзя использовать версии пользовательских объектов SQL Server 2005 на том же компьютере, на котором используются версии объектов SQL Server 2008.

Обновление пользовательских объектов и изменение их версии

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

На одном компьютере в пакетах SQL Server 2005 можно использовать версии пользовательских объектов SQL Server 2005, а в пакетах SQL Server 2008 — версии пользовательских объектов SQL Server 2008.

Обновление пользовательских объектов

В следующей процедуре показано обновление пользовательских объектов для обеспечения совместимости со службами SQL Server 2008Integration Services.

Обновление пользовательского объекта

  1. Удалите ссылки на сборки служб Integration Services версии 9.0 и замените их ссылками на версию 10.0 тех же сборок.

  2. Переименуйте в коде объекты IDTSxxx90 на эквивалентные объекты IDTSxxx100.

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

После обновления пользовательских объектов можно также изменить их версии. Изменение версии обновленных пользовательских объектов необязательно. Если решено не изменять версию пользовательских объектов, необходимо развернуть обновленные пользовательские объекты, как описано ниже в этом разделе.

Однако если нужно параллельно использовать различные версии пользовательских объектов в пакетах служб SQL Server 2005Integration Services и служб SQL Server 2008Integration Services, следует изменить версии обновленных объектов, как описано в следующем разделе.

Изменение версии пользовательских объектов

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

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

  • Машинный код. Для пользовательских объектов, написанных на машинном коде, изменение версии означает изменение идентификаторов ProgID и CLSID.

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

Сопоставление версий пользовательских объектов для обновления

Службы SQL Server 2008Integration Services добавляют новую вложенную папку UpgradeMappings в папку %ProgramFiles%\Microsoft SQL Server\100\DTS. В этой вложенной папке развертываются файлы сопоставления, указывающие средству обновления пакетов, каким образом выполнять сопоставление объектов служб SQL Server 2005Integration Services с их новыми эквивалентами SQL Server 2008.

После развертывания файлов сопоставления во вложенной папке UpgradeMappings службы Integration Services смогут обновить пакеты, содержащие пользовательские объекты. Файлы сопоставления требуются только во время обновления пакетов. После обновления пакетов файлы сопоставления можно удалить. Дополнительные сведения см. в разделе Обновление пакетов служб Integration Services.

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

ПримечаниеПримечание

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

Образец файла сопоставления

<?xml version="1.0" encoding="utf-8"?>
<Mappings xmlns="https://www.microsoft.com/SqlServer/Dts/UpgradeMapping.xsd">
  <!-- Connection Managers -->
  <ConnectionManagerMapping tag="MSOLAP - Analysis Services connections" 
                            oldValue="MSOLAP90"
                            newValue="MSOLAP100" />
  
  <!-- Extensions -->
  <ExtensionMapping tag="my custom object"
      oldAssemblyStrongName="MyCustomAssembly.MyCustomTask, MyCustomAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
      newAssemblyStrongName="MyCustomAssembly.MyCustomTask, MyCustomAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />

  <!-- Providers -->
  <ProviderMapping tag="SQL Server Native Client - Version dependent" 
                   oldValue="sqlncli.1"
                   newValue="sqlncli10.1" />
  <ProviderMapping tag="SQL Server Native Client - Version independent"
                   oldValue="sqlncli"
                   newValue="sqlncli10" />
  <ProviderMapping tag="MSOLAP - Analysis Services connections"
                   oldValue="msolap.3"
                   newValue="msolap.4" />
</Mappings>

Создание собственного элемента <ExtensionMapping>

Как показано в предыдущем образце файла сопоставления, элемент <ExtensionMapping> сопоставляет объекты служб SQL Server 2005Integration Services с новыми эквивалентами этих объектов служб SQL Server 2008Integration Services. После создания элемента <ExtensionMapping> необходимо присвоить значения атрибутам, указанным в следующей таблице.

Атрибут

Описание

tag

Текст, описывающий пользовательский объект. Это описание используется для записи в журнал.

oldAssemblyStrongName

Строгое имя сборки пользовательского объекта в службах SQL Server 2005Integration Services.

newAssemblyStrongName

Строгое имя сборки пользовательского объекта в службах SQL Server 2008Integration Services.

При сопоставлении сборок существуют следующие параметры.

  • Можно использовать полное имя класса: <имя сборки>.<имя класса>, <имя сборки>, Version=<версия>, Culture=<культура>, PublicKeyToken=<ключ>. Этот формат показан в образце файла сопоставления выше в этом разделе.

  • Можно указать строгое имя самой сборки без имени класса, как показано в следующем примере:

    <ExtensionMapping tag="my custom object"
        oldAssemblyStrongName="MyCustomAssembly, 
    Version=1.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
        newAssemblyStrongName="MyCustomAssembly,
    Version=2.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    

    Если указано строгое имя самой сборки, все классы старой сборки будут сопоставлены с новой сборкой.

Развертывание обновленных пользовательских объектов

Шаги развертывания обновленных пользовательских объектов похожи на процедуру их развертывания в SQL Server 2005. Единственная разница заключается в том, что теперь пользовательская сборка копируется во вложенную папку в папке «%ProgramFiles%\Microsoft SQL Server\100\DTS, а не в папку %ProgramFiles%\Microsoft SQL Server\90\DTS».

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

Значок служб Integration Services (маленький) Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загружать новейшую документацию, статьи, образцы и видеоматериалы от корпорации Майкрософт, а также лучшие решения от участников сообщества, посетите страницу служб Integration Services на сайтах MSDN или TechNet:

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.