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 ]
  [ -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, dan GRANT 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, dan GRANT SEND untuk layanan inisiator yang menentukan peran publik .

  • ANONYMOUS: 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 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 yang CONFIGURATION ditemukan baik laporan sedang berjalan, atau selama fase RUNTIME konfigurasi laporan. ssbdiagnose melaporkan setiap masalah konfigurasi satu kali.

  • Event: Melaporkan peristiwa SQL Server Profiler yang menunjukkan masalah ditemui oleh percakapan yang dipantau selama RUNTIME 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 SQLCMDSERVERvariabel 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