Bagikan melalui


Utilitas ssbdiagnose (Service Broker)

Berlaku untuk: SQL Server Azure SQL Managed Instance

Utilitas ssbdiagnose melaporkan masalah dalam percakapan Service Broker atau konfigurasi layanan Service Broker. Pemeriksaan konfigurasi dapat dilakukan untuk dua layanan atau satu layanan. Masalah dilaporkan baik di jendela prompt perintah sebagai teks yang dapat dibaca manusia, atau sebagai XML berformat yang dapat dialihkan ke file atau program lain.

Sintaks

  
ssbdiagnose   
[ [ -XML ]  
    [ -LEVEL { ERROR | WARNING | INFO } ]  
  [-IGNORE error_id ] [ ...n]  
    [ <baseconnectionoptions> ]  
  { <configurationreport> | <runtimereport> }  
]  
| -?  
  
<configurationreport> ::=  
    CONFIGURATION  
  { [ FROM SERVICE service_name  
      [ <fromconnectionoptions> ]  
      [ MIRROR <mirrorconnectionoptions> ]  
    ]  
    [ TO SERVICE service_name[, broker_id ]  
      [ <toconnectionoptions> ]  
      [ MIRROR <mirrorconnectionoptions> ]  
    ]  
  }  
    ON CONTRACT contract_name  
  [ ENCRYPTION { ON | OFF | ANONYMOUS } ]  
  
<runtime_report> ::=  
    RUNTIME  
    [-SHOWEVENTS ]  
        [ -NEW  
         [ -ID { conversation_handle  
                | conversation_group_id  
                 | conversation_id  
                  }  
        ] [ ...n]  
        ]  
    [ -TIMEOUT timeout_interval ]  
    [ <runtimeconnectionoptions> ]  
  
<baseconnectionoptions> ::=  
  <connectionoptions>  
  
<fromconnectionoptions> ::=  
  <connectionoptions>  
  
<toconnectionoptions> ::=  
  <connectionoptions>  
  
<mirrorconnectionoptions> ::=  
  <connectionoptions>  
  
<runtimeconnectionoptions> ::=  
  [ CONNECT TO <connectionoptions> ] [ ...n]  
  
<connectionoptions> ::=  
    [ -E | { -U login_id [ -P password ] } ]  
  [ -S server_name[\instance_name] ]  
  [ -d database_name ]  
  [ -l login_timeout ]  
  

Opsi Baris Perintah

-XML
Menentukan bahwa output ssbdiagnose dihasilkan sebagai XML yang diformat. Ini dapat dialihkan ke file atau ke aplikasi lain. Jika -XML tidak ditentukan, output ssbdiagnose diformat sebagai teks yang dapat dibaca manusia.

-LEVEL { ERROR | WARNING | INFO}
Menentukan tingkat pesan yang akan dilaporkan.

KESALAHAN: melaporkan hanya pesan kesalahan.

PERINGATAN: melaporkan kesalahan dan pesan peringatan.

INFO: melaporkan pesan kesalahan, peringatan, dan informasi.

Pengaturan defaultnya adalah PERINGATAN.

-IGNOREerror_id
Menentukan bahwa kesalahan atau pesan yang memiliki error_id yang ditentukan tidak disertakan dalam laporan. Anda dapat menentukan -IGNORE beberapa kali untuk menekan beberapa ID pesan.

<baseconnectionoptions>
Menentukan informasi koneksi dasar yang digunakan oleh ssbdiagnose saat opsi koneksi tidak disertakan dalam klausa tertentu. Informasi koneksi yang diberikan dalam klausul tertentu mengambil alih informasi baseconnectionoption . Ini dilakukan secara terpisah untuk setiap parameter. Misalnya, jika -S dan -d ditentukan dalam baseconnetionoptions, dan hanya -d yang ditentukan dalam toconnetionoptions, ssbdiagnose menggunakan -S dari baseconnetionoptions dan -d dari toconnetionoptions.

KONFIGURASI
Meminta laporan kesalahan konfigurasi antara sepasang layanan Service Broker, atau untuk satu layanan.

DARIservice_name LAYANAN
Menentukan layanan yang memulai percakapan.

<fromconnectionoptions>
Menentukan informasi yang diperlukan untuk menyambungkan ke database yang menyimpan layanan inisiator. Jika fromconnectionoptions tidak ditentukan, ssbdiagnose menggunakan informasi koneksi dari baseconnectionoptions untuk menyambungkan ke database inisiator. Jika fromconnectionoptions ditentukan, itu harus menyertakan database yang berisi layanan inisiator. Jika fromconnectionoptions tidak ditentukan, baseconnectionoptions harus menentukan database inisiator.

TO SERVICEservice_name[, broker_id ]
Menentukan layanan yang merupakan target untuk percakapan.

service_name: menentukan nama layanan target.

broker_id: menentukan ID Service Broker yang mengidentifikasi database target. broker_id adalah GUID. Anda bisa menjalankan kueri berikut ini di database target untuk menemukannya:

SELECT service_broker_guid  
FROM sys.databases  
WHERE database_id = DB_ID();  

<toconnectionoptions>
Menentukan informasi yang diperlukan untuk menyambungkan database yang menyimpan layanan target. Jika toconnectionoptions tidak ditentukan, ssbdiagnose menggunakan informasi koneksi dari baseconnectionoptions untuk menyambungkan ke database target.

CERMIN
Menentukan bahwa layanan Service Broker terkait dihosting dalam database cermin. ssbdiagnose memverifikasi bahwa rute ke layanan adalah rute cermin, di mana MIRROR_ADDRESS ditentukan pada CREATE ROUTE.

<mirrorconnectionoptions>
Menentukan informasi yang diperlukan untuk menyambungkan ke database cermin. Jika mirrorconnectionoptions tidak ditentukan, ssbdiagnose menggunakan informasi koneksi dari baseconnectionoptions untuk menyambungkan ke database cermin.

CONTRACT_NAME KONTRAK
Permintaan yang ssbdiagnose hanya memeriksa konfigurasi yang menggunakan kontrak yang ditentukan. Jika KONTRAK ON tidak ditentukan, ssbdiagnose melaporkan kontrak bernama DEFAULT.

ENKRIPSI { AKTIF | SECARA | ANONIM }
Meminta verifikasi bahwa dialog dikonfigurasi dengan benar untuk tingkat enkripsi yang ditentukan:

AKTIF: Pengaturan default. Keamanan dialog penuh dikonfigurasi. Sertifikat telah disebarkan di kedua sisi dialog, pengikatan layanan jarak jauh ada, dan pernyataan GRANT SEND untuk layanan target yang ditentukan pengguna inisiator.

NONAKTIF: Tidak ada keamanan dialog yang dikonfigurasi. Tidak ada sertifikat yang disebarkan, tidak ada pengikatan layanan jarak jauh yang dibuat, dan GRANT SEND untuk layanan inisiator menentukan peran publik .

ANONIM: Keamanan dialog anonim dikonfigurasi. Satu sertifikat telah disebarkan, pengikatan layanan jarak jauh menentukan klausa anonim, dan GRANT SEND untuk layanan target yang menentukan peran publik .

RUNTIME
Meminta laporan masalah yang menyebabkan kesalahan runtime untuk percakapan Service Broker. Jika tidak ada -NEW atau -ID yang ditentukan, ssbdiagnose memantau semua percakapan di semua database yang ditentukan dalam opsi koneksi. Jika -NEW atau -ID ditentukan, ssbdiagnose menyusun daftar ID yang ditentukan dalam parameter.

Saat ssbdiagnose berjalan, ssbdiagnose merekam semua peristiwa SQL Server Profiler yang menunjukkan kesalahan runtime. Ini mencatat peristiwa yang terjadi untuk ID yang ditentukan, ditambah peristiwa tingkat sistem. Jika terjadi kesalahan runtime, ssbdiagnose menjalankan laporan konfigurasi pada konfigurasi terkait.

Secara default, kesalahan runtime tidak disertakan dalam laporan output, hanya hasil analisis konfigurasi. Gunakan -SHOWEVENTS untuk memiliki kesalahan runtime yang disertakan dalam laporan.

-SHOWEVENTS
Menentukan bahwa laporan ssbdiagnose SQL Server Profiler peristiwa selama laporan RUNTIME. Hanya peristiwa yang dianggap sebagai kondisi kesalahan yang dilaporkan. Secara default, ssbdiagnose hanya memantau peristiwa kesalahan; ini tidak melaporkannya dalam output.

-BARU
Meminta pemantauan runtime percakapan pertama yang dimulai setelah ssbdiagnose mulai berjalan.

-ID
Meminta pemantauan runtime dari elemen percakapan yang ditentukan. Anda dapat menentukan -ID beberapa kali.

Jika Anda menentukan handel percakapan, hanya peristiwa yang terkait dengan titik akhir percakapan terkait yang dilaporkan. Jika Anda menentukan ID percakapan, semua peristiwa untuk percakapan tersebut serta inisiator dan titik akhir targetnya akan dilaporkan. Jika ID grup percakapan ditentukan, semua peristiwa untuk semua percakapan dan titik akhir dalam grup percakapan akan dilaporkan.

conversation_handle
Pengidentifikasi unik yang mengidentifikasi titik akhir percakapan dalam aplikasi. Handel percakapan unik untuk satu titik akhir percakapan, inisiator dan titik akhir target memiliki handel percakapan terpisah.

Handel percakapan dikembalikan ke aplikasi dengan parameter @dialog_handle pernyataan BEGIN DIALOG , dan kolom conversation_handle dalam kumpulan hasil pernyataan RECEIVE .

Handel percakapan dilaporkan di kolom conversation_handle tampilan katalog sys.transmission_queue dan sys.conversation_endpoints .

conversation_group_id
Pengidentifikasi unik yang mengidentifikasi grup percakapan.

ID grup percakapan dikembalikan ke aplikasi dengan parameter @conversation_group_id pernyataan GET CONVERSATION GROUP dan kolom conversation_group_id dalam kumpulan hasil pernyataan RECEIVE .

ID grup percakapan dilaporkan dalam kolom conversation_group_id tampilan katalog sys.conversation_groups dan sys.conversation_endpoints .

conversation_id
Pengidentifikasi unik yang mengidentifikasi percakapan. ID percakapan sama untuk inisiator dan titik akhir target percakapan.

ID Percakapan dilaporkan di kolom conversation_id tampilan katalog sys.conversation_endpoints .

-TIMEOUTtimeout_interval
Menentukan jumlah detik agar laporan RUNTIME berjalan. Jika -TIMEOUT tidak ditentukan, laporan runtime berjalan tanpa batas waktu. -TIMEOUT hanya digunakan pada laporan RUNTIME , bukan laporan CONFIGURATION . Gunakan ctrl + C untuk keluar dari ssbdiagnose jika -TIMEOUT tidak ditentukan atau untuk mengakhiri laporan runtime sebelum interval waktu-habis berakhir. timeout_interval harus berupa angka antara 1 dan 2.147.483.647.

<runtimeconnectionoptions>
Menentukan informasi koneksi untuk database yang berisi layanan yang terkait dengan elemen percakapan yang sedang dipantau. Jika semua layanan berada dalam database yang sama, Anda hanya perlu menentukan satu klausa CONNECT TO . Jika layanan berada dalam database terpisah, Anda harus menyediakan klausa CONNECT TO untuk setiap database. Jika runtimeconnectionoptions tidak ditentukan, ssbdiagnose menggunakan informasi koneksi dari baseconnectionoptions.

-E
Buka koneksi Autentikasi Windows ke instans Mesin Database dengan menggunakan akun Windows Anda saat ini sebagai ID masuk. Login harus menjadi anggota peran server tetap sysadmin .

Opsi -E mengabaikan pengaturan pengguna dan kata sandi variabel lingkungan SQLCMDUSER dan SQLCMDPASSWORD.

Jika -E atau -U tidak ditentukan, ssbdiagnose menggunakan nilai dari variabel lingkungan SQLCMDUSER. Jika SQLCMDUSER tidak diatur, ssbdiagnose menggunakan Autentikasi Windows.

Jika opsi -E digunakan bersama dengan opsi -U atau opsi -P , pesan kesalahan dihasilkan.

-Ulogin_id
Buka koneksi Autentikasi SQL Server dengan menggunakan ID masuk yang ditentukan. Login harus menjadi anggota peran server tetap sysadmin .

Jika -E atau -U tidak ditentukan, ssbdiagnose menggunakan nilai dari variabel lingkungan SQLCMDUSER. Jika SQLCMDUSER tidak diatur, ssbdiagnose mencoba menyambungkan dengan menggunakan mode Autentikasi Windows berdasarkan akun Windows pengguna yang menjalankan ssbdiagnose.

Jika opsi -U digunakan bersama dengan opsi -E , pesan kesalahan akan dihasilkan. Jika opsi -U diikuti oleh lebih dari satu argumen, pesan kesalahan dihasilkan dan program keluar.

Kata sandi-P
Menentukan kata sandi untuk ID masuk -U . Kata sandi sensitif huruf besar/kecil. Jika opsi -U digunakan dan opsi -P tidak digunakan, ssbdiagnose menggunakan nilai dari variabel lingkungan SQLCMDPASSWORD. Jika SQLCMDPASSWORD tidak diatur juga, ssbdiagnose meminta kata sandi kepada pengguna.

Penting

Saat Anda mengetik perintah SET SQLCMDPASSWORD, kata sandi Anda akan terlihat oleh siapa saja yang dapat melihat monitor Anda.

Jika opsi -P ditentukan tanpa kata sandi ssbdiagnose menggunakan kata sandi default (NULL).

Penting

Jangan gunakan kata sandi kosong. Gunakan kata sandi yang kuat. Untuk mengetahui informasi selengkapnya, lihat Kata Sandi Yang Kuat.

Perintah kata sandi ditampilkan dengan mencetak permintaan kata sandi ke konsol, sebagai berikut: Password:

Input pengguna disembunyikan. Ini berarti bahwa tidak ada yang ditampilkan dan kursor tetap berada di posisi.

Jika opsi -P digunakan dengan opsi -E , pesan kesalahan akan dihasilkan.

Jika opsi -P diikuti oleh lebih dari satu argumen, pesan kesalahan akan dihasilkan.

-Sserver_name[\instance_name]
Menentukan instans Mesin Database yang menyimpan layanan Service Broker yang akan dianalisis.

Tentukan server_name untuk menyambungkan ke instans default Mesin Database di server tersebut. Tentukan server_name\instance_name untuk menyambungkan ke instans bernama Mesin Database di server tersebut. Jika -S tidak ditentukan, ssbdiagnose menggunakan nilai variabel lingkungan SQLCMDSERVER. Jika SQLCMDSERVER tidak diatur, ssbdiagnose tersambung ke instans default Mesin Database di komputer lokal.

-ddatabase_name
Menentukan database yang menyimpan layanan Service Broker yang akan dianalisis. Jika database tidak ada, pesan kesalahan akan dihasilkan. Jika -d tidak ditentukan, defaultnya adalah database yang ditentukan dalam properti default-database untuk login Anda.

- Akulogin_timeout
Menentukan jumlah detik sebelum upaya untuk menyambungkan ke server kehabisan waktu. Jika -l tidak ditentukan, ssbdiagnose menggunakan nilai yang ditetapkan untuk variabel lingkungan SQLCMDLOGINTIMEOUT. Jika SQLCMDLOGINTIMEOUT tidak diatur, waktu habis default adalah tiga puluh detik. Batas waktu masuk harus berupa angka antara 0 dan 65534. Jika nilai yang disediakan tidak numerik atau tidak termasuk dalam rentang tersebut, ssbdiagnose menghasilkan pesan kesalahan. Nilai 0 menentukan waktu habis menjadi tak terbatas.

-?
Menampilkan bantuan baris perintah.

Keterangan

Gunakan ssbdiagnose untuk melakukan hal berikut:

  • Konfirmasikan bahwa tidak ada kesalahan konfigurasi dalam aplikasi Service Broker yang baru dikonfigurasi.

  • Konfirmasikan bahwa tidak ada kesalahan konfigurasi setelah mengubah konfigurasi aplikasi Service Broker yang ada.

  • Konfirmasikan bahwa tidak ada kesalahan konfigurasi setelah database Service Broker dilepas dan kemudian dipasang kembali ke instans baru Mesin Database.

  • Teliti apakah ada kesalahan konfigurasi ketika pesan tidak berhasil ditransmisikan antar layanan.

  • Dapatkan laporan kesalahan apa pun yang terjadi dalam sekumpulan elemen percakapan Service Broker.

Pelaporan Konfigurasi

Untuk menganalisis konfigurasi yang digunakan oleh percakapan dengan benar, jalankan laporan konfigurasi ssbdiagnose yang menggunakan opsi yang sama yang digunakan oleh percakapan. Jika Anda menentukan tingkat opsi yang lebih rendah untuk ssbdiagnose daripada yang digunakan oleh percakapan, ssbdiagnose mungkin tidak melaporkan kondisi yang diperlukan oleh percakapan. Jika Anda menentukan tingkat opsi yang lebih tinggi untuk ssbdiagnose, mungkin melaporkan item yang tidak diperlukan oleh percakapan. Misalnya, percakapan antara dua layanan dalam database yang sama dapat dijalankan dengan ENKRIPSI NONAKTIF. Jika Anda menjalankan ssbdiagnose untuk memvalidasi konfigurasi antara kedua layanan, tetapi menggunakan pengaturan ENCRYPTION ON default, ssbdiagnose melaporkan bahwa database kehilangan kunci master. Kunci master tidak diperlukan untuk percakapan.

Laporan konfigurasi ssbdiagnose hanya menganalisis satu layanan Service Broker atau satu pasang layanan setiap kali dijalankan. Untuk melaporkan beberapa pasang layanan Service Broker, buat file perintah .cmd yang memanggil ssbdiagnose beberapa kali.

Pelaporan Runtime

Ketika -RUNTIME ditentukan, ssbdiagnose mencari semua database yang ditentukan dalam runtimeconnectionoptions dan baseconnectionoptions untuk membangun daftar ID Service Broker. Daftar lengkap ID yang dibuat tergantung pada apa yang ditentukan untuk -NEW dan -ID:

  • Jika tidak ada -BARU atau -ID yang ditentukan, daftar menyertakan semua percakapan untuk semua database yang ditentukan dalam opsi koneksi.

  • Jika -NEW ditentukan, ssbdiagnose menyertakan elemen untuk percakapan pertama yang dimulai setelah ssbdiagnose dijalankan. Ini termasuk ID percakapan dan handel percakapan untuk titik akhir percakapan target dan inisiator.

  • Jika -ID ditentukan dengan handel percakapan, hanya handel tersebut yang disertakan dalam daftar.

  • Jika -ID ditentukan dengan ID percakapan, ID percakapan dan handel untuk kedua titik akhir percakapannya ditambahkan ke daftar.

  • Jika -ID ditentukan dengan ID grup percakapan, semua ID percakapan dan handel percakapan dalam grup tersebut ditambahkan ke daftar.

Daftar tidak menyertakan elemen dari database yang tidak tercakup oleh opsi koneksi. Misalnya, asumsikan bahwa Anda menggunakan -ID untuk menentukan ID percakapan, tetapi hanya memberikan klausa runtimeconnectionoptions untuk database inisiator dan bukan database target. ssbdiagnose tidak akan menyertakan handel percakapan target dalam daftar ID-nya, hanya ID percakapan dan handel percakapan inisiator.

ssbdiagnose memantau peristiwa SQL Server Profiler dari database yang dicakup oleh runtimeconnectionoptions dan baseconnectionoptions. Ini mencari peristiwa Service Broker yang menunjukkan kesalahan ditemui oleh satu atau beberapa ID Service Broker dalam daftar runtime. ssbdiagnose juga mencari peristiwa kesalahan Service Broker tingkat sistem yang tidak secara khusus terkait dengan grup percakapan apa pun.

Jika ssbdiagnose menemukan kesalahan percakapan, utilitas akan mencoba melaporkan akar penyebab peristiwa dengan juga menjalankan laporan konfigurasi. ssbdiagnose menggunakan metadata dalam database untuk mencoba menentukan instans, ID Service Broker, database, layanan, dan kontrak yang digunakan oleh percakapan. Kemudian menjalankan laporan konfigurasi menggunakan semua informasi yang tersedia.

Secara default, ssbdiagnose tidak melaporkan peristiwa kesalahan. Ini hanya melaporkan masalah yang mendasar yang ditemukan selama pemeriksaan konfigurasi. Ini meminimalkan jumlah informasi yang dilaporkan dan membantu Anda fokus pada masalah konfigurasi yang mendasar. Anda dapat menentukan -SHOWEVENTS untuk melihat peristiwa kesalahan yang ditemui oleh ssbdiagnose.

Masalah yang Dilaporkan oleh ssbdiagnose

ssbdiagnose melaporkan tiga kelas masalah. Dalam file output XML, setiap kelas masalah dilaporkan sebagai jenis terpisah dari elemen Masalah. Tiga jenis masalah yang dilaporkan oleh ssbdiagnose adalah sebagai berikut:

Diagnosis
Melaporkan masalah konfigurasi. Ini termasuk masalah yang ditemukan baik laporan KONFIGURASI sedang berjalan, atau selama fase konfigurasi laporan RUNTIME . ssbdiagnose melaporkan setiap masalah konfigurasi satu kali.

Kejadian
Melaporkan peristiwa SQL Server Profiler yang menunjukkan masalah yang ditemui oleh percakapan yang dipantau selama laporan RUNTIME. ssbdiagnose melaporkan peristiwa setiap kali dihasilkan. Peristiwa dapat dilaporkan beberapa kali jika beberapa percakapan mengalami masalah.

Masalah
Melaporkan masalah yang mencegah ssbdiagnose menyelesaikan analisis konfigurasi atau memantau percakapan.

Variabel Lingkungan sqlcmd

Utilitas ssbdiagnose mendukung variabel lingkungan SQLCMDSERVER, SQLCMDUSER, SQLCMDPASSWORD, dan SQLCMDLOGINTIMOUT yang juga digunakan oleh utilitas sqlcmd . Anda dapat mengatur variabel lingkungan baik dengan menggunakan perintah set perintah, atau dengan menggunakan perintah setvar dalam skrip Transact-SQL yang Anda jalankan dengan menggunakan sqlcmd. Untuk informasi selengkapnya tentang cara menggunakan setvar di sqlcmd, lihat Menggunakan sqlcmd dengan Variabel Pembuatan Skrip.

Izin

Dalam setiap klausa connectionoptions , login yang ditentukan dengan -E atau -U harus menjadi anggota peran server tetap sysadmin dalam instans yang ditentukan dalam -S.

Contoh

Bagian ini berisi contoh penggunaan ssbdiagnose pada prompt perintah.

J. Memeriksa Konfigurasi Dua Layanan di Database yang Sama

Contoh berikut menunjukkan cara meminta laporan konfigurasi saat berikut ini benar;

  • Inisiator dan layanan target berada dalam database yang sama.

  • Database berada dalam instans default Mesin Database.

  • Instans berada di komputer yang sama tempat ssbdiagnose dijalankan.

Utilitas ssbdiagnose melaporkan konfigurasi yang menggunakan kontrak DEFAULT karena ON CONTRACT tidak ditentukan.

ssbdiagnose -E -d MyDatabase CONFIGURATION FROM SERVICE /test/initiator TO SERVICE /test/target  

B. Memeriksa Konfigurasi Dua Layanan di Komputer Terpisah yang Menggunakan Satu Login

