system というキューは、QAnywhere システム・メッセージを受信するための特別なキューです。システム・キューに送信されるメッセージには、次の 2 種類があります。
次の C# コードは、システム・メッセージと通常のメッセージを処理します。これは、オン・デマンド・ポリシーを使用している場合に便利です。この例では、メッセージ処理のためのアプリケーション論理を実装したメッセージ処理メソッド onMessage() と onSystemMessage() が、すでに定義されているとものとします。
// 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( queue-name, _receiveListener ); mgr.SetMessageListener( "system", _systemListener ); |
システム・メッセージ・ハンドラは、メッセージ・プロパティを参照して、プロパティに設定されている情報を確認します。メッセージ・タイプ・プロパティの値によって、メッセージがネットワーク・ステータス通知を保持しているかどうかを判定できます。たとえば、メッセージ
msg
に対して次の処理を実行できます。
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. } |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |