Mengakses informasi diagnostik dalam log peristiwa yang diperluas
Dalam Microsoft JDBC Driver 4.0 untuk SQL Server, pelacakan (Operasi driver pelacakan) memudahkan untuk menghubungkan peristiwa klien dengan informasi diagnostik. Hal-hal seperti kegagalan koneksi dari buffer cincin konektivitas server dan informasi performa aplikasi dalam log peristiwa yang diperluas dapat dilacak. Untuk informasi tentang membaca log peristiwa yang diperluas, lihat Peristiwa yang Diperluas.
Detail
Untuk operasi koneksi, Driver Microsoft JDBC untuk SQL Server akan mengirim ID koneksi klien. Jika koneksi gagal, Anda dapat mengakses buffer cincin konektivitas dan menemukan bidang ClientConnectionID untuk mendapatkan informasi diagnostik tentang kegagalan tersebut. Untuk informasi selengkapnya tentang buffer cincin, lihat Pemecahan masalah Konektivitas di SQL Server 2008 dengan Buffer Cincin Konektivitas. ID koneksi klien akan dicatat di buffer ring hanya jika terjadi kesalahan. Jika koneksi gagal sebelum mengirim paket pralogin, ID koneksi klien tidak akan dibuat.
ID koneksi klien adalah GUID 16 byte. Jika tindakan client_connection_id ditambahkan ke peristiwa dalam sesi peristiwa yang diperluas, ID koneksi klien akan berada dalam output target peristiwa yang diperluas. Untuk diagnostik driver klien lainnya, Anda dapat mengaktifkan pelacakan dan menjalankan ulang perintah koneksi untuk melihat bidang ClientConnectionID di pelacakan.
Anda bisa mendapatkan ID koneksi klien secara terprogram dengan menggunakan ISQLServerConnection Interface. ID koneksi juga akan ada dalam pengecualian terkait koneksi apa pun.
Ketika ada kesalahan koneksi, ID koneksi klien di informasi pelacakan Diagnostik Bawaan (BID) server dan di buffer cincin konektivitas dapat membantu menghubungkan koneksi klien ke koneksi di server. Untuk informasi selengkapnya tentang jejak BID di server, lihat Pelacakan Akses Data. Perhatikan, artikel pelacakan akses data juga berisi informasi tentang jejak akses data, yang tidak berlaku untuk Microsoft JDBC Driver untuk SQL Server; lihat Melacak operasi driver untuk informasi tentang melakukan pelacakan akses data menggunakan Driver Microsoft JDBC untuk SQL Server.
Driver JDBC juga mengirim ID aktivitas khusus utas. Jika sesi dimulai dengan opsi TRACK_CAUSAILITY diaktifkan, ID aktivitas diambil dalam sesi peristiwa yang diperluas. Untuk masalah performa dengan koneksi aktif, Anda bisa mendapatkan ID aktivitas dari jejak klien (bidang ActivityID) lalu menemukan ID aktivitas dalam output peristiwa yang diperluas.
ID aktivitas dalam peristiwa yang diperluas adalah GUID 16 byte (tidak sama dengan GUID untuk ID koneksi klien) ditambahkan dengan nomor urutan 4 byte. Nomor urut menunjukkan urutan permintaan dalam utas. ActivityId dikirim untuk pernyataan batch SQL dan permintaan RPC. Untuk mengaktifkan pengiriman ActivityId ke server, tentukan pasangan kunci-nilai berikut dalam file Logging.Properties:
com.microsoft.sqlserver.jdbc.traceactivity = on
Nilai apa pun selain on
(peka huruf besar/kecil) akan menonaktifkan pengiriman ActivityId.
Untuk informasi selengkapnya, lihat Melacak operasi driver. Bendera pelacakan ini digunakan dengan pencatat objek JDBC yang sesuai untuk memutuskan apakah akan melacak dan mengirim ActivityId di driver JDBC. Selain memperbarui file Logging.Properties, aktifkan pencatat com.microsoft.sqlserver.jdbc di FINER atau yang lebih tinggi. Untuk mengirim ActivityId ke server untuk permintaan yang dibuat oleh kelas tertentu, aktifkan pencatat kelas yang sesuai di FINER atau FINEST. Misalnya, jika kelasnya adalah, SQLServerStatement, aktifkan pencatat com.microsoft.sqlserver.jdbc.SQLServerStatement.
Sampel berikut menggunakan Transact-SQL untuk memulai sesi peristiwa yang diperluas yang disimpan dalam buffer cincin dan merekam ID aktivitas yang dikirim dari klien pada RPC dan operasi batch:
create event session MySession on server
add event connectivity_ring_buffer_recorded,
add event sql_statement_starting (action (client_connection_id)),
add event sql_statement_completed (action (client_connection_id)),
add event rpc_starting (action (client_connection_id)),
add event rpc_completed (action (client_connection_id))
add target ring_buffer with (track_causality=on)