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

SQL Anywhere 11.0.1 (日本語) » Mobile Link - クライアント管理 » Mobile Link 用 SQL Anywhere クライアント » dbmlsync 統合コンポーネント (旧式) » dbmlsync 統合コンポーネントのイベント

 

Message イベント

Message イベントは、dbmlsync が情報のログを取るときにトリガされます。

構文
Public Event Message(_
  ByVal msgClass As DbmlsyncCOM.MessageClass, _
  ByVal msgID As Integer, ByVal msg As String_
)
Member of DbmlsyncCOM.Dbmlsync
パラメータ

msgClass   メッセージの重大度を示します。次のいずれかの値を取ります。

  • MsgInfo   同期の進行状況情報が含まれるメッセージです。

  • MsgDetailedInfo   MsgInfo と似ていますが、さらに詳細が含まれています。

  • MsgWarning   問題が発生する可能性があることを示すメッセージですが、正常な同期を妨げない問題です。

  • MsgError   正常な同期を妨げない問題を示すメッセージです。

msgID   メッセージのユニークな識別子です。msgID が 0 の場合、メッセージにはユニークな識別子はありません。

msg   メッセージのテキストです。

備考

このイベントを使用して、dbmlsync がログを取った情報を受け取ります。特定のメッセージが生成されたときに特別な処理を実行する場合は、MsgID でメッセージを確認します。このようにすると、メッセージのテキストが変更されても、コードはそのまま機能します。

次に示す Visual Basic .NET の例は、dbmlsync がログを取ったメッセージをリストボックス・コントロールに追加します。

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

次に示す Visual Basic .NET の例は、エラーを処理するように Message イベントを設定します。エラー・メッセージは、lstMessages という ListBox コントロールに追加されます。

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

可能性のあるエラーの ID 値を表示するには、dbmlsync 統合コンポーネントをテスト実行します。たとえば、dbmlsync が「Mobile Link サーバに接続できません。」というエラーを返すと、Message イベントは次のエントリを lstMessages に挿入します。

Error: 14173 Unable to connect to MobiLink server.

これで、「Mobile Link サーバに接続できません。」というエラーとエラー ID 14173 を関連付けることができます。次の例では、エラー 14173 が発生したときに必ず同期をリトライするように dbmlsync 統合コンポーネントを設定します。Message イベントは、エラー 14173 が発生すると、restartSynchronization という変数を設定し、numberOfRestarts という変数をリセットします。EndSynchronization イベントは、最大 5 回、同期をリトライします。

' 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