Each time a row in a table is inserted, deleted, or updated, a message is created for those users subscribed to the row. In addition, an update may cause the subscription expression to change, so that the statement is sent to some subscribers as a delete, some as an update, and some as an insert.
The task of determining who gets what is divided between the database server and the Message Agent (dbremote).
The database server handles publications. See The database server handles publications.
The Message Agent (dbremote) handles subscriptions.
The Message Agent (dbremote) reads the evaluated subscription expressions or subscription column entries from the transaction log, and matches the before and after values against the subscription value for each subscriber to the publication. In this way, the Message Agent (dbremote) sends the correct operations to each subscriber.
While a large number of subscribers do not have any effect on database server performance, they can affect Message Agent (dbremote) performance. The work in matching subscription values against large numbers of subscription values, and the work in sending the messages, can be demanding.
|Discuss this page in DocCommentXchange.
Send feedback about this page using email.
|Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1|