sa_conn_info システムプロシージャを使用して、どの接続がデッドロックでブロックされているかを判別できます。このプロシージャは、接続ごとに 1 つのローで構成される結果セットを返します。結果セットのカラムの 1 つには、接続がブロックされているかどうか、およびブロックされている場合は、どの接続でブロックされているかがリストされます。結果セットは、接続がブロックされているかどうかと、それをブロックしている接続を示します。
デッドロックが発生した場合は、デッドロックイベントを使用してアクションを実行することもできます。イベントハンドラでは、sa_report_deadlocks プロシージャを使用して、デッドロックが発生するに至った状況に関する情報を取得できます。データベースサーバからデッドロックの詳細を取り出すには、log_deadlocks オプションを使用して RememberLastStatement 機能を有効にします。
次の例では、デッドロックが発生した場合にその情報を取得するために使用できるテーブルとシステムイベントの設定方法を示します。アプリケーションで頻繁にデッドロックが発生する場合は、アプリケーションプロファイリングを使用するとデッドロックの原因の究明に役立ちます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |