Bagikan melalui


Pesan Sistem Broker

Berlaku untuk: SQL Server Azure SQL Managed Instance

Service Broker menggunakan tiga jenis pesan sistem untuk mengomunikasikan status dan informasi kesalahan dari Service Broker.

Menangani Pesan Sistem

Sebagian besar pesan dalam percakapan Service Broker adalah pesan yang ditentukan aplikasi yang digunakan untuk berkomunikasi antar layanan. Setiap pesan harus mematuhi format jenis pesan yang ditentukan oleh pernyataan CREATE MESSAGE TYPE. Kumpulan jenis pesan yang diizinkan untuk percakapan ditentukan oleh kontrak yang ditentukan dalam pernyataan BEGIN DIALOG CONVERSATION.

Selain jenis pesan yang ditentukan aplikasi yang ditentukan dalam kontrak, percakapan apa pun juga dapat menerima pesan yang menggunakan salah satu dari tiga jenis pesan yang ditentukan sistem. Jenis pesan ini digunakan oleh Service Broker untuk melaporkan kesalahan dan status dialog. Setiap aplikasi harus berisi logika untuk menangani pesan Kesalahan dan pesan Dialog Akhir. Jika aplikasi mengatur timer percakapan pada percakapan dialog, aplikasi harus berisi logika untuk menangani pesan Pengatur Waktu Dialog. Service Broker menyediakan jenis pesan ini untuk setiap layanan, apakah mereka muncul dalam kontrak untuk layanan atau tidak. Untuk informasi selengkapnya, lihat Menangani Pesan Kesalahan Broker Layanan.

Pesan kesalahan

Ketika layanan jarak jauh mengakhiri dialog dengan kesalahan atau broker lokal mendeteksi kesalahan yang tidak dapat dipulihkan dalam dialog, broker lokal membuat Pesan Kesalahan. Pesan kesalahan berjenis https://schemas.microsoft.com/SQL/ServiceBroker/Errorpesan . Pesan kesalahan divalidasi sebagai XML yang terbentuk dengan baik.

Dokumen XML yang terkandung dalam pesan kesalahan menggunakan namespace https://schemas.microsoft.com/SQL/ServiceBrokerlayanan . Elemen akar dokumen memiliki nama lokal Kesalahan, dan berisi elemen bernama Code dan elemen bernama Message. Elemen Kode menyimpan nilai bilangan bulat. Elemen Pesan menyimpan teks pesan yang dapat dibaca manusia.

Misalnya, pesan kesalahan yang dihasilkan oleh layanan yang memproses laporan pengeluaran mungkin berisi XML berikut (diformat ulang untuk keterbacaan):

<?xml version="1.0"?>
<Error xmlns="http://schemas.microsoft.com/SQL/ServiceBroker">
  <Code>12</Code>
  <Description>
    Unknown cost center "127-1000". Please check the cost center list
    and resubmit the report.
  </Description>
</Error>

Operasi penerima menerima pesan kesalahan sebelum pesan apa pun untuk dialog tersebut selain pesan timer dialog. Ini terjadi terlepas dari urutan di mana pesan kesalahan tiba pada antrean. Saat antrean memiliki pesan timer dialog dan pesan kesalahan, operasi penerima menerima pesan pengawas dialog sebelum pesan kesalahan.

Ketika pesan kesalahan tiba untuk dialog, broker menimbulkan kesalahan jika aplikasi mencoba mengirim pesan pada dialog tersebut. Namun, aplikasi dapat menerima pesan yang tersisa untuk dialog, bahkan setelah menerima pesan kesalahan.

Akhiri Pesan Dialog

Ketika aplikasi mengakhiri dialog tanpa menentukan kesalahan, broker lokal mengirim pesan Dialog Akhir ke broker jarak jauh. Pesan Dialog Akhir berjenis https://schemas.microsoft.com/SQL/ServiceBroker/EndDialogpesan .

Pesan Dialog Akhir adalah pesan kosong. Operasi terima menerima pesan Dialog Akhir dalam urutan pesan tiba pada antrean.

Pesan Pengawas Dialog

Pesan timer dialog menunjukkan bahwa timer percakapan pada dialog telah kedaluwarsa. Pesan-pesan ini berjenis https://schemas.microsoft.com/SQL/ServiceBroker/DialogTimerpesan . Timer percakapan khusus untuk satu sisi percakapan; Service Broker tidak pernah mengirim pesan pengarah waktu dialog ke sisi lain percakapan.

Pesan pengawak waktu dialog adalah pesan kosong. Operasi penerima menerima pesan pengawas dialog sebelum pesan lain untuk dialog tersebut, terlepas dari urutan saat pesan waktu habis tiba pada antrean.

Lihat juga