テーブルのローに挿入、削除、または更新が行われるたびに、ローに対してサブスクライブされたユーザにメッセージが作成されます。また、更新の場合はサブスクリプション式が変更されることがあるため、あるサブスクライバには削除文、別のサブスクライバには更新文、また別のサブスクライバには挿入文が送信されます。
どのサブスクライバにどのオペレーションを送信するかを決定するタスクは、データベース・サーバと Message Agent (dbremote) が分担します。
データベース・サーバは、パブリケーションを処理します。データベース・サーバによるパブリケーションの処理を参照してください。
「Message Agent (dbremote)」 は、サブスクリプションを処理します。
Message Agent (dbremote) は、トランザクション・ログから評価済みのサブスクリプション式またはサブスクリプション・カラムへのエントリを読み込み、更新前の値と更新後の値をパブリケーションの個々のサブスクライバのサブスクリプション値と照合します。Message Agent (dbremote) は、このようにして適切なオペレーションを個々のサブスクライバに送信します。
サブスクライバの数が非常に多くてもデータベース・サーバのパフォーマンスは低下しませんが、Message Agent (dbremote) のパフォーマンスは低下する場合があります。サブスクリプション値を大量のサブスクリプション値と照合する作業と、メッセージを送信する作業は、大きな負荷となる場合があります。
メッセージ受信のタスク
メッセージ受信時のパフォーマンス向上
メッセージ送信のタスク
メッセージ送信時のパフォーマンス向上
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |