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-Nachrichten senden » Transaktionales Messaging implementieren

 

Transaktionales Messaging für .NET-Clients implementieren

♦  So erstellen Sie einen Transaktionsmanager
  1. Initialisieren Sie QAnywhere.

    Dieser Schritt ist derselbe wie beim nicht-transaktionalen Messaging.

    using iAnywhere.QAnywhere.Client;
  2. Erstellen Sie ein QATransactionalManager-Objekt.

    Beispiel: Um ein Standard-QATransactionalManager-Objekt zu erstellen, rufen Sie CreateQATransactionalManager mit "null" als Parameter auf:

    QAManager mgr;
    mgr = 
      QAManagerFactory.Instance.CreateQATransactionalManager( 
      null );

    Weitere Hinweise finden Sie unter QAManagerFactory-Klasse.

    Als Alternative können Sie ein QATransactionalManager-Objekt erstellen, das unter Verwendung einer Eigenschaftsdatei angepasst wird. Die Eigenschaftsdatei wird in der CreateQATransactionalManager-Methode angegeben:

    mgr = 
      QAManagerFactory.Instance.CreateQATransactionalManager( 
      "qa_mgr.props" );

    Dabei gilt: qa_mgr.props ist der Name der Eigenschaftsdatei auf dem entfernten Gerät.

  3. Initialisieren Sie das QAManager-Objekt.

    mgr.Open();

Sie sind nun bereit, Nachrichten zu versenden. Die folgende Prozedur versendet zwei Nachrichten in einer einzigen Transaktion.

♦  So senden Sie mehrere Nachrichten in einer einzigen Transaktion
  1. Initialisieren Sie Nachrichtenobjekte.

    QATextMessage msg_1;
    QATextMessage msg_2;
  2. Versenden Sie die Nachrichten.

    Der folgende Code versendet zwei Nachrichten in einer einzigen Transaktion:

    msg_1 = mgr.CreateTextMessage();
    if( msg_1 != null ) {
      msg_2 = mgr.CreateTextMessage();
      if( msg_2 != null ) {
        if( !mgr.PutMessage( "jms_1\\queue_name", msg_1 ) ) {
          // Display message using mgr.GetLastErrorMsg().
        } else {
          if( !mgr.PutMessage( "jms_1\\queue_name", msg_2 ) ) {
            // Display message using mgr.GetLastErrorMsg().
          } else {
            mgr.Commit();
          }
        }
      }
    }

    Die Commit-Methode schreibt die aktuelle Transaktion fest und beginnt eine neue Transaktion. Diese Methode schreibt alle Aufrufe von PutMessage()- und GetMessage()-Methoden fest.

    Hinweis

    Die erste Transaktion beginnt mit dem Aufruf der open-Methode.

Siehe auch