Bagikan melalui


Skema Database Persistensi

Topik ini menjelaskan tampilan publik yang didukung oleh Penyimpanan Instans Alur Kerja SQL.

Tampilan instans

Tampilan Instans berisi informasi umum tentang semua Instans alur kerja di Database.

Nama kolom Jenis Kolom Deskripsi
InstanceId UniqueIdentifier ID instans alur kerja.
PendingTimer DateTime Menunjukkan bahwa alur kerja diblokir pada aktivitas Tunda dan akan dilanjutkan setelah timer habis masa berlakunya. Nilai ini bisa menjadi null jika alur kerja tidak diblokir karena menunggu timer habis masa berlakunya.
CreationTime DateTime Menunjukkan kapan alur kerja dibuat.
LastUpdatedTime DateTime Menunjukkan terakhir kali alur kerja dipertahankan ke database.
ServiceDeploymentId Bigint Bertindak sebagai kunci asing untuk tampilan [ServiceDeployments]. Jika instans alur kerja saat ini adalah instans dari layanan yang dihosting web, artinya kolom ini memiliki nilai. Jika tidak, kollom diatur ke NULL.
SuspensionExceptionName Nvarchar(450) Menunjukkan jenis pengecualian (misalnya InvalidOperationException) yang menyebabkan alur kerja ditangguhkan.
SuspensionReason Nvarchar(max) Menunjukkan alasan Instans Alur Kerja ditangguhkan. Jika pengecualian menyebabkan instans ditangguhkan, kolom ini berisi pesan yang terkait dengan pengecualian.

Jika instans ditangguhkan secara manual, kolom ini berisi alasan yang ditentukan pengguna untuk menangguhkan instans.
ActiveBookmarks Nvarchar(max) Jika Instans alur kerja tidak aktif, properti ini menunjukkan jangkar apa yang diblokir instans. Jika Instans tidak dalam status tidak aktif, kolom ini bernilai NULL.
CurrentMachine Nvarchar(128) Menunjukkan nama komputer saat ini memiliki Instans alur kerja yang dimuat dalam memori.
LastMachine Nvarchar(450) Menunjukkan komputer terakhir yang memuat instans alur kerja.
ExecutionStatus Nvarchar(450) Menunjukkan status eksekusi Alur Kerja saat ini. Status yang mungkin termasuk Mengeksekusi, Tidak aktif, Ditutup.
IsInitialized Bit Menunjukkan apakah instans alur kerja telah dinisialisasi. Instans alur kerja yang dinisialisasi adalah instans alur kerja yang telah dipertahankan setidaknya sekali.
IsSuspended Bit Menunjukkan apakah instans alur kerja telah ditangguhkan.
IsCompleted Bit Menunjukkan apakah Instans Alur Kerja telah selesai dijalankan. Catatan: Jika dan hanya jika properti InstanceCompletionAction diatur ke DeleteAll, instans akan dihapus dari tampilan setelah selesai.
EncodingOption TinyInt Menjelaskan pengodean yang digunakan untuk membuat serial properti data.

- 0 – Tanpa pengodean
- 1 – GzipStream
ReadWritePrimitiveDataProperties varbinary(max) Berisi properti data instans yang diserialisasi yang akan diberikan kembali ke Runtime bahasa umum alur kerja saat instans dimuat.

Setiap properti primitif adalah jenis CLR asli, yang berarti bahwa tidak ada rakitan khusus yang diperlukan untuk men-deserialisasi blob.
WriteOnlyPrimitiveDataProperties varbinary(max) Berisi properti data instans yang diserialisasi yang tidak disediakan kembali ke runtime bahasa umum alur kerja saat instans dimuat.

Setiap properti primitif adalah jenis CLR asli, yang berarti bahwa tidak ada rakitan khusus yang diperlukan untuk men-deserialisasi blob.
ReadWriteComplexDataProperties varbinary(max) Berisi properti data instans yang diserialisasi yang akan diberikan kembali ke runtime bahasa umum alur kerja saat instans dimuat.

Alat pendeserialisasi akan membutuhkan pengetahuan tentang semua jenis objek yang disimpan dalam blob ini.
WriteOnlyComplexDataProperties varbinary(max) Berisi properti data instans yang diserialisasi yang tidak disediakan kembali ke runtime bahasa umum alur kerja saat instans dimuat.

Alat pendeserialisasi akan membutuhkan pengetahuan tentang semua jenis objek yang disimpan dalam blob ini.
IdentityName Nvarchar(max) Nama definisi alur kerja.
IdentityPackage Nvarchar(max) Informasi paket yang diberikan saat alur kerja dibuat (seperti nama rakitan).
Bangun Bigint Nomor build versi alur kerja.
Parah Bigint Jumlah utama versi alur kerja.
Minor Bigint Jumlah minor dari versi alur kerja.
Revisi Bigint Nomor revisi versi alur kerja.

Perhatian

