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

SQL Anywhere 12.0.1 » SQL Remote » SQL Remote システムの管理

 

保証されたメッセージ配信システム

保証されたメッセージ配信システムでは、次のことが保証されます。

  • レプリケートされたすべてのオペレーションが正しい順序で適用される。

  • レプリケートされたオペレーションが欠落しない。

  • レプリケートされたオペレーションが二重に適用されない。

保証されたメッセージ配信システムでは、次の情報が使用されます。

  • SYSREMOTEUSER システムテーブルで管理されているステータス情報   このテーブルには各サブスクライバーに対応したローがあり、そこにはそのサブスクライバーが送受信するメッセージのステータス情報が示されています。次に例を示します。

    • 統合データベースでは、SYSREMOTEUSER システムテーブルに各リモートユーザーに対応したローがある。

    • 各リモートデータベースでは、SYSREMOTEUSER システムテーブルに統合データベースの情報を含むローが 1 つある。

    SYSREMOTEUSER システムテーブルは、SQL Remote Message Agent (dbremote) が管理しています。

    サブスクライバーデータベースでは、SQL Remote Message Agent (dbremote) はパブリッシャーデータベースに確認メッセージを送信し、サブスクリプションの最後で SYSREMOTEUSER システムテーブルが正しく管理されていることを確認します。

  • メッセージのヘッダー内の情報   SQL Remote Message Agent (dbremote) は、メッセージ内のヘッダー情報を読み込み、この情報を使用して SYSREMOTEUSER システムテーブルを更新します。各メッセージのヘッダーには、次の情報が含まれています。

    • メッセージの resend_count   データベースがメッセージを失った受信の回数を追跡するカウンター。

      次の例では、resend_count は 1 です。

      Current message's header: (「1」-0000942712-0001119170-0)

    • 前のメッセージの最後の COMMIT のトランザクションログオフセット   次の例では、前のメッセージの最後のコミットのトランザクションログオフセットは、0000942712 です。
      Previous message's header:(0-0000923357-「0000942712」-0)
      Current message's header: (0-「0000942712」-0001119170-0)

    • 現在のメッセージの最後の COMMIT のトランザクションログオフセット   次の例では、現在のメッセージの最後のコミットは、0001119170 です。
      Current message's header: (0-0000942712-「0001119170」-0)

      トランザクションがいくつかのメッセージにわたっている場合は、両方のトランザクションログオフセットは、最後のメッセージに COMMIT が含まれるまで同じになることがあります。

      次の例では、4 番目のメッセージまで COMMIT は発生していません。

      (0-「0000942712」-「0000942712」-0)
      (0-「0000942712」-「0000942712」-1)
      (0-「0000942712」-「0000942712」-2)
      (0-0000942712-0001119170-3)

    • シーケンス番号   トランザクションがいくつかのメッセージにわたっている場合は、メッセージを正しい順序で並べるために、このシーケンス番号が使用されます。

      シーケンス番号 0 は、次のことを示す場合があります。

      • トランザクションログオフセットが異なる場合、メッセージはマルチパートのメッセージの一部ではない。

        次の例では、メッセージはマルチパートのメッセージの一部ではありません。

        (0-0000923200-0000923357-「0」)
        (0-0000923357-0000942712-「0」)
        
      • トランザクションログオフセットが同一の場合、メッセージはマルチパートのメッセージの最初のメッセージである。

        次の例では、最初のメッセージはマルチパートのメッセージの一部です。

        (0-0000942712-0000942712-「0」)
        (0-0000942712-「0000942712」-「1」)
        (0-0000942712-0000942712-「2」)
        (0-0000942712-0001119170-「3」)

 参照

操作の順序
消失または壊れたメッセージ
メッセージは 1 回だけ適用