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) » MobiLink - Clientadministration » SQL Anywhere-Clients für MobiLink » Dbmlsync-Integrationskomponente (nicht weiterentwickelt) » Ereignisse der Dbmlsync-Integrationskomponente

 

Ereignis Message

Das Message-Ereignis wird ausgelöst, wenn dbmlsync Daten protokolliert.

Syntax
Public Event Message(_
  ByVal Meldungsklasse As DbmlsyncCOM.MessageClass, _
  ByVal Meldungs_ID As Integer, ByVal Meldung As String_
)
Member of DbmlsyncCOM.Dbmlsync
Parameter

Meldungsklasse   Zeigt den Schweregrad der Meldung an. Folgende Werte sind möglich:

  • MsgInfo   Eine Meldung, die Informationen über den Fortschritt der Synchronisation angibt

  • MsgDetailedInfo   Wie MsgInfo, enthält aber mehr Details.

  • MsgWarning   Eine Meldung, die auf ein potenzielles Problem hinweist, das die erfolgreiche Synchronisation nicht verhindert.

  • MsgError   Eine Meldung, die auf ein Problem hinweist, das die erfolgreiche Synchronisation verhindert.

Meldungs_ID   Ein eindeutiger Bezeichner für die Meldung. Wenn MeldungsID Null ist, hat die Meldung keinen eindeutigen Bezeichner.

Meldung   Der Text der Meldung

Bemerkungen

Mit diesem Ereignis können Sie von dbmlsync protokollierte Informationen empfangen. Wenn sie spezielle Verarbeitungsschritte hinzufügen wollen, sobald eine bestimmte Nachricht generiert wurde, prüfen Sie dies nach MsgID. Auf diese Weise läuft Ihr Programmcode auch weiter, wenn sich der Text der Nachricht ändert.

Beispiel

Im folgenden Visual Basic .NET-Beispiel werden von dbmlsync protokollierte Meldungen in ein Listenfeld-Steuerelement eingefügt.

Private Sub dbmlsync1_Message(
 ByVal msgClass As DbmlsyncCOM.MessageClass,
 ByVal msgId As Integer, ByVal msg As String
)
Handles dbmlsync1.Message
    
    Select Case msgClass
        Case DbmlsyncCOM.MessageClass.MsgError
            lstMessages.Items.Add("Error: " + msg)
        Case DbmlsyncCOM.MessageClass.MsgWarning
            lstMessages.Items.Add("Warning: " + msg)
        Case DbmlsyncCOM.MessageClass.MsgInfo
            lstMessages.Items.Add("Info: " + msg)
        Case DbmlsyncCOM.MessageClass.MsgDetailedInfo
            lstMessages.Items.Add("DetInfo: " + msg)
    End Select

End Sub
Beispiel

Im folgenden Visual Basic .NET-Beispiel wird das Message-Ereignis für die Fehlerbehandlung eingerichtet. Fehlermeldungen werden zu einem ListBox-Steuerelement mit dem Namen "1stMessage" hinzugefügt.

Private Sub dbmlsync1_Message(ByVal msgClass As DbmlsyncCOM.MessageClass, ByVal msgId As Integer, ByVal msg As String) Handles dbmlsync1.Message
  If msgClass = DbmlsyncCOM.MessageClass.MsgError Then
   lstMessages.Items.Add("Error: " + msgId.ToString() + " " + msg)
  End If
End Sub

Um mögliche Fehler-IDs zu ermitteln, sollten Sie einen Testdurchlauf der Dbmlsync-Integrationskomponenten durchführen. Wenn dbmlsync beispielsweise den Fehler "Verbindung mit MobiLink-Server kann nicht hergestellt werden" zurückgibt, fügt das Message-Ereignis den folgenden Eintrag in 1stMessages ein:

Error: 14173 Unable to connect to MobiLink server.

Nun können Sie den Fehler "Unable to connect to MobiLink server" (Verbindung mit MobiLink-Server kann nicht hergestellt werden) mit der Fehler-ID 14173 in Verbindung bringen. Das folgende Beispiel stellt die Dbmlsync-Integrationskomponente so ein, dass beim Auftreten des Fehlers 14173 erneut eine Synchronisation versucht wird. Das Message-Ereignis setzt eine Variable namens "restartSynchronization" und setzt als Reaktion auf Fehler 14173 eine Variable namens "numberOfRestarts" zurück. Das EndSynchronization-Ereignis versucht bis zu fünf Mal, die Synchronisation erneut durchzuführen.

' variables for restarting synchronization
Dim numberOfRestarts As Integer = 0
Dim restartSynchronization As Integer = 0



Private Sub dbmlsync1_Message
(
 ByVal msgClass As DbmlsyncCOM.MessageClass,
 ByVal msgId As Integer, ByVal msg As String ) Handles dbmlsync1.Message
    
 If msgClass = DbmlsyncCOM.MessageClass.MsgError Then
     lstMessages.Items.Add("Error: " + msgId.ToString() + " " + msg)

     If msgId = 14173 Then
       restartSynchronization = 1
       numberOfRestarts = 0
     End If
 End If
End Sub

Private Sub dbmlsync1_EndSynchronization(ByVal ExitCode As Integer, _
    ByRef restart As Boolean _
    ) Handles dbmlsync1.EndSynchronization
    

    If restartSynchronization = 1 Then
      If numberOfRestarts < 5 Then
         restart = True
         numberOfRestarts = numberOfRestarts + 1
      End If
    End If
End Sub