KB2583994 – JAVÍTÁS: Az SSIS ellenőrzőpont visszaállít egy helytelen változóértéket a For Loop tárolóelemhez az SSIS 2008 vagy az SSIS 2008 R2 rendszerben, ha egy SSIS-csomag újra végrehajtódik a hiba vagy leállás után

Hatókör
SQL Server 2008 Enterprise Microsoft SQL Server 2005 Enterprise Edition SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Enterprise

A Microsoft a Microsoft SQL Server 2008 Service Pack 1 (SP1) és a Microsoft SQL Server 2008 R2 javításokat egyetlen letölthető fájlként terjeszti. Mivel a javítások egymásra épülnek, minden új kiadás tartalmazza az SQL Server 2008 SP1 és az SQL Server 2008 R2 előző kiadásában szereplő összes gyorsjavítást és biztonsági frissítést.

Tünetek

Vegyük például a következő esetet:

  • Telepíti a számítógépre a Microsoft SQL Server 2008 Integration Services (SSIS 2008) vagy a Microsoft SQL Server 2008 R2 Integration Services (SSIS 2008 R2) összetevőt.
  • Létrehoz egy SSIS-csomagot, amely két For Loop tárolóelemet tartalmaz.
  • Két For Loop tárolóhatókör-változót hoz létre a két For Loop tárolóelemhez. A változóknak azonos neve van.
  • A változókat az InitExpression, az EvalExpression és az AssignExpression tulajdonságokban kell használni a két For Loop tárolóelemhez.
  • A két For Loop tárolóelem több, párhuzamosan futó végrehajtási SQL-feladatelemet tartalmaz.
  • Engedélyezi az Ellenőrzőpont beállítást az SSIS-csomaghoz.
  • Futtatja az SSIS-csomagot.
  • Az egyik SQL-feladat végrehajtása sikertelen vagy leáll az SSIS-csomag futása közben.
  • Az SSIS-csomag újra fut.

Ebben az esetben helytelen a Végrehajtási SQL-feladat egyik olyan elemének változóértéke, amely nem hiúsult vagy állt le.

Megjegyzés: Ez a végrehajtás SQL-feladatelem a For Loop tárolóelemben található, amely nem hiúsult meg vagy állt le.

Vegyük például a következő esetet:

  • Létrehoz egy SSIS-csomagot, amely két For Loop tárolóelemmel rendelkezik. Az elemek neve FLC01 és FLC02.
  • Hozzon létre egy BatchNo változót az FLC01-hez és egy BatchNo változót az FLC02-höz.
  • Az InitExpression tulajdonságot a @[User::BatchNo] = 0 értékre állítja.
  • Az EvalExpression tulajdonságot a @[User::BatchNo] < 10 értékre állítja.
  • Az AssignExpression tulajdonságot a következő értékre állítja: @[User::BatchNo]=@[User::BatchNo]+1.
  • A két For Loop tárolóelem több, párhuzamos végrehajtási tervet használó SQL-feladatelemet tartalmaz.
  • Engedélyezi az Ellenőrzőpont beállítást az SSIS-csomaghoz.
  • Futtatja az SSIS-csomagot.
  • Az FLC01 egyik SQL-feladatelemének végrehajtása sikertelen vagy leállt.
  • Az SSIS-csomag újra fut.

Ebben a forgatókönyvben az FLC02 egyik SQL-feladat végrehajtása elemének BatchNo értéke helytelen.

Megjegyzés: Ez a probléma a Microsoft SQL Server 2008 R2 Integration Services (SSIS 2008 R2) szolgáltatásban is előfordul.

Ok

Ez a probléma a Checkpoint változó visszaállítási logikájának hibája miatt fordult elő.

Az ellenőrzőpont-változók helytelen feladatokba lettek visszaállítva. Ezért a program visszaállít egy helytelen változóértéket.

Megoldás

Összegző frissítéssel kapcsolatos információk

SQL Server 2008 R2

A hiba javítását először a 11-es összegző frissítésben adtuk ki. Az SQL Server 2008 R2-höz kiadott összegző frissítőcsomag beszerzéséről a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2633145 11-es összegző frissítőcsomag a SQL Server 2008 R2-höz Megjegyzés: Mivel a buildek kumulatívak, minden új javítás tartalmazza az SQL Server 2008 R2 előző kiadásában szereplő összes gyorsjavítást és biztonsági javítást. Javasoljuk, hogy fontolja meg a gyorsjavítást tartalmazó legújabb javítás telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

981356 Megjelentek a SQL Server 2008 R2 utáni SQL Server 2008 R2 buildek

SQL Server 2008 R2 Service Pack 1

A hiba javítását először az SQL Server 2008 R2 Service Pack 1 4-es összegző frissítésében adtuk ki. Az összegző frissítési csomag beszerzéséről a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2633146 4-es összegző frissítőcsomag a SQL Server 2008 R2 Service Pack 1-höz Megjegyzés: Mivel a buildek kumulatívak, minden új javításkiadás tartalmazza az SQL Server 2008 R2 előző kiadásában szereplő összes gyorsjavítást és biztonsági javítást. Javasoljuk, hogy fontolja meg a gyorsjavítást tartalmazó legújabb javítás telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

2567616 A SQL Server 2008 R2 Service Pack 1 szervizcsomag után megjelent SQL Server 2008 R2 buildek

SQL Server 2008 Service Pack 2

A hiba javítását először az SQL Server 2008 Service Pack 2 7. összegző frissítésében adtuk ki. Az összegző frissítési csomagról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2617148 7-es összegző frissítőcsomag a 2008-as SQL Server 2008-as szervizcsomaghoz Megjegyzés: Mivel a buildek kumulatívak, minden új javításkiadás tartalmazza az összes gyorsjavítást és az összes biztonsági javítást, amely az előző SQL Server 2008-as javításban szerepelt. A Microsoft azt javasolja, hogy fontolja meg az ezt a gyorsjavítást tartalmazó legújabb javítás telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

2402659 A SQL Server 2008-as szervizcsomag 2 megjelenése után kiadott SQL Server 2008-as buildek A Microsoft SQL Server 2008 gyorsjavításai meghatározott SQL Server szervizcsomagokhoz készültek. Az SQL Server 2008 Service Pack 2 telepítéséhez telepítenie kell az SQL Server 2008 Service Pack 2 gyorsjavítását. Alapértelmezés szerint az SQL Server szervizcsomagjában található összes gyorsjavítás megtalálható a következő SQL Server szervizcsomagban.

16-os összegző frissítőcsomag az SQL Server 2008 SP1-hez

A hiba javítását először az SQL Server 2008 SP1 16-os összegző frissítőcsomagja tartalmazza. Az SQL Server 2008 SP1-hez kiadott összegző frissítőcsomag beszerzéséről a Microsoft Tudásbázis alábbi cikkében tájékozódhat:

2582282 16. összegző frissítési csomag a 2008. SQL Server Service Pack 1-hez Megjegyzés: Mivel a buildek összegző jellegűek, minden új frissítés tartalmazza az előző, 2008-as SP1 SQL Server frissítésben szereplő összes gyorsjavítást és biztonsági frissítést. Javasoljuk, hogy fontolja meg a gyorsjavítást tartalmazó legújabb frissítés telepítését. További információ a Microsoft Tudásbázis következő számú cikkében olvasható (a cikk megnyitásához kattintson a sorszámra):

970365 A SQL Server 2008-as szervizcsomag 1 után megjelent SQL Server 2008-as buildek

Kerülő megoldás

A probléma megkerüléséhez használjon eltérő változónevet minden For Loop tárolóelemhez.

Állapot

A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.