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 ]
[ -N encryption_option ]
[ -i hostname_in_certificate ]
[ -C ]
Opsi baris Perintah
-XML
Menentukan bahwa output ssbdiagnose dihasilkan sebagai XML yang diformat. Output ini dapat dialihkan ke file atau ke aplikasi lain. Jika -XML
tidak ditentukan, output ssbdiagnose diformat sebagai teks yang dapat dibaca manusia.
-LEVEL { ERROR | PERINGATAN | INFO }
Menentukan tingkat pesan yang akan dilaporkan.
Nilai | Deskripsi |
---|---|
ERROR |
Laporkan hanya pesan kesalahan. |
WARNING (default) |
Melaporkan pesan kesalahan dan peringatan. |
INFO |
Melaporkan pesan kesalahan, peringatan, dan informasi. |
-IGNORE error_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 baseconnectionoption
alih informasi. Ini dilakukan secara terpisah untuk setiap parameter. Misalnya, jika dan -S
-d
ditentukan dalam baseconnetionoptions
, dan hanya -d
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.
DARI service_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, database harus menyertakan database yang berisi layanan inisiator. Jika fromconnectionoptions
tidak ditentukan, baseconnectionoptions
harus menentukan database inisiator.
TO SERVICE service_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 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 ON CONTRACT
tidak ditentukan, ssbdiagnose melaporkan kontrak bernama DEFAULT
.
ENKRIPSI { AKTIF | NONAKTIF | ANONIM }
Meminta verifikasi bahwa dialog dikonfigurasi dengan benar untuk tingkat enkripsi yang ditentukan:
ON
: Pengaturan default. Keamanan dialog penuh dikonfigurasi. Sertifikat telah disebarkan di kedua sisi dialog, pengikatan layanan jarak jauh ada, danGRANT SEND
pernyataan untuk layanan target yang ditentukan pengguna inisiator.OFF
: Tidak ada keamanan dialog yang dikonfigurasi. Tidak ada sertifikat yang disebarkan, tidak ada pengikatan layanan jarak jauh yang dibuat, danGRANT SEND
untuk layanan inisiator yang menentukan peran publik .ANONYMOUS
: Keamanan dialog anonim dikonfigurasi. Satu sertifikat telah disebarkan, pengikatan layanan jarak jauh menentukan klausa anonim, danGRANT SEND
untuk layanan target yang menentukan peran publik .
RUNTIME
Meminta laporan masalah yang menyebabkan kesalahan runtime untuk percakapan Service Broker. Jika salah satu -NEW
atau -ID
tidak ditentukan, ssbdiagnose memantau semua percakapan di semua database yang ditentukan dalam opsi koneksi. Jika -NEW
atau -ID
ditentukan, ssbdiagnose membuat 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 menyertakan kesalahan runtime dalam laporan.
-SHOWEVENTS
Menentukan bahwa ssbdiagnose melaporkan peristiwa SQL Server Profiler selama RUNTIME
laporan. Hanya peristiwa yang dianggap sebagai kondisi kesalahan yang dilaporkan. Secara default, ssbdiagnose hanya memantau peristiwa kesalahan; ssbdiagnose tidak melaporkannya dalam output.
-NEW
: 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 dan 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 BEGIN DIALOG
@dialog_handle pernyataan, dan conversation_handle
kolom dalam kumpulan RECEIVE
hasil pernyataan.
Handel percakapan dilaporkan dalam conversation_handle
kolom sys.transmission_queue
tampilan katalog dan sys.conversation_endpoints
.
conversation_group_id
Pengidentifikasi unik yang mengidentifikasi grup percakapan.
ID grup percakapan dikembalikan ke aplikasi dengan parameter GET CONVERSATION GROUP
@conversation_group_id pernyataan dan conversation_group_id
kolom dalam kumpulan RECEIVE
hasil pernyataan.
ID grup percakapan dilaporkan dalam conversation_group_id
kolom sys.conversation_groups
tampilan katalog dan sys.conversation_endpoints
.
conversation_id
Pengidentifikasi unik yang mengidentifikasi percakapan. ID percakapan sama untuk inisiator dan titik akhir target percakapan.
ID Percakapan dilaporkan dalam conversation_id
kolom sys.conversation_endpoints
tampilan katalog.
-TIMEOUT timeout_interval
Menentukan jumlah detik untuk laporan yang RUNTIME
akan dijalankan. Jika -TIMEOUT
tidak ditentukan, laporan runtime berjalan tanpa batas waktu. -TIMEOUT
hanya digunakan pada RUNTIME
laporan, bukan CONFIGURATION
laporan. 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 CONNECT TO
klausa. Jika layanan berada dalam database terpisah, Anda harus menyediakan CONNECT TO
klausul 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 sysadmin
peran server tetap.
Opsi -E
mengabaikan pengaturan pengguna dan kata sandi variabel SQLCMDUSER
lingkungan dan SQLCMDPASSWORD
.
Jika salah satu -E
atau -U
tidak ditentukan, ssbdiagnose menggunakan nilai dari SQLCMDUSER
variabel lingkungan. Jika SQLCMDUSER
tidak diatur, ssbdiagnose menggunakan Autentikasi Windows.
-E
Jika opsi digunakan bersama dengan -U
opsi atau -P
opsi , pesan kesalahan akan dihasilkan.
-U login_id
Buka koneksi Autentikasi SQL Server dengan menggunakan ID masuk yang ditentukan. Login harus menjadi anggota sysadmin
peran server tetap.
Jika salah satu -E
atau -U
tidak ditentukan, ssbdiagnose menggunakan nilai dari SQLCMDUSER
variabel lingkungan. Jika SQLCMDUSER
tidak diatur, ssbdiagnose mencoba menyambungkan dengan menggunakan mode Autentikasi Windows berdasarkan akun Windows pengguna yang menjalankan ssbdiagnose.
-U
Jika opsi digunakan bersama dengan -E
opsi , pesan kesalahan dihasilkan. -U
Jika opsi diikuti oleh lebih dari satu argumen, pesan kesalahan dihasilkan dan program keluar.
Kata sandi -P
Menentukan kata sandi untuk -U
ID masuk. Kata sandi sensitif huruf besar/kecil. -U
Jika opsi digunakan, dan -P
opsi tidak digunakan, ssbdiagnose menggunakan nilai dari SQLCMDPASSWORD
variabel lingkungan. Jika SQLCMDPASSWORD
tidak diatur, ssbdiagnose meminta kata sandi kepada pengguna.
Perhatian
Saat Anda mengetik SET SQLCMDPASSWORD
perintah, kata sandi Anda akan terlihat oleh siapa pun yang dapat melihat layar Anda.
-P
Jika opsi 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.
-P
Jika opsi digunakan dengan -E
opsi , pesan kesalahan akan dihasilkan.
-P
Jika opsi diikuti oleh lebih dari satu argumen, pesan kesalahan akan dihasilkan.
-S server_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 untuk menyambungkan <server_name>\<instance_name>
ke instans bernama Mesin Database di server tersebut. Jika -S
tidak ditentukan, ssbdiagnose menggunakan nilai SQLCMDSERVER
variabel lingkungan. Jika SQLCMDSERVER
tidak diatur, ssbdiagnose tersambung ke instans default Mesin Database di komputer lokal.
-d database_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.
-l login_timeout
Menentukan jumlah detik sebelum upaya untuk menyambungkan ke server kehabisan waktu. Jika -l
tidak ditentukan, ssbdiagnose menggunakan nilai yang ditetapkan untuk SQLCMDLOGINTIMEOUT
variabel lingkungan. Jika SQLCMDLOGINTIMEOUT
tidak diatur, waktu habis default adalah 30 detik. Waktu masuk habis harus berupa angka antara 0 dan 65534. Jika nilai yang disediakan bukan numerik atau tidak termasuk dalam rentang tersebut, ssbdiagnose menghasilkan pesan kesalahan. Nilai 0 menentukan waktu habis menjadi tak terbatas.
-N encryption_option
Menentukan bahwa koneksi dienkripsi. Nilai yang memungkinkan adalah Optional
, Mandatory
, dan Strict
. Nilai yang dimasukkan mewakili tingkat enkripsi yang diinginkan dan minimal. Nilai defaultnya adalah Mandatory
.
Dengan Mandatory
enkripsi dipilih, Anda harus menggunakan sertifikat dari otoritas sertifikat tepercaya. Untuk informasi selengkapnya, lihat Persyaratan sertifikat untuk SQL Server.
Untuk menggunakan enkripsi ketat, Mesin Database SQL Server harus dikonfigurasi dengan sertifikat TLS yang ditandatangani oleh otoritas sertifikat akar tepercaya.
-i hostname_in_certificate
Menentukan Nama Umum (CN) atau Nama Alternatif Subjek (SAN) yang berbeda dan diharapkan dalam sertifikat server yang akan digunakan selama validasi sertifikat server. Tanpa opsi ini, validasi sertifikat memastikan bahwa CN atau SAN dalam sertifikat cocok dengan nama server yang Anda sambungkan. Parameter ini dapat diisi ketika nama server tidak cocok dengan CN atau SAN, misalnya, saat menggunakan alias DNS.
-C
Menentukan bahwa koneksi mempercayai sertifikat server, dan melewati validasi sertifikat server. Opsi ini tidak diperlukan saat sertifikat server tepercaya digunakan.
-?
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 saat pesan tidak berhasil ditransmisikan antar layanan.
Dapatkan laporan kesalahan apa pun yang terjadi dalam serangkaian 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 ENCRYPTION OFF
. Jika Anda menjalankan ssbdiagnose untuk memvalidasi konfigurasi antara kedua layanan, tetapi menggunakan pengaturan default ENCRYPTION ON
, 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 di runtimeconnectionoptions
dan baseconnectionoptions
untuk membangun daftar ID Service Broker. Daftar lengkap ID yang dibangun tergantung pada apa yang ditentukan untuk -NEW
dan -ID
:
Jika salah satu
-NEW
atau-ID
tidak 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 menyediakan runtimeconnectionoptions
klausul untuk database inisiator dan bukan database target. ssbdiagnose tidak 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 terkait dengan grup percakapan apa pun.
Jika ssbdiagnose menemukan kesalahan percakapan, utilitas 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 yangCONFIGURATION
ditemukan baik laporan sedang berjalan, atau selama faseRUNTIME
konfigurasi laporan. ssbdiagnose melaporkan setiap masalah konfigurasi satu kali.Event
: Melaporkan peristiwa SQL Server Profiler yang menunjukkan masalah ditemui oleh percakapan yang dipantau selamaRUNTIME
laporan. ssbdiagnose melaporkan peristiwa setiap kali dibuat. Peristiwa dapat dilaporkan beberapa kali jika beberapa percakapan mengalami masalah.Problem
: Melaporkan masalah yang mencegah ssbdiagnose menyelesaikan analisis konfigurasi atau memantau percakapan.
Variabel lingkungan SQLCMD
Utilitas ssbdiagnose mendukung SQLCMDSERVER
variabel lingkungan , SQLCMDUSER
, SQLCMDPASSWORD
, dan SQLCMDLOGINTIMOUT
yang juga digunakan oleh utilitas sqlcmd. Anda dapat mengatur variabel lingkungan baik dengan menggunakan perintah prompt SET
perintah, atau dengan menggunakan setvar
perintah dalam skrip Transact-SQL yang Anda jalankan dengan menggunakan sqlcmd. Untuk informasi selengkapnya tentang cara menggunakan setvar
dalam sqlcmd, lihat sqlcmd - Gunakan dengan variabel pembuatan skrip.
Izin
Dalam setiap connectionoptions
klausul, login yang ditentukan dengan salah satu -E
atau -U
harus menjadi anggota sysadmin
peran server tetap dalam instans yang ditentukan dalam -S
.
Contoh
Bagian ini berisi contoh penggunaan ssbdiagnose pada prompt perintah.
J. Periksa konfigurasi dua layanan dalam database yang sama
Contoh berikut menunjukkan cara meminta laporan konfigurasi saat berikut ini benar;
Layanan inisiator dan 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 DEFAULT
kontrak karena ON CONTRACT
tidak ditentukan.
ssbdiagnose -E -d MyDatabase CONFIGURATION FROM SERVICE /test/initiator TO SERVICE /test/target
B. Periksa 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. Periksa 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. Periksa konfigurasi layanan cermin pada komputer terpisah dengan enkripsi anonim
Contoh berikut menunjukkan cara meminta laporan konfigurasi saat 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. Periksa konfigurasi dua kontrak
Contoh berikut menunjukkan cara membuat file perintah yang meminta laporan konfigurasi saat berikut ini benar:
Layanan inisiator dan 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 inisiator dan layanan 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 inisiator dan layanan 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 untuk menentukan informasi instans baseconnectionoptions
dan login, dan dua CONNECT TO
klausa 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 inisiator dan layanan target berada dalam database terpisah dalam instans mesin database yang sama. Contoh menggunakan untuk menentukan informasi instans baseconnectionoptions
dan login, dan dua CONNECT TO
klausa 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 mesin database yang sama. Contoh menggunakan untuk menentukan informasi instans baseconnectionoptions
dan login, dan dua CONNECT TO
klausa 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 SQLCMDSERVER
mengatur variabel lingkungan untuk menahan 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
Konten terkait
- Service Broker
- MULAI PERCAKAPAN DIALOG (Transact-SQL)
- BUAT PRIORITAS BROKER (Transact-SQL)
- BUAT SERTIFIKAT (Transact-SQL)
- BUAT KONTRAK (T-SQL)
- CREATE ENDPOINT (Transact-SQL)
- BUAT KUNCI MASTER (Transact-SQL)
- BUAT JENIS PESAN (Transact-SQL)
- BUAT ANTREAN (Transact-SQL)
- MEMBUAT PENGIKATAN LAYANAN JARAK JAUH (Transact-SQL)
- BUAT RUTE (Transact-SQL)
- CREATE SERVICE (Transact-SQL)
- RECEIVE (Transact-SQL)
- sys.transmission_queue (T-SQL)
- sys.conversation_endpoints (T-SQL)
- sys.conversation_groups (T-SQL)