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

SQL Anywhere 11.0.1 (日本語) » QAnywhere » QAnywhere クライアント・アプリケーションの作成 » QAnywhere メッセージの受信

 

同期的なメッセージ受信

メッセージを同期的に受信するには、アプリケーションから明示的にキューをポーリングしてメッセージの有無を確認します。キューのポーリングは、定期的に、またはユーザが特定のアクション ([再表示] ボタンのクリックなど) を開始したときに実行できます。

♦  同期的にメッセージを受信するには、次の手順に従います (.NET の場合)。
  1. 着信メッセージを格納するメッセージ・オブジェクトを宣言します。

    QAMessage msg;
    QATextMessage text_msg;
  2. メッセージ・キューをポーリングして、メッセージを収集します。

    for(;;) {
        msg = mgr.GetMessageNoWait("queue-name");
        if( msg == null ) {
          break;
        }
        addMessage( msg );
      }

    GetMessageNoWait メソッドを参照してください。

♦  同期的にメッセージを受信するには、次の手順に従います (C++ の場合)。
  1. 着信メッセージを格納するメッセージ・オブジェクトを宣言します。

    QAMessage * msg;
    QATextMessage * text_msg;
  2. メッセージ・キューをポーリングして、メッセージを収集します。

    for( ;; ) {
        msg = mgr->getMessageNoWait( "queue-name" );
        if( msg == NULL ) {
          break;
        }
        addMessage(msg);
      }

    getMessageNoWait 関数を参照してください。

♦  同期的にメッセージを受信するには、次の手順に従います (Java の場合)。
  1. 着信メッセージを格納するメッセージ・オブジェクトを宣言します。

    QAMessage msg;
    QATextMessage text_message;
  2. メッセージ・キューをポーリングして、メッセージを収集します。

    if(mgr.start()) {
      for ( ;; ) {
        msg = mgr.getMessageNoWait("queue-name");
        if ( msg == null ) {
          break;
        }
        addMessage(msg);
      }
      mgr.stop();
    }

    getMessageNoWait メソッドを参照してください。

♦  同期的にメッセージを受信するには、次の手順に従います (SQL の場合)。
  1. メッセージ ID を格納するオブジェクトを宣言します。

    begin
        declare @msgid varchar(128);
    
  2. メッセージ・キューをポーリングして、メッセージを収集します。

        loop
            set @msgid = ml_qa_getmessagenowait( 'myaddress' );
            if @msgid is null then leave end if;
            message 'a message with content ' || ml_qa_gettextcontent( @msgid ) || ' has been received';
        end loop;
        commit;
    end

    次の項を参照してください。