Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ プログラミング » .NET アプリケーションプログラミング » SQL Anywhere .NET データプロバイダ

 

.NET でのトレースのサポート

SQL Anywhere .NET データプロバイダでは、.NET のトレーシング機能を使用したトレースをサポートしています。トレースは、Windows Mobile ではサポートされていません。

デフォルトでは、トレースは無効です。トレースを有効にするには、アプリケーションの設定ファイルでトレースソースを指定します。

次は、設定ファイルの例です。



<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<sources>
 <source name="iAnywhere.Data.SQLAnywhere" 
         switchName="SASourceSwitch" 
         switchType="System.Diagnostics.SourceSwitch">
  <listeners>
   <add name="ConsoleListener" 
        type="System.Diagnostics.ConsoleTraceListener"/>
   <add name="EventListener" 
        type="System.Diagnostics.EventLogTraceListener" 
        initializeData="MyEventLog"/>
   <add name="TraceLogListener" 
        type="System.Diagnostics.TextWriterTraceListener" 
        initializeData="myTrace.log" 
        traceOutputOptions="ProcessId, ThreadId, Timestamp"/>
   <remove name="Default"/>
  </listeners>
 </source>
</sources>
<switches>
 <add name="SASourceSwitch" value="All"/>
 <add name="SATraceAllSwitch" value="1" />
 <add name="SATraceExceptionSwitch" value="1" />
 <add name="SATraceFunctionSwitch" value="1" />
 <add name="SATracePoolingSwitch" value="1" />
 <add name="SATracePropertySwitch" value="1" />
</switches>
</system.diagnostics>
</configuration>

上記の設定ファイルでは、4 種類のトレースリスナが参照されています。

  • ConsoleTraceListener   トレース出力またはデバッグ出力は、標準出力か標準エラーストリームのどちらかに送られます。Microsoft Visual Studio を使用する場合、出力は [出力] ウィンドウに表示されます。

  • DefaultTraceListener   このリスナは、名前 "Default" を使用して、自動的に Debug.Listeners および Trace.Listeners コレクションに追加されます。トレース出力またはデバッグ出力は、標準出力か標準エラーストリームのどちらかに送られます。Microsoft Visual Studio を使用する場合、出力は [出力] ウィンドウに表示されます。ConsoleTraceListener により生成される出力の重複を避けるため、このリスナは削除されます。

  • EventLogTraceListener   トレース出力またはデバッグ出力は、initializeData オプションで識別される EventLog に送られます。この例では、イベントログの名前は MyEventLog です。システムイベントログに書き込むには管理者権限が必要であり、この方法でアプリケーションをデバッグすることはおすすめしません。

  • TextWriterTraceListener   トレース出力またはデバッグ出力は TextWriter に送られ、initializeData オプションで識別されるファイルにストリームが書き込まれます。

上記のトレースリスナへのトレース出力を無効にするには、<listeners> にある対応する add エントリを削除します。

トレースの設定情報は、App.config という名前で、アプリケーションのプロジェクト フォルダに置かれます。このファイルが存在しない場合は、Visual Studio を使用して作成し、プロジェクトに追加できます。それには、[追加] » [新しい項目] を選択し、[アプリケーション構成ファイル] を選択します。

どのリスナでも traceOutputOptions を指定できます。次のオプションがあります。

  • Callstack   コールスタックを書き込みます。コールスタックは、Environment.StackTrace プロパティの戻り値で表されます。

  • DateTime   日付と時刻を書き込みます。

  • LogicalOperationStack   論理演算スタックを書き込みます。論理演算スタックは、CorrelationManager.LogicalOperationStack プロパティの戻り値で表されます。

  • None   要素を書き込みません。

  • ProcessId   プロセス ID を書き込みます。プロセス ID は、Process.Id プロパティの戻り値で表されます。

  • ThreadId   スレッド ID を書き込みます。スレッド ID は、現在のスレッドの Thread.ManagedThreadId プロパティの戻り値で表されます。

  • Timestamp   タイムスタンプを書き込みます。タイムスタンプは、System.Diagnostics.Stopwatch.GetTimeStamp メソッドの戻り値で表されます。

前述のサンプルの設定ファイルでは、TextWriterTraceListener に対してのみトレース出力オプションを指定しています。

特定のトレースオプションを設定することで、トレース対象を限定できます。デフォルトでは、数値のトレースオプション設定はすべて 0 です。設定できるトレースオプションには次の項目などがあります。

  • SASourceSwitch   SASourceSwitch は、次の値のいずれかを取ることができます。Off の場合、トレーシングはありません。

    • Off   イベントを許可しません。

    • Critical   重大なイベントのみを許可します。

    • Error   重大なイベントとエラーイベントを許可します。

    • Warning   重大なイベント、エラーイベント、警告イベントを許可します。

    • Information   重大なイベント、エラーイベント、警告イベント、情報イベントを許可します。

    • Verbose   重大なイベント、エラーイベント、警告イベント、情報イベント、冗長イベントを許可します。

    • ActivityTracing   停止、開始、中断、転送、再開イベントを許可します。

    • All   すべてのイベントを許可します。

    次に設定例を示します。

    <add name="SASourceSwitch" value="Error"/>

  • SATraceAllSwitch   すべてのトレースオプションが有効になります。すべてのオプションが選択されるため、その他のオプションを設定する必要はありません。このオプションを選択した場合は、個々のオプションを無効にできません。たとえば、次のようにしても、例外トレースは無効になりません。
    <add name="SATraceAllSwitch" value="1" />
    <add name="SATraceExceptionSwitch" value="0" />

  • SATraceExceptionSwitch   すべての例外が記録されます。トレースメッセージの形式は次のとおりです。
    <Type|ERR> message='message_text'[ nativeError=error_number]

    nativeError=error_number は、SAException オブジェクトが存在する場合に限り表示されます。

  • SATraceFunctionSwitch   すべての関数スコープの開始と終了が記録されます。トレースメッセージの形式は次のいずれかです。
    enter_nnn <sa.class_name.method_name|API> [object_id#][parameter_names]
    leave_nnn

    nnn は、スコープのネストレベル 1、2、3 などを表す整数です。省略可能な parameter_names は、スペースで区切られたパラメータ名のリストです。

  • SATracePoolingSwitch   すべての接続プーリングが記録されます。トレースメッセージの形式は次のいずれかです。
    <sa.ConnectionPool.AllocateConnection|CPOOL> connectionString='connection_text'
    <sa.ConnectionPool.RemoveConnection|CPOOL> connectionString='connection_text'
    <sa.ConnectionPool.ReturnConnection|CPOOL> connectionString='connection_text'
    <sa.ConnectionPool.ReuseConnection|CPOOL> connectionString='connection_text'

  • SATracePropertySwitch   すべてのプロパティの設定と取得が記録されます。トレースメッセージの形式は次のいずれかです。
    <sa.class_name.get_property_name|API> object_id#
    <sa.class_name.set_property_name|API> object_id#

詳細については、[external link] http://msdn.microsoft.com/ja-jp/library/ms971550.aspxの「Tracing Data Access」を参照してください。


Windows アプリケーションのトレース設定