Microsoft SQL Server'de bir paket için DTC işlemlerini etkinleştirdiğinizde SSIS paketinin yürütülmesi yanıt vermeyi durduruyor

Bu makale, bir Microsoft SQL Server Integration Services (SSIS) paketinin yürütülmesinin yanıt vermemeye başlama sorununu çözmenize yardımcı olur. Paket için DTC işlemlerini etkinleştirirseniz ve bir veri akışı görevindeki bileşenin ValidateExternalMetadata özelliğini etkinleştirirseniz.

Özgün ürün sürümü: SQL Server
Özgün KB numarası: 2253391

Belirtiler

Aşağıdaki senaryoyu inceleyin:

  • SQL Server'de bir SSIS paketi oluşturursunuz.
  • SSIS paketi bir veri akışı görevi ve diğer bazı görevleri içerir.
  • TransactionOption SSIS paketinin özelliği DTC işlemlerini kullanmak için Gerekli olarak ayarlanır.
  • Diğer görevler, veri akışı görevini yürütmeden önce bir DTC işleminde çalışır.
  • Veri akışı görevine bir bileşen eklersiniz.
  • Veri ValidateExternalMetadata akışı bileşeninin özelliği True olarak ayarlanır.
  • Veri akışı görevi, veri erişim modunun Tablo veya görünüm ya da Tablo adı veya görünüm adı değişkeni olarak ayarlandığı bir OLE DB Hedef bileşeni içerir.

Bu senaryoda paketi çalıştırdığınızda yürütme yanıt vermeyi durdurur. Ayrıca, Visual Studio'da SSIS paketinde hata ayıklarsanız , İlerleme görünümünde aşağıdakine benzer iletiler alırsınız:

SSIS paketi "Package.dtsx" başlatılıyor.

Bilgi: Veri Akışı Görev, DTS'de 0x4004300A. İşlem hattı: Doğrulama aşaması başlıyor. Bilgi: 0x4001100A: Paket: Bu kapsayıcı için dağıtılmış işlem başlatılıyor. Bilgi: Veri Akışı Görev, DTS'de 0x4004300A. İşlem hattı: Doğrulama aşaması başlıyor.

Neden

Bu sorun, veri akışındaki bağlantı DTC işlemine kaydedilmediğinden oluşur. Bu, saklı yordamın yürütülmesinin sp_cursoropen engellenmesine neden olur. Doğrulama işlemi sırasında bir dtc işlemine bağlantı kaydedilemediğinden bu bir tasarım özelliğidir. Belirtiler bölümünde açıklanan senaryoda, veri akışı görevindeki bağlantı DTC işlemine kaydedilmediğinden paketi çalıştırdığınızda veri akışı bileşeninin doğrulama işlemi engellenir.

Çözüm

Bu sorunu gidermek için aşağıdaki yöntemlerden birini kullanın:

  • Veri akışı görevindeki tüm bileşenler için False olarak ayarlayınValidateExternalMetadata.

  • OLE DB Hedef bileşeninin veri erişim modunu aşağıdaki modlardan birine ayarlayın:

    • Tablo veya görünüm - hızlı yükleme
    • Tablo adı veya görünüm adı değişkeni - hızlı yükleme
    • SQL komutu

Daha fazla bilgi

Tablo veya Veri erişim modunu görüntüle engellenir, ancak her veri erişim modu için veri sağlayıcısı tarafından verilen farklı komutlar nedeniyle diğer veri erişim modları engellenmez. Bu sorun hakkında daha fazla ayrıntı edinmek için veri sağlayıcısı tarafından verilen farklı komutları görmek için SQL Server Profiler kullanın.