Dalam pemrograman, transaksi sering digunakan. Yang disebut transaksi adalah serangkaian operasi yang semuanya harus berhasil. Selama satu operasi gagal, semua langkah lainnya juga harus dibatalkan. Misalnya, menggunakan ASP untuk mengembangkan sistem hard disk jaringan, bagian registrasi pengguna perlu melakukan hal berikut:
mencatat informasi pengguna ke dalam database, membuka folder bagi pengguna untuk menyimpan log operasi pengguna inisialisasi,
ketiga langkah ini harus digunakan transaksi, sebaliknya dalam kasus operasi disk Kegagalan tanpa membatalkan operasi database akan mengakibatkan fenomena "pengguna mati" yang hanya bisa login tetapi tidak dapat beroperasi.
Karena sejarah perkembangan khusus sistem basis data, segala sesuatu mulai dari Access hingga DB2 memiliki dukungan transaksi. Oleh karena itu, langkah-langkah di atas dapat diungkapkan sebagai berikut:
On Error Resume Next
Step 1:
Catat informasi pengguna ke dalam database di lingkungan transaksi
If Err Then
Tutup koneksi dan exitElse
Langkah 2: Buat folder Jika Err Lalu
Kembalikan operasi database pertama dan keluar dari Else
Langkah 3: Operasikan database log dalam lingkungan transaksiJika Err Then
Kembalikan langkah pertama, hapus folder yang dibuat pada langkah kedua dan keluar dari End If
Akhiri Jika
Akhiri Jika
Kirimkan transaksi operasi database pertama. Kirimkan transaksi operasi database kedua.
Akhir
perlu dinilai pada setiap langkah. Jika gagal, Anda perlu mengembalikan langkah sebelumnya secara manual, membuat program menjadi rumit dan sulit dipahami. Jika program diperbarui di masa depan dan langkah-langkah lain ditambahkan, lebih banyak lapisan If...Else...End If perlu disarangkan, membuat alur program menjadi lebih rumit.
Solusi yang tepat adalah dengan menggunakan fungsi kontrol transaksi ASP. Dengan menghubungi layanan MTS, IIS dapat mengontrol berbagai sistem yang mendukung transaksi. Ketika program mengirimkan sinyal "kegagalan", semua sistem yang mendukung transaksi akan secara otomatis melakukan rollback, meskipun operasi yang belum selesai secara resmi; transaksi dukungan juga akan dibatalkan. Menyediakan metode rollback manual yang nyaman. Contoh di atas ditulis ulang menggunakan fungsi kontrol transaksi ASP sebagai berikut:
<%@ TRANSACTION = Wajib %>
Pada Kesalahan Lanjutkan
Set Berikutnya Conn=Server.CreateObject("ADODB.Connection")
Sambung.Buka....
Sambung.Jalankan "INSERT...."
Sambungan Tutup
Setel Conn=Tidak Ada
Set Conn2=Server.CreateObject("ADODB.Connection")
Sambungan2.Buka....
Sambung2.Jalankan "MASUKKAN...."
Sambungan2.Tutup
Setel Conn2=Tidak Ada
Set FSO=Server.CreateObject("Scripting.FilesystemObject")
FSO.CreateFolder "...."
Jika Err Lalu
ObjectContext.SetAbort 'Beri tahu semua komponen yang mendukung transaksi untuk melakukan rollback dan menjalankan kode rollback manual
Kalau tidak
ObjectContext.SetLengkap
Akhiri Jika
Setel FSO=Tidak Ada
Sub PadaTransactionAbort
Respon.Tulis "Error"
FSO.DeleteFile Server.Mappath("a.txt") 'Kembalikan manual FSO - hapus folder
Akhiri Sub
SubOnTransactionCommit
Response.Tulis "Selesaikan tugas dengan sukses"
Akhiri Sub
%>
<%@ TRANSACTION = Wajib %> di baris pertama menunjukkan bahwa file ASP pada halaman ini memerlukan dukungan transaksi MTS. Semua operasi di tengah ditulis dalam urutan normal tanpa mempertimbangkan masalah rollback. Tentukan apakah ada kesalahan di akhir program. Jika demikian, panggil metode SetAbort ObjectContext. IIS akan memberi tahu semua komponen yang mendukung transaksi melalui layanan MTS untuk melakukan roll back (terutama database), dan menjalankan Sub OnTransactionAbort untuk memutar kembali operasi yang tidak mendukung transaksi secara manual, jika tidak ada kesalahan yang terjadi, panggil metode SetComplete ObjectContext, Sub OnTransactionCommit akan dijalankan untuk menampilkan pesan sukses.
Seluruh program ASP tidak perlu menulis kode berlebihan untuk penilaian kesalahan dan operasi rollback. Program ini hanya perlu dinilai di akhir. Bahkan jika operasi multi-langkah ditambahkan di masa mendatang, operasi tersebut hanya perlu dikontrol di Sub OnTransactionAbort. Ini sangat nyaman dan pemrogram dapat Fokus pada penulisan prosedural daripada menulis kode koreksi kesalahan.
Sebenarnya ASP juga menyediakan lebih banyak fungsi yang berguna, menunggu kita untuk menggunakannya. Jangan dikira karena ASP menggunakan bahasa scripting, fungsinya pasti lemah.