Bagikan melalui


Transaksi Layanan Integrasi

Berlaku untuk: SQL Server SSIS Integration Runtime di Azure Data Factory

Paket menggunakan transaksi untuk mengikat tindakan database yang dilakukan tugas ke dalam unit atomik, dan dengan melakukan ini mempertahankan integritas data. Semua paket jenis kontainer Microsoft Integration Services, kontainer For Loop, Foreach Loop, dan Sequence, dan host tugas yang merangkum setiap tugas dapat dikonfigurasi untuk menggunakan transaksi. Integration Services menyediakan tiga opsi untuk mengonfigurasi transaksi: NotSupported, Supported, dan Required.

  • Diperlukan menunjukkan bahwa kontainer memulai transaksi, kecuali kontainer sudah dimulai oleh kontainer induknya. Jika transaksi sudah ada, kontainer akan bergabung dengan transaksi. Misalnya, jika paket yang tidak dikonfigurasi untuk mendukung transaksi menyertakan kontainer Urutan yang menggunakan opsi Diperlukan , kontainer Urutan akan memulai transaksinya sendiri. Jika paket dikonfigurasi untuk menggunakan opsi Diperlukan , kontainer Urutan akan bergabung dengan transaksi paket.

  • Didukung menunjukkan bahwa kontainer tidak memulai transaksi, tetapi menggabungkan transaksi apa pun yang dimulai oleh kontainer induknya. Misalnya, jika paket dengan empat tugas Execute SQL memulai transaksi dan keempat tugas menggunakan opsi Didukung , pembaruan database yang dilakukan oleh tugas Execute SQL digulung balik jika ada tugas yang gagal. Jika paket tidak memulai transaksi, empat tugas Jalankan SQL tidak terikat oleh transaksi, dan tidak ada pembaruan database kecuali yang dilakukan oleh tugas yang gagal digulung balik.

  • NotSupported menunjukkan bahwa kontainer tidak memulai transaksi atau bergabung dengan transaksi yang ada. Transaksi yang dimulai oleh kontainer induk tidak memengaruhi kontainer turunan yang telah dikonfigurasi untuk tidak mendukung transaksi. Misalnya, jika paket dikonfigurasi untuk memulai transaksi dan kontainer For Loop dalam paket menggunakan opsi NotSupported , tidak ada tugas di For Loop yang dapat digulung balik jika gagal.

Anda mengonfigurasi transaksi dengan mengatur properti TransactionOption pada kontainer. Anda dapat mengatur properti ini dengan menggunakan jendela Properti di SQL Server Data Tools (SSDT), atau Anda dapat mengatur properti secara terprogram.

Catatan

Properti TransactionOption memengaruhi apakah nilai properti IsolationLevel yang diminta oleh kontainer diterapkan atau tidak. Untuk informasi selengkapnya, lihat deskripsi properti IsolationLevel dalam topik, Mengatur Properti Paket.

Mengonfigurasi paket untuk menggunakan transaksi

Saat mengonfigurasi paket untuk menggunakan transaksi, Anda memiliki dua opsi:

  • Memiliki satu transaksi untuk paket. Dalam hal ini, paket itu sendiri yang memulai transaksi ini, sedangkan tugas individu dan kontainer dalam paket berpartisipasi dalam transaksi tunggal ini.

  • Memiliki beberapa transaksi dalam paket. Dalam hal ini, paket mendukung transaksi, tetapi tugas dan kontainer individual dalam paket benar-benar memulai transaksi.

Prosedur berikut menjelaskan cara mengonfigurasi kedua opsi.

Mengonfigurasi paket untuk menggunakan satu transaksi

Dalam opsi ini, paket itu sendiri memulai satu transaksi. Anda mengonfigurasi paket untuk memulai transaksi ini dengan mengatur properti TransactionOption paket ke Diperlukan.

Selanjutnya, Anda mendaftarkan tugas dan kontainer tertentu dalam satu transaksi ini. Untuk mendaftarkan tugas atau kontainer dalam transaksi, Anda mengatur properti TransactionOption dari tugas atau kontainer tersebut ke Didukung.

  1. Di SQL Server Data Tools (SSDT), buka proyek Integration Services yang berisi paket yang ingin Anda konfigurasi untuk menggunakan transaksi.

  2. Di Penjelajah Solusi, klik dua kali paket untuk membukanya.

  3. Klik tab Alur Kontrol.

  4. Klik kanan di mana saja di latar belakang permukaan desain alur kontrol, lalu klik Properti.

  5. Di jendela Properti , atur properti TransactionOption ke Diperlukan.

  6. Pada permukaan desain tab ControlFlow , klik kanan tugas atau kontainer yang ingin Anda daftarkan dalam transaksi, lalu klik Properti.

  7. Di jendela Properti , atur properti TransactionOption ke Didukung.

    Catatan

    Untuk mendaftarkan koneksi dalam transaksi, daftarkan tugas yang menggunakan koneksi dalam transaksi. Untuk informasi selengkapnya, lihat Koneksi Integration Services (SSIS).

  8. Ulangi langkah 6 dan 7 untuk setiap tugas dan kontainer yang ingin Anda daftarkan dalam transaksi.

Mengonfigurasi paket untuk menggunakan beberapa transaksi

Dalam opsi ini, paket itu sendiri mendukung transaksi tetapi tidak memulai transaksi. Anda mengonfigurasi paket untuk mendukung transaksi dengan mengatur properti TransactionOption paket ke Didukung.

Selanjutnya, Anda mengonfigurasi tugas dan kontainer yang diinginkan di dalam paket untuk memulai atau berpartisipasi dalam transaksi. Untuk mengonfigurasi tugas atau kontainer untuk memulai transaksi, Anda mengatur properti TransactionOption dari tugas atau kontainer tersebut ke Diperlukan.

  1. Di SQL Server Data Tools (SSDT), buka proyek Integration Services yang berisi paket yang ingin Anda konfigurasi untuk menggunakan transaction.s

  2. Di Penjelajah Solusi, klik dua kali paket untuk membukanya.

  3. Klik tab Alur Kontrol.

  4. Klik kanan di mana saja di latar belakang permukaan desain alur kontrol, lalu klik Properti.

  5. Di jendela Properti , atur properti TransactionOption ke Didukung.

    Catatan

    Paket mendukung transaksi, tetapi transaksi dimulai oleh tugas atau kontainer dalam paket.

  6. Pada permukaan desain tab ControlFlow , klik kanan tugas atau kontainer dalam paket yang ingin Anda mulai transaksinya, lalu klik Properti.

  7. Di jendela Properti , atur properti TransactionOption ke Diperlukan.

  8. Jika transaksi dimulai oleh kontainer, klik kanan tugas atau kontainer yang ingin Anda daftarkan dalam transaksi, lalu klik Properti.

  9. Di jendela Properti , atur properti TransactionOption ke Didukung.

    Catatan

    Untuk mendaftarkan koneksi dalam transaksi, daftarkan tugas yang menggunakan koneksi dalam transaksi. Untuk informasi selengkapnya, lihat Koneksi Integration Services (SSIS).

  10. Ulangi langkah 6 hingga 9 untuk setiap tugas dan kontainer yang memulai transaksi.

Beberapa transaksi dalam paket

Dimungkinkan bagi paket untuk menyertakan transaksi yang tidak terkait dalam paket Layanan Integrasi. Setiap kali kontainer di tengah hierarki kontainer berlapis tidak mendukung transaksi, kontainer di atas atau di bawahnya dalam hierarki memulai transaksi terpisah jika dikonfigurasi untuk mendukung transaksi. Transaksi menerapkan atau menggulung balik secara berurutan dari tugas terdahulu dalam hierarki kontainer berlapis ke paket. Namun, setelah transaksi dalam berkomitmen, transaksi tidak bergulir kembali jika transaksi luar dibatalkan.

Contoh beberapa transaksi dalam paket

Misalnya, paket memiliki kontainer Urutan yang menyimpan dua kontainer Foreach Loop, dan setiap kontainer menyertakan dua tugas Execute SQL. Kontainer Urutan mendukung transaksi, kontainer Foreach Loop tidak, dan tugas Execute SQL lakukan. Dalam contoh ini, setiap tugas Execute SQL akan memulai transaksinya sendiri dan tidak akan bergulir kembali jika transaksi pada tugas Urutan dibatalkan.

Properti TransactionOption dari kontainer Urutan, kontainer Foreach Loop, dan tugas Execute SQL diatur sebagai berikut:

  • Properti TransactionOption dari kontainer Urutan diatur ke Diperlukan.

  • Properti TransactionOption dari kontainer Foreach Loop diatur ke NotSupported.

  • Properti TransactionOption dari tugas Execute SQL diatur ke Diperlukan.

Diagram berikut menunjukkan lima transaksi yang tidak terkait dalam paket. Satu transaksi dimulai oleh kontainer Urutan dan empat transaksi dimulai oleh tugas Jalankan SQL.

Implementasi beberapa transaksi

Transaksi yang diwariskan

Paket dapat menjalankan paket lain dengan menggunakan tugas Jalankan Paket. Paket anak, yang merupakan paket yang dijalankan oleh tugas Execute Package, dapat membuat transaksi paketnya sendiri, atau dapat mewarisi transaksi paket induk.

Paket anak mewarisi transaksi paket induk jika kedua hal berikut ini benar:

  • Paket dipanggil oleh tugas Jalankan Paket.

  • Tugas Jalankan Paket yang memanggil paket juga bergabung dengan transaksi paket induk.

Kontainer dan tugas dalam paket anak tidak dapat bergabung dengan transaksi paket induk kecuali paket anak itu sendiri bergabung dengan transaksi.

Contoh transaksi yang diwariskan

Dalam diagram berikut, ada tiga paket yang semuanya menggunakan transaksi. Setiap paket berisi beberapa tugas. Untuk menekankan perilaku transaksi, hanya tugas Jalankan Paket yang ditampilkan. Paket A menjalankan paket B dan C. Pada gilirannya, paket B menjalankan paket D dan E, dan paket C menjalankan paket F.

Paket dan tugas memiliki atribut transaksi berikut:

  • TransactionOption diatur ke Diperlukan pada paket A dan C

  • TransactionOption diatur ke Didukung pada paket B dan D, dan pada tugas Jalankan Paket B, Jalankan Paket D, dan Jalankan Paket F.

  • TransactionOption diatur ke NotSupported pada paket E, dan pada tugas Jalankan Paket C dan Jalankan Paket E.

Alur transaksi yang diwariskan

Hanya paket B, D, dan F yang dapat mewarisi transaksi dari paket induknya.

Paket B dan D mewarisi transaksi yang dimulai oleh paket A.

Paket F mewarisi transaksi yang dimulai oleh paket C.

Paket A dan C mengontrol transaksi mereka sendiri.

Paket E tidak menggunakan transaksi.

Sumber Daya Eksternal

Lihat Juga

Transaksi yang Diwariskan
Beberapa Transaksi