Tampilan Instans juga berisi pemicu Hapus. Pengguna dengan izin yang sesuai dapat mengeksekusi pernyataan hapus terhadap tampilan ini yang akan secara paksa menghapus Instans alur kerja dari Database. Sebaiknya hapus langsung dari tampilan hanya sebagai upaya terakhir karena menghapus instans dari bawah runtime bahasa umum alur kerja dapat mengakibatkan konsekuensi yang tidak diinginkan. Sebagai gantinya, gunakan Titik Akhir Manajemen Instans Alur Kerja agar runtime bahasa umum alur kerja menghentikan instans. Jika Anda ingin menghapus sejumlah besar Instans dari tampilan, pastikan tidak ada runtime bahasa umum aktif yang dapat beroperasi pada instans ini.

Tampilan ServiceDeployments

Tampilan ServiceDeployments berisi informasi penyebaran untuk semua layanan alur kerja yang dihosting Web (IIS/WAS). Setiap instans alur kerja yang dihosting Web akan berisi ServiceDeploymentId yang merujuk ke baris dalam tampilan ini.

Nama kolom Jenis Kolom Deskripsi
ServiceDeploymentId Bigint Kunci utama untuk tampilan ini.
SiteName Nvarchar(max) Menunjukkan nama situs yang berisi layanan alur kerja (misalnya Situs Web Default).
RelativeServicePath Nvarchar(max) Menunjukkan jalur virtual relatif terhadap situs yang mengarah ke layanan alur kerja. (misalnya /app1/PurchaseOrderService.svc).
RelativeApplicationPath Nvarchar(max) Menunjukkan jalur virtual relatif terhadap situs yang menunjuk ke aplikasi yang berisi layanan alur kerja. (misalnya /app1).
ServiceName Nvarchar(max) Menunjukkan nama Layanan alur kerja. (misalnya PurchaseOrderService).
ServiceNamespace Nvarchar(max) Menunjukkan ruang nama Layanan alur kerja. (misalnya MyCompany).

Tampilan ServiceDeployments juga berisi pemicu Hapus. Pengguna dengan izin yang sesuai dapat mengeksekusi pernyataan hapus terhadap tampilan ini untuk menghapus entri ServiceDeployment dari Database. Perhatikan bahwa:

  1. Menghapus entri dari tampilan ini berbiaya tinggi karena seluruh Database harus dikunci sebelum melakukan operasi ini. Hal ini diperlukan untuk menghindari skenario di mana Instans alur kerja dapat merujuk ke entri ServiceDeployment yang tidak ada. Hapus dari tampilan ini hanya selama periode tidak aktif/pemeliharaan.

  2. Setiap upaya untuk menghapus baris ServiceDeployment yang dirujuk oleh entri dalam tampilan Instans akan menghasilkan no-op. Anda hanya dapat menghapus baris ServiceDeployment tanpa referensi.

Tampilan InstancePromotedProperties

Tampilan InstancePromotedProperties berisi informasi untuk semua properti yang dipromosikan yang ditentukan oleh pengguna. Properti yang dipromosikan berfungsi sebagai properti kelas satu, yang dapat digunakan pengguna dalam kueri untuk mengambil instans. Misalnya, pengguna dapat menambahkan promosi PurchaseOrder yang selalu menyimpan biaya pesanan di kolom Value1. Hal ini akan memungkinkan pengguna untuk meminta semua pesanan pembelian yang biayanya melebihi nilai tertentu.

Jenis Kolom Jenis Kolom Deskripsi
InstanceId UniqueIdentifier ID Instans Alur Kerja
EncodingOption TinyInt Menjelaskan pengodean yang digunakan untuk membuat serial properti biner yang dipromosikan.

- 0 – Tanpa pengodean
- 1 – GZipStream
PromotionName Nvarchar(400) Nama Promosi yang terkait dengan instans ini. PromotionName diperlukan untuk menambahkan konteks ke kolom generik di baris ini.

Misalnya, PromotionName of PurchaseOrder dapat menunjukkan bahwa Value1 berisi biaya pesanan, Value2 berisi nama pelanggan yang melakukan pemesanan, Nilai 3 berisi alamat pelanggan, dan sebagainya.
Value[1-32] SqlVariant Value[1-32] berisi nilai yang dapat disimpan dalam kolom SqlVariant. Satu promosi tidak boleh berisi lebih dari 32 SqlVariant.
Value[33-64] varbinary(max) Value[33-64] berisi nilai serial. Misalnya, Value33 dapat berisi JPEG dari item yang dibeli. Promosi tunggal tidak dapat berisi lebih dari 32 properti biner

Tampilan InstancePromotedProperties terikat skema, yang berarti bahwa pengguna dapat menambahkan indeks pada satu atau beberapa kolom untuk mengoptimalkan kueri terhadap tampilan ini.

Catatan

Tampilan yang diindeks memerlukan lebih banyak penyimpanan dan menambahkan overhead pemrosesan tambahan. Lihat Meningkatkan Performa dengan Tampilan Terindeks SQL Server 2008 untuk informasi selengkapnya.