Contoh berikut menunjukkan cara meminta laporan konfigurasi ketika inisiator dan layanan target berada di komputer terpisah, tetapi dapat diakses dengan menggunakan login Autentikasi Windows yang sama.

ssbdiagnose -E CONFIGURATION FROM SERVICE /text/initiator -S InitiatorComputer -d InitiatorDatabase TO SERVICE /test/target -S TargetComputer -d TargetDatabase ON CONTRACT TestContract  

C. Memeriksa Konfigurasi Dua Layanan di Komputer Terpisah yang Menggunakan Login Terpisah

Contoh berikut menunjukkan cara meminta laporan konfigurasi ketika inisiator dan layanan target berada di komputer terpisah, dan login Autentikasi SQL Server terpisah diperlukan untuk setiap instans Mesin Database.

ssbdiagnose CONFIGURATION FROM SERVICE /text/initiator   
-S InitiatorComputer -U InitiatorLogin -p !wEx23Dvb   
-d InitiatorDatabase TO SERVICE /test/target -S TargetComputer   
-U TargetLogin -p ER!49jiy -d TargetDatabase ON CONTRACT TestContract  

D. Memeriksa Konfigurasi Layanan Cermin di Komputer Terpisah Dengan Enkripsi Anonim

Contoh berikut menunjukkan cara meminta laporan konfigurasi ketika inisiator dan layanan target berada di komputer terpisah dan inisiator dicerminkan ke instans bernama. Laporan ini juga memverifikasi bahwa layanan dikonfigurasi untuk menggunakan enkripsi anonim.

ssbdiagnose -E CONFIGURATION FROM SERVICE /text/initiator   
-S InitiatorComputer -d InitiatorDatabase MIRROR   
-S MirrorComputer/MirrorInstance TO SERVICE /test/target   
-S TargetComputer -d TargetDatabase ON CONTRACT TestContract ENCRYPTION ANONYMOUS  

E. Memeriksa Konfigurasi Dua Kontrak

Contoh berikut menunjukkan cara membuat file perintah yang meminta laporan konfigurasi saat berikut ini benar:

  • Inisiator dan layanan target berada dalam database yang sama.

  • Database berada dalam instans default Mesin Database.

  • Instans berada di komputer yang sama tempat ssbdiagnose dijalankan.

Setiap kali ssbdiagnose dijalankan, ssbdiagnose melaporkan konfigurasi untuk kontrak yang berbeda antara layanan yang sama.

ssbdiagnose -E -d MyDatabase CONFIGURATION FROM SERVICE   
/test/initiator TO SERVICE /test/target ON CONTRACT PayRaiseContract  
ssbdiagnose -E -d MyDatabase CONFIGURATION FROM SERVICE /test/initiator   
TO SERVICE /test/target ON CONTRACT PromotionContract  

F. Memantau status percakapan tertentu di komputer lokal dengan waktu habis

Contoh berikut menunjukkan cara memantau percakapan tertentu di mana layanan inisiator dan target berada dalam database yang sama dalam instans default komputer yang sama yang menjalankan ssbdiagnose. Interval waktu habis diatur ke 20 detik.

ssbdiagnose -E -d TestDatabase RUNTIME -ID D68D77A9-B1CF-41BF-A5CE-279ABCAB140D -TIMEOUT 20  

G. Memantau status percakapan yang mencakup dua komputer

Contoh berikut menunjukkan cara memantau percakapan tertentu di mana layanan inisiator dan target berada di komputer terpisah.

ssbdiagnose RUNTIME -ID D68D77A9-B1CF-41BF-A5CE-279ABCAB140D   
-TIMEOUT 10 CONNECT TO -E -S InitiatorComputer/InitiatorInstance   
-d InitiatorDatabase CONNECT TO -E -S TargetComputer/TargetInstance   
-d TargetDatabase  

H. Memantau status percakapan dalam dua database dalam instans yang sama

Contoh berikut menunjukkan cara memantau percakapan tertentu di mana inisiator dan layanan target berada dalam database terpisah dalam instans mesin database yang sama. Contoh menggunakan baseconnectionoptions untuk menentukan informasi instans dan login, dan dua klausa CONNECT TO untuk menentukan database. -SHOWEVENTS ditentukan sehingga semua peristiwa runtime disertakan dalam output laporan.

ssbdiagnose -E -S TestComputer/DevTestInstance RUNTIME -SHOWEVENTS   
-ID 5094d4a7-e38c-4c37-da37-1d58b1cb8455 -TIMEOUT 10 CONNECT TO   
-d InitiatorDatabase CONNECT TO -d TargetDatabase  

i. Memantau status dua percakapan antara dua database

Contoh berikut menunjukkan cara memantau dua percakapan di mana layanan inisiator dan target berada dalam database terpisah dalam instans mesin database yang sama. Contoh menggunakan baseconnectionoptions untuk menentukan informasi instans dan login, dan dua klausa CONNECT TO untuk menentukan database.

ssbdiagnose -E -S TestComputer/DevTestInstance RUNTIME   
-ID 5094d4a7-e38c-4c37-da37-1d58b1cb8455   
-ID 9b293be9-226b-4e22-e169-1d2c2c15be86 -TIMEOUT 10 CONNECT TO   
-d InitiatorDatabase CONNECT TO -d TargetDatabase  

j. Memantau status semua percakapan di antara dua database

Contoh berikut menunjukkan cara memantau semua percakapan antara dua database dalam instans yang sama dari Mesin Database. Contoh menggunakan baseconnectionoptions untuk menentukan informasi instans dan login, dan dua klausa CONNECT TO untuk menentukan database.

ssbdiagnose -E -S TestComputer/DevTestInstance RUNTIME   
-TIMEOUT 10 CONNECT TO -d InitiatorDatabase CONNECT TO   
-d TargetDatabase  

K. Abaikan Kesalahan Tertentu

Contoh berikut menunjukkan cara mengabaikan kesalahan yang diketahui (303 dan 304) dalam cara aktivasi saat ini dikonfigurasi dalam sistem pengujian.

ssbdiagnose -IGNORE 303 -IGNORE 304 -E -d TestDatabase   
CONFIGURATION FROM SERVICE /test/initiator TO SERVICE /test/target   
ON CONTRACT TextContract  

L. Mengalihkan Output XML ssbdiagnose

Contoh berikut menunjukkan cara meminta ssbdiagnose menghasilkan outputnya sebagai file XML yang dialihkan ke file. File TestDiag.xml kemudian dapat dibuka oleh aplikasi untuk menganalisis atau melaporkan file XML ssbdiagnose . Atau, Anda dapat melihatnya dari editor XML umum seperti XML Notepad.

ssbdiagnose -XML -E -d MyDatabase CONFIGURATION FROM SERVICE   
/test/initiator TO SERVICE /test/target > c:\MyDiagnostics\TestDiag.xml  

M. Menggunakan Variabel Lingkungan

Contoh berikut pertama-tama mengatur variabel lingkungan SQLCMDSERVER untuk menyimpan nama server, lalu menjalankan ssbdiagnose tanpa menentukan -S.

SET SQLCMDSERVER=MyComputer  
ssbdiagnose -XML -E -d MyDatabase CONFIGURATION FROM SERVICE   
/test/initiator TO SERVICE /test/target  

Lihat juga

SQL Server Service Broker
MULAI PERCAKAPAN DIALOG (Transact-SQL)
BUAT PRIORITAS BROKER (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
BUAT KONTRAK (Transact-SQL)
CREATE ENDPOINT (Transact-SQL)
CREATE MASTER KEY (Transact-SQL)
CREATE MESSAGE TYPE (Transact-SQL)
CREATE QUEUE (Transact-SQL)
MEMBUAT PENGIKATAN LAYANAN JARAK JAUH (Transact-SQL)
CREATE ROUTE (Transact-SQL)
CREATE SERVICE (Transact-SQL)
RECEIVE (Transact-SQL)
sys.transmission_queue (Transact-SQL)
sys.conversation_endpoints (Transact-SQL)
sys.conversation_groups (Transact-SQL)