Table of Contents

Check for blocking sessions

SELECT
    blocking_session_id,
    session_id,
    wait_type,
    wait_time,
    last_wait_type,
    text
FROM sys.dm_exec_requests r
         CROSS APPLY sys.dm_exec_sql_text(sql_handle)
WHERE blocking_session_id != 0;
blocking_session_id session_id wait_type wait_time last_wait_type text
58 57 LCK\_M\_X 189541 LCK\_M\_X drop table if exists “master”.“dbo”.“d\_date”

What it means:

  • Session 57 (tabulify): Waiting for an exclusive lock (LCK_M_X) to drop the table
  • Session 58: Currently holding a lock that prevents the drop operation
  • Wait time: 189,541 milliseconds (~3 minutes) and counting
KILL 58;

Set a Timeout

Set a Timeout on your connection

jdbc:sqlserver://server:port;databaseName=db;loginTimeout=30;socketTimeout=30000;queryTimeout=30
  • loginTimeout: Connection timeout
  • socketTimeout: Socket read timeout in ms
  • queryTimeout: Query timeout