保証されたメッセージ配信システムでは、次のことが保証されます。
レプリケートされたすべてのオペレーションが正しい順序で適用される。
レプリケートされたオペレーションが欠落しない。
レプリケートされたオペレーションが二重に適用されない。
保証されたメッセージ配信システムでは、次の情報が使用されます。
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 回だけ適用
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |