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

SQL Anywhere 10.0.1 » MobiLink - Server Administration » Writing Synchronization Scripts in .NET » Writing .NET synchronization logic

Printing information from .NET Next Page

Handling MobiLink server errors with .NET


When scanning the log is not sufficient, you can monitor your applications programmatically. For example, you can send messages of a certain type in an email.

You can write methods that are passed a class representing every error or warning message that is printed to the log. This may help you monitor and audit a MobiLink server.

The following code installs a listener for all error messages and prints the information to a StreamWriter.

class TestLogListener {
  public TestLogListener( StreamWriter output_file ) {
    _output_file    = output_file;
  }
  public void errCallback( ServerContext sc, LogMessage lm ) {
    string type;
    string user;
    if( lm.Type==LogMessage.MessageType.ERROR ) {
      type = "ERROR";
    } else if( lm.Type==LogMessage.MessageType.WARNING ) {
      type = "WARNING";
    } else {
      type = "INVALID TYPE!!";
    }
    if( lm.User == null ) {
      user = "null";
    } else {
      user = lm.User;
    }
    _output_file.WriteLine( "Caught msg type=" + type +
      " user=" + user +
      " text=" + lm.Text );
    _output_file.Flush();
  }
  StreamWriter _output_file;
}

The following code registers the TestLogListener. Call this code from somewhere that has access to the ServerContext such as a class constructor or synchronization script.

// ServerContext serv_context;
TestLogListener etll = new TestLogListener(log_listener_file);
serv_context.ErrorListener += new LogCallback(etll.errCallback);
See also