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. QAnywhere を初期化します。

    この手順は、非トランザクション志向メッセージングの場合と同じです。

    using iAnywhere.QAnywhere.Client;
  2. QATransactionalManager オブジェクトを作成します。

    たとえば、デフォルトの QATransactionalManager オブジェクトを作成するには、パラメータに NULL を指定して、CreateQATransactionalManager を呼び出します。

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

    QAManagerFactory クラスを参照してください。

    プロパティ・ファイルを使用して、カスタマイズされた QATransactionalManager オブジェクトを作成することもできます。次のように、CreateQATransactionalManager メソッドの引数としてプロパティ・ファイルを指定します。

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

    qa_mgr.props は、リモート・デバイス上に存在するプロパティ・ファイルの名前です。

  3. QAManager オブジェクトを初期化します。

    mgr.Open();

これで、メッセージを送信する準備ができました。次に、1 つのトランザクション内で 2 つのメッセージを送信する手順を示します。

♦  複数のメッセージを 1 つのトランザクションで送信するには、次の手順に従います。
  1. メッセージ・オブジェクトを初期化します。

    QATextMessage msg_1;
    QATextMessage msg_2;
  2. メッセージを送信します。

    次のコードでは、1 つのトランザクション内で 2 つのメッセージを送信しています。

    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();
          }
        }
      }
    }

    Commit メソッドは、現在のトランザクションをコミットして、新しいトランザクションを開始します。このメソッドは、PutMessage() メソッドと GetMessage() メソッドのすべての呼び出しをコミットします。

    注意

    最初のトランザクションは、open メソッドの呼び出しで開始されます。

参照