Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
SSIS integrációs modul az Azure Data Factoryben
A csomagok tranzakciókkal kötik össze a feladatok által végrehajtott adatbázis-műveleteket atomi egységekben, és ezzel megőrzik az adatintegritást. A Microsoft Integration Services összes tárolótípus-csomagja, a For Loop, a Foreach Loop és a Sequence tárolók, valamint az egyes feladatokat beágyazó feladat-gazdagépek konfigurálhatók tranzakciók használatára. Az Integration Services három lehetőséget biztosít a tranzakciók konfigurálására: Nem támogatott, Támogatott és Kötelező.
A kötelező érték azt jelzi, hogy a tároló elindít egy tranzakciót, kivéve, ha a szülőtároló már elindít egyet. Ha már létezik tranzakció, a tároló csatlakozik a tranzakcióhoz. Ha például egy olyan csomag, amely nem a tranzakciók támogatására van konfigurálva, tartalmaz egy Olyan Szekvenciatárolót, amely a Kötelező beállítást használja, a Szekvencia-tároló saját tranzakciót indít el. Ha a csomag a Kötelező beállítás használatára lett konfigurálva, a Szekvencia-tároló csatlakozik a csomagtranzakcióhoz.
A támogatottak azt jelzik, hogy a tároló nem indít el tranzakciót, hanem csatlakozik a szülőtároló által indított tranzakciókhoz. Ha például egy négy SQL-feladat végrehajtásával rendelkező csomag elindít egy tranzakciót, és mind a négy tevékenység a Támogatott beállítást használja, a rendszer visszaállítja az SQL-feladatok végrehajtása által végrehajtott adatbázis-frissítéseket, ha valamelyik feladat meghiúsul. Ha a csomag nem indít el tranzakciót, a négy SQL-feladat végrehajtása nem köti egy tranzakcióhoz, és a sikertelen feladat által végrehajtottakon kívül egyetlen adatbázis-frissítés sem lesz visszaállítva.
A NotSupported azt jelzi, hogy a tároló nem indít el tranzakciót, és nem csatlakozik egy meglévő tranzakcióhoz. A szülőtároló által indított tranzakciók nincsenek hatással azokra a gyermektárolókra, amelyek úgy lettek konfigurálva, hogy ne támogassák a tranzakciókat. Ha például egy csomag úgy van konfigurálva, hogy elindítson egy tranzakciót, és a csomagban egy For Loop-tároló a NotSupported beállítást használja, a For Loop egyik feladata sem tud visszagördülni, ha sikertelenek.
A tranzakciókat úgy konfigurálhatja, hogy beállítja a TransactionOption tulajdonságot a tárolón. Ezt a tulajdonságot az SQL Server Data Tools (SSDT) Tulajdonságok ablakával, vagy programozott módon is beállíthatja.
Megjegyzés:
A TransactionOption tulajdonság befolyásolja, hogy a tároló által kért IsolationLevel tulajdonság értéke van-e alkalmazva. További információt a Csomag tulajdonságainak beállítása című témakörben található IsolationLevel tulajdonság leírásában talál.
Csomag konfigurálása tranzakciók használatára
Ha egy csomagot tranzakciók használatára konfigurál, két lehetősége van:
Egyetlen tranzakcióval rendelkezhet a csomaghoz. Ebben az esetben maga a csomag kezdeményezi ezt a tranzakciót, míg a csomag egyes tevékenységei és tárolói is részt vesznek ebben az egyetlen tranzakcióban.
Több tranzakcióval rendelkezik a csomagban. Ebben az esetben a csomag támogatja a tranzakciókat, de a csomag egyes tevékenységei és tárolói ténylegesen kezdeményezik a tranzakciókat.
Az alábbi eljárások a két beállítás konfigurálását írják le.
Csomag konfigurálása egyetlen tranzakció használatára
Ebben a beállításban maga a csomag kezdeményez egyetlen tranzakciót. A csomagot úgy konfigurálja, hogy elindítsa ezt a tranzakciót, ha a csomag TransactionOption tulajdonságát Kötelező értékre állítja.
Ezután konkrét feladatokat és tárolókat fog bevonni ebbe az egyetlen tranzakcióba. Ha egy tevékenységet vagy tárolót szeretne bevonni egy tranzakcióba, az adott tevékenység vagy tároló TransactionOption tulajdonságát Támogatott értékre kell állítania.
Az SQL Server Data Tools (SSDT) alkalmazásban nyissa meg azt az Integration Services-projektet, amely a tranzakció használatára konfigurálni kívánt csomagot tartalmazza.
A Megoldáskezelőben kattintson duplán a csomagra a megnyitásához.
Kattintson a Control Flow fülre.
Kattintson a jobb gombbal a vezérlőfolyamat tervezőfelületének tetszőleges pontjára, majd kattintson a Tulajdonságok parancsra.
A Tulajdonságok ablakban állítsa a TransactionOption tulajdonságot Kötelező értékre.
A ControlFlow lap tervezőfelületén kattintson a jobb gombbal arra a feladatra vagy tárolóra, amelyet regisztrálni szeretne a tranzakcióban, majd kattintson a Tulajdonságok parancsra.
A Tulajdonságok ablakban állítsa a TransactionOption tulajdonságot támogatottra.
Megjegyzés:
Ha egy tranzakcióban szeretne kapcsolatot létrehozni, regisztrálja a tranzakcióban a kapcsolatot használó feladatokat. További információ: Integration Services (SSIS) kapcsolatok.
Ismételje meg a 6. és a 7. lépést minden olyan tevékenységhez és tárolóhoz, amelyet regisztrálni szeretne a tranzakcióban.
Csomag konfigurálása több tranzakció használatára
Ebben a beállításban maga a csomag támogatja a tranzakciókat, de nem indít el tranzakciót. A csomagot úgy konfigurálhatja, hogy támogassa a tranzakciókat, ha a csomag TransactionOption tulajdonságát támogatottra állítja.
Ezután konfigurálja a csomagban a kívánt feladatokat és tárolókat a tranzakciók elindításához vagy a tranzakciókban való részvételhez. Ha egy tevékenységet vagy tárolót úgy szeretne konfigurálni, hogy tranzakciót kezdeményezjen, az adott tevékenység vagy tároló TransactionOption tulajdonságát Kötelező értékre állítja.
Az SQL Server Data Toolsban (SSDT) nyissa meg azt az Integration Services-projektet, amely a tranzakció.s használatára konfigurálni kívánt csomagot tartalmazza.
A Megoldáskezelőben kattintson duplán a csomagra a megnyitásához.
Kattintson a Control Flow fülre.
Kattintson a jobb gombbal a vezérlőfolyamat tervezőfelületének tetszőleges pontjára, majd kattintson a Tulajdonságok parancsra.
A Tulajdonságok ablakban állítsa a TransactionOption tulajdonságot támogatottra.
Megjegyzés:
A csomag támogatja a tranzakciókat, de a tranzakciókat a csomagban lévő tevékenység vagy tárolók indítják el.
A ControlFlow lap tervezőfelületén kattintson a jobb gombbal arra a feladatra vagy tárolóra a csomagban, amelyhez tranzakciót szeretne indítani, majd kattintson a Tulajdonságok parancsra.
A Tulajdonságok ablakban állítsa a TransactionOption tulajdonságot Kötelező értékre.
Ha egy tranzakciót egy tároló indít el, kattintson a jobb gombbal arra a tevékenységre vagy tárolóra, amelyet regisztrálni szeretne a tranzakcióban, majd kattintson a Tulajdonságok parancsra.
A Tulajdonságok ablakban állítsa a TransactionOption tulajdonságot támogatottra.
Megjegyzés:
Ha egy tranzakcióban szeretne kapcsolatot létrehozni, regisztrálja a tranzakcióban a kapcsolatot használó feladatokat. További információ: Integration Services (SSIS) kapcsolatok.
Ismételje meg a 6–9. lépést minden olyan tevékenységhez és tárolóhoz, amely elindít egy tranzakciót.
Több tranzakció egy csomagban
Előfordulhat, hogy egy csomag nem kapcsolódó tranzakciókat is belefoglal egy Integration Services-csomagba. Ha egy beágyazott tárolóhierarchia közepén lévő tároló nem támogatja a tranzakciókat, a hierarchia fölötti vagy alatti tárolók külön tranzakciókat indíthatnak el, ha a tranzakciók támogatására vannak konfigurálva. A tranzakciók a beágyazott tárolóhierarchia legbelső tevékenységétől a csomagig véglegesítik vagy visszaállítják a sorrendet. A belső tranzakció véglegesítése után azonban nem kerül vissza, ha egy külső tranzakció megszakad.
Példa több tranzakcióra egy csomagban
Egy csomag például rendelkezik egy sequence tárolóval, amely két Foreach Loop-tárolót tartalmaz, és mindegyik tároló két SQL-feladatot tartalmaz. A Sequence-tároló támogatja a tranzakciókat, a Foreach Loop-tárolók nem, és az SQL-feladatok végrehajtása igen. Ebben a példában minden végrehajtási SQL-tevékenység saját tranzakciót indít el, és nem fog visszagördülni, ha a sorrendi tevékenység tranzakciója megszakadt.
A Sequence-tároló, a Foreach Loop-tároló és az SQL-feladatok végrehajtása TransactionOption tulajdonságai a következők:
A Sequence-tároló TransactionOption tulajdonsága Kötelező értékre van állítva.
A Foreach Loop-tárolók TransactionOption-tulajdonságai nem támogatottak.
Az SQL-feladatok végrehajtásának TransactionOption tulajdonsága Kötelező értékre van állítva.
Az alábbi ábrán a csomag öt nem kapcsolódó tranzakciója látható. Egy tranzakciót a Sequence tároló indít el, négy tranzakciót pedig az SQL-feladatok végrehajtása indít el.
Örökölt tranzakciók
Egy csomag egy másik csomagot is futtathat a Csomag végrehajtása feladattal. A gyermekcsomag, amely a Csomag végrehajtása feladat által futtatott csomag, létrehozhatja saját csomagtranzakcióját, vagy örökölheti a szülőcsomag-tranzakciót.
A gyermekcsomag örökli a szülőcsomag tranzakcióját, ha az alábbiak mindegyike igaz:
A csomagot egy Csomag végrehajtása feladat hívja meg.
A csomagot meghívó Csomag végrehajtása feladat is csatlakozott a szülőcsomag-tranzakcióhoz.
A gyermekcsomag tárolói és feladatai csak akkor csatlakozhatnak a szülőcsomag tranzakciójához, ha maga a gyermekcsomag csatlakozik a tranzakcióhoz.
Példa örökölt tranzakciókra
Az alábbi ábrán három csomag található, amelyek mindegyike tranzakciókat használ. Minden csomag több feladatot tartalmaz. A tranzakciók viselkedésének hangsúlyozásához csak a Csomag végrehajtása feladatok jelennek meg. Az A csomag a B és a C csomagokat futtatja. A B csomag viszont a D és az E csomagokat, a C csomag pedig az F csomagot futtatja.
A csomagok és feladatok a következő tranzakcióattribútumokkal rendelkeznek:
A TransactionOption a Kötelező értékre van állítva az A és a C csomagon
A TransactionOption a B és a D csomagban támogatott, a B csomag végrehajtása, a D csomag végrehajtása és az F csomag végrehajtása feladatok esetében pedig támogatott .
A TransactionOption értéke Nem támogatott az E csomagban, valamint a C csomag végrehajtása és az E csomag végrehajtása feladatoknál.
Az
Csak a B, D és F csomagok örökölhetik a tranzakciókat a szülőcsomagjaiktól.
A B és D csomagok öröklik az A csomag által indított tranzakciót.
Az F csomag örökli a C csomag által indított tranzakciót.
Az A és a C csomag szabályozza a saját tranzakcióikat.
Az E csomag nem használ tranzakciókat.