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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - プログラミング » SQL Anywhere データ・アクセス API » SQL Anywhere .NET データ・プロバイダ

 

トレースのサポート

SQL Anywhere .NET プロバイダでは、.NET 2.0 以降のトレーシング機能を使用したトレースをサポートしています。トレースは、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>

トレースの設定情報は、app.exe.config という名前で、アプリケーションの bin\debug フォルダに配置されます。

指定できる traceOutputOptions には、次の項目などがあります。

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

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

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

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

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

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

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

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

  • 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#

TableViewer サンプルを使用して、アプリケーション・トレースを試してみることができます。

♦  トレース用にアプリケーションを設定するには、次の手順に従います。
  1. .NET 2.0 以降を使用する必要があります。

    Visual Studio を起動し、samples-dir\SQLAnywhere\ADO.NET\TableViewer にある TableViewer プロジェクト・ファイル (TableViewer.sln) を開きます。

  2. 前述した設定ファイルのコピーを TableViewer.exe.config という名前でアプリケーションの bin\debug フォルダに配置します。

  3. [デバッグ] - [デバッグの開始] を選択します。

アプリケーションの実行が完了すると、トレース出力ファイルが samples-dir\SQLAnywhere\ADO.NET\TableViewer\bin\Debug\myTrace.log に作成されています。

トレースは、Windows Mobile ではサポートされていません。

詳細については、[external link] http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadonet/html/tracingdataaccess.asp の「Tracing Data Access」を参照してください。