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) » QAnywhere » QAnywhere-Clientanwendungen schreiben » QAnywhere-Nachrichtenadressen

 

Systemwarteschlange

Eine spezielle Warteschlange namens system empfängt QAnywhere-Systemmeldungen. Zwei Arten von Nachrichten werden an die Systemwarteschlange gesendet:

Beispiel

Der nachstehende C#-Programmcode verarbeitet Systemmeldungen und normale Nachrichten und kann nützlich sein, wenn Sie die Richtlinie ondemand verwenden. Bei diesem Beispiel wird davon ausgegangen, dass Sie die Message Handling-Methoden onMessage() und onSystemMessage() festgelegt haben, die die Anwendungslogik für die Verarbeitung der Nachrichten implementieren.

// Declare the message listener and system listener.
private QAManager.MessageListener _receiveListener;
private QAManager.MessageListener _systemListener;
...

// Create a MessageListener that uses the appropriate message handlers.
_receiveListener = new QAManager.MessageListener( onMessage );
_systemListener = new QAManager.MessageListener( onSystemMessage );
...

// Register the message handler.
mgr.SetMessageListener( Warteschlangenname, _receiveListener );
mgr.SetMessageListener( "system", _systemListener );

Der System-Message-Handler kann die Nachrichteneigenschaften abfragen, um die enthaltenen Informationen zu identifizieren. Die Nachrichtentyp-Eigenschaft zeigt an, ob die Nachricht eine Netzwerkstatus-Benachrichtigung enthält. Für eine Nachricht msg können Sie beispielsweise folgende Verarbeitung durchführen:

msg_type = (MessageType)msg.GetIntProperty( MessageProperties.MSG_TYPE );
if( msg_type == MessageType.NETWORK_STATUS_NOTIFICATION ) {
  // Process a network status change.
  mgr.TriggerSendReceive( );
} else if ( msg_type == MessageType.PUSH_NOTIFICATION ) {
  // Process a push notification.
  mgr.TriggerSendReceive( );
} else if ( msg_type == MessageType.REGULAR ) {
  // This message type should not be received on the
  // system queue. Take appropriate action here.
}

Netzwerkstatus-Benachrichtigungen
Benachrichtigungen der Push-Benachrichtigung