The Publish/Subscribe Model for Oracle Replication is a more
flexible method for replication than was the Oracle7 snapshot
replication.
Oracle advanced queuing has initiated a new replication model
dubbed "publish/subscribe" that differ from the traditional
replication model a very important way.
Replication Independence
The sender of the replicated data (called the "publisher"),
does not have to know anything about what's-up on the
receiver-side (called the "subscriber").
With replication independence we no longer have
to complex feed and verify procedures and the dbms_aq package
allows some interesting replication functions:
listen Procedure
The new dbms_aq.listen procedure allows
you to "listen" for incoming messages (rows), just as-if you
were the registered subscriber. The listen procedure has a
newer input parm method, agent_list) which is a Oracle
abstract data type (ADT):
agent_list IN
AQ$_AGENT_LIST_T,
wait IN BINARY_INTEGER DEFAULT DBMS_AQ.FOREVER,
agent OUT SYS.AQ$_AGENT);
According to
Steve Feuerstein, the agent_list input "is an index-by table
defined in DBMS_AQ as follows:
TYPE
DBMS_AQ.AQ$_AGENT_LIST_T
IS TABLE of
AQ$_AGENT
INDEXED BY BINARY_INTEGER;"
Also, because
agent_list is a "index-by" PL/SQL internal array table, calling
the listen procedure requires some up-front coding. From
Steve Feuerstein's great book we see an example invocation
of dbms_aq.listen:
DBMS_AQ.LISTEN (aqlisten.tell_us, 0, tell_me);
Also see the related procedure
dbms_alert.waitany procedure.
If you want to understand the internals of Oracle
replications, I recommend these tight-focus reference books:
Also see: