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

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Programmierung » SQL Anywhere Datenzugriff-APIs » SQL Anywhere .NET-Datenprovider

 

Protokollierungsunterstützung

Der SQL Anywhere .NET-Provider unterstützt die Protokollierung mit der .NET-Protokollierungsfunktion der Version 2.0 oder später. Beachten Sie, dass die Protokollierung unter Windows Mobile nicht unterstützt wird.

Standardmäßig ist die Protokollierung deaktiviert. Um sie zu aktivieren, geben Sie die Protokollierungsquelle in der Konfigurationsdatei der Anwendung an. Beispiel einer Konfigurationsdatei:

<?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>

Die Konfigurationsinformationen für die Protokollierung befinden sich im Ordner bin\debug der Anwendung unter dem Namen Anwendung.exe.config.

Folgende Optionen für die Protokollierung (traceOutputOptions) können festgelegt werden:

  • Callstack   Schreibt den Aufruf-Stack, der vom Rückgabewert der Eigenschaft Environment.StackTrace repräsentiert wird.

  • DateTime   Schreibt das Datum und die Uhrzeit.

  • LogicalOperationStack   Schreibt den Stack für die logischen Vorgänge, der vom Rückgabewert der Eigenschaft CorrelationManager.LogicalOperationStack repräsentiert wird.

  • Keine   Schreibt keine Elemente.

  • ProcessId   Schreibt die Prozess-ID, die vom Rückgabewert der Eigenschaft Process.Id repräsentiert wird.

  • ThreadId   Schreibt die Thread-ID, die vom Rückgabewert der Eigenschaft Thread.ManagedThreadId für den aktuellen Thread repräsentiert wird.

  • Timestamp   Schreibt den Zeitstempel, der vom Rückgabewert der Methode System.Diagnostics.Stopwatch.GetTimeStamp repräsentiert wird.

Mit spezifischen Protokolloptionen können Sie begrenzen, welche Elemente protokolliert werden. Standardmäßig sind alle Protokolloptionen auf 0 gesetzt. Folgende Protokolloptionen sind verfügbar:

  • SATraceAllSwitch   Der Parameter zum Protokollieren aller Elemente. Wenn diese Option angegeben wird, sind alle Protokolloptionen aktiviert. Es ist in diesem Fall nicht erforderlich, weitere Optionen anzugeben, da damit alle ausgewählt werden. Wenn Sie diese Option auswählen, können Sie keine einzelnen Optionen deaktivieren. Es ist z.B. nicht möglich, die Protokollierung von Ausnahmebedingungen mit folgenden Anweisungen zu deaktivieren.
    <add name="SATraceAllSwitch" value="1" />
    <add name="SATraceExceptionSwitch" value="0" />

  • SATraceExceptionSwitch   Alle Ausnahmebedingungen werden protokolliert. Protokollmeldungen haben das folgende Format.
    <Type|ERR> message='message_text'[ nativeError=error_number]

    Der Text nativeError=error_number wird nur angezeigt, wenn ein SAException-Objekt vorhanden ist.

  • SATraceFunctionSwitch   Alle Eintritte/Austritte des Funktionsbereichs werden protokolliert. Protokollmeldungen können die folgenden Formate haben.
    enter_nnn <sa.class_name.method_name|API> [object_id#][parameter_names]
    leave_nnn

    Hierbei steht "nnn" für eine Ganzzahl, die die Verschachtelungsebene 1, 2, 3 usw. des Bereichs repräsentiert. Der optionale Parameter parameter_names ist eine Liste der durch Leerzeichen getrennten Parameternamen.

  • SATracePoolingSwitch   Alle Verbindungspools werden protokolliert. Protokollmeldungen können die folgenden Formate haben.
    <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   Alle Einstellungen und Abrufe von Eigenschaften werden protokolliert. Protokollmeldungen können die folgenden Formate haben.
    <sa.class_name.get_property_name|API> object_id#
    <sa.class_name.set_property_name|API> object_id#

Sie können die Anwendungsprotokollierung unter Verwendung des TableViewer-Beispiels testen.

♦  So konfigurieren Sie eine Anwendung für die Protokollierung
  1. Sie müssen .NET 2.0 oder später verwenden.

    Starten Sie Visual Studio und öffnen Sie die TableViewer-Projektdatei (TableViewer.sln) unter Beispielverzeichnis\SQLAnywhere\ADO.NET\TableViewer.

  2. Stellen Sie eine Kopie der Konfigurationsdatei unter dem Namen TableViewer.exe.config in den Ordner bin\debug der Anwendung.

  3. Wählen Sie im Menü "Debuggen" den Befehl "Debuggen starten".

Wenn die Ausführung der Anwendung abgeschlossen ist, wird unter Beispielverzeichnis\SQLAnywhere\ADO.NET\TableViewer\bin\Debug\myTrace.log eine Ausgabedatei gespeichert.

Die Protokollierung wird unter Windows Mobile nicht unterstützt.

Weitere Hinweise finden Sie unter "Tracing Data Access" unter [external link] http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadonet/html/tracingdataaccess.asp.