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

SQL Anywhere 12.0.0 (Deutsch) » QAnywhere » QAnywhere-Clientanwendungen schreiben » QAnywhere-Nachrichten empfangen

 

Nachrichten synchron empfangen

Um eine Nachricht synchron zu empfangen, fragt Ihre Anwendung explizit die Warteschlange auf Nachrichten ab. Sie fragt möglicherweise die Warteschlange regelmäßig ab oder wenn ein Benutzer eine bestimmte Aktion durchführt, wie z.B. durch die Schaltfläche "Aktualisieren".

 ♦  So empfangen Sie Nachrichten synchron (.NET)
  1. Deklarieren Sie Nachrichtenobjekte zur Aufnahme der eintreffenden Nachrichten.

    QAMessage msg;
    QATextMessage text_msg;
  2. Fragen Sie die Nachrichtenwarteschlange auf empfangene Nachrichten ab:

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

    Siehe GetMessageNoWait-Methode.

 ♦  So empfangen Sie Nachrichten synchron (C++)
  1. Deklarieren Sie Nachrichtenobjekte zur Aufnahme der eintreffenden Nachrichten.

    QAMessage * msg;
    QATextMessage * text_msg;
  2. Fragen Sie die Nachrichtenwarteschlange auf empfangene Nachrichten ab:

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

    Siehe getMessageNoWait-Methode.

 ♦  So empfangen Sie Nachrichten synchron (Java)
  1. Deklarieren Sie Nachrichtenobjekte zur Aufnahme der eintreffenden Nachrichten.

    QAMessage msg;
    QATextMessage text_message;
  2. Fragen Sie die Nachrichtenwarteschlange auf empfangene Nachrichten ab:



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

    Siehe getMessageNoWait-Methode.

 ♦  So empfangen Sie Nachrichten synchron (SQL)
  1. Deklarieren Sie ein Objekt, das die Nachricht-ID aufnehmen soll.

    begin
        declare @msgid varchar(128);
    
  2. Fragen Sie die Nachrichtenwarteschlange auf empfangene Nachrichten ab:

        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

    Siehe: