SQL AzureとセッショントレースID
SQL Azure and Session Tracing ID – SQL Azure Team Blog – Site Home – MSDN Blogsを簡単に翻訳したエントリーです。
もし注意を払っていたら、SQL Azureに接続しているとSQL Server Management Studio 2008 R2に新しいプロパティ(セッショントレースID)が追加されていることに気がついたかもしれません。
セッショントレース識別子は、全てのSQL Azureの接続時に生成されるユニークなGUIDです。サーバサイド上で、SQL Azureチームは、セッショントレースIDによって全ての接続の記録と追跡をしています。つまり、もしセッション識別子とエラーが起こったことがわかれば、Azure Developerサポートは、エラーを探し、エラーの原因を追及することができます。
SQL Server Management Studio
SQL Server Management Studioで、接続プロパティウィンドウでセッショントレース識別子を取得することができます。
Transact-SQL
下のクエリを使用してTransact-SQLでセッショントレースID識別子を取得することができます。
SELECT CONVERT(NVARCHAR(36), CONTEXT_INFO())
C#
またはC#でも取得することができます。
using (SqlConnection conn = new SqlConnection(…)) { // Grab sessionId from new connection using (SqlCommand cmd = conn.CreateCommand()) { conn.Open(); cmd.CommandText = "SELECT CONVERT(NVARCHAR(36), CONTEXT_INFO())"; sessionId = new Guid(cmd.ExecuteScalar().ToString()); } }
重要なことは、セッショントレースIDは、クライアントサイド上のADO.NETコネクションプールとサーバへの接続ごとに発行されます。コネクションプールがリサイクルされ、接続し直すまで、SqlConnectionのインスタンスは同じセッショントレースIDになります。
まとめ
もし、セッショントレースIDとサーバネーム、おおよその時間を用意し、Azure Developer サポートに電話すると、デバッグプロセスを早めることができ、貴重な時間を守ることができます。