Skip to Content
Mobile

How to detect deadlock or blocked thread in (SUP 2.x)

Tags:

PURPOSE:

This document explains how to detect deadlock or blocked thread in SUP CDB.

REQUIREMENT:

  • SUP 2.x

SOLUTION:

In order to figure out if the system is in a deadlock situation, we need to do the following:

  1. Go to SUP default installation path (ie. C:\Sybase\UnwiredPlatform\Servers\SQLAnywhere12\BIN32 )
  2. Invoke dbisql.exe
  3. User ID: dba
  4. Password: sql  ( i.e Note: sql is the default )
  5. Make sure you fill the login screen as follows:
  6. After connecting, issue the following Query:

    SELECT PROPERTY('ActiveReq')
  7. It returns the number of server threads that are currently handling the requests. See below
  8. If the number is the max value of -gn, it means you are running out  of worker threads at the database level.
  9. Next execute this query:

    SELECT PROPERTY('UnschReq')
  10. If you see the result is zero as shown below that means, you are not running out of threads and you are not experiencing thread's deadlock:
  11. If the result was a none zero value, that means, you have worker threads are waiting. In that case, if the result is a large number, you may need to update the -gn switch for the default CDB database.
  12. To get more details about the -gn switch and how to modify it, please refer to the following address; http://dcx.sybase.com/index.html#sup0212/en/com.sybase.infocenter.dc01205.0212/doc/html/aba1316012479255.html

SUMMARY:

In order to determine if you have threads are waiting or if the -gn switch needs to be adjusted, monitor your system by using the "UnschReq" and "ActiveReq" requests.

No comments