|
Oracle® Procedural Gateway and Tools for IBM MQSeries Installation and User's Guide
Release 9.2.0.1.0 for UNIX Part No. A96196-01 |
|
This chapter provides an overview of the Heterogeneous Message Propagation option. Heterogenous Services is a component of the Oracle9i server. You can also use the Oracle Messaging Gateway, which is included in the RDBMS bundle.
The following topics are included:
Heterogeneous Message Propagation combines Oracle Advanced Queuing (AQ) with a gateway for message queuing systems in order to propagate messages between queues owned by Oracle Advanced Queuing (AQ) and queues owned by non-Oracle message queuing systems.
Oracle Advanced Queuing provides message queuing as an integral part of the OracleÒ database server. With features that are tightly integrated with the database server, Oracle AQ enables application developers to use a messaging paradigm for integrating applications. The Oracle Open GatewaysÒ for Message Queuing Systems provide access from the Oracle database server to non-Oracle message queuing systems such as IBM MQSeries. Using these gateways, Oracle applications can directly access (using PL/SQL) the messaging facilities of various message queuing systems while tightly integrating the non-Oracle messaging system with the Oracle database server transactional and typing model.
Heterogeneous Message Propagation will allow applications that are enabled with Oracle AQ to integrate with non-Oracle message queuing systems in an asynchronous, reliable, and efficient manner. Both sides will be able to deliver or consume the messages from their native message queues while the propagation will take care of distributing the messages between the two different message queuing systems.
Oracle Advanced Queuing (AQ) propagation is controlled through a set of well-defined operational and administrative interfaces. Heterogeneous Message Propagation will be integrated with these interfaces and will provide users with a unified Application Programming Interface (API) for both Oracle AQ and heterogeneous propagation.
On the Oracle integrating server side, Oracle Advanced Queuing (AQ) and heterogeneous outbound propagation share the same operational API. To the application programmer, using the operational API of Oracle AQ for enqueuing messages should be no different than using a non-Oracle queue. Enqueued messages may be propagated to the queue of an Oracle (AQ) or non-Oracle message queuing system.
Similarly, the user should experience be no difference in administering heterogeneous outbound message propagation in a non-Oracle message queuing system compared with doing so in an Oracle Advanced Queuing (AQ) environment.
On the Oracle integrating server side, both Oracle AQ and heterogeneous inbound propagation share the same operational API. To the application programmer, using the operational API of Oracle AQ for dequeuing messages should be no different whether the messages were propagated from an Oracle Advanced Queuing queue or a non-Oracle queue.
This section will define a model for heterogeneous outbound propagation and will describe how the various concepts that are described above are integrated with Oracle Advanced Queuing (AQ) or will describe where those concepts differ from an Oracle AQ user's perspective.
Heterogeneous outbound propagation of messages is controlled by the Oracle AQ user at three levels:
at the message level, by specifying (upon enqueuing the message) the recipient(s) to whom the message should be propagated.
at the queue level, by specifying one or more subscribers to whom the entered messages should be propagated.
at the administrative level, by scheduling propagation for an Oracle AQ source queue and a non-Oracle AQ destination.
A heterogeneous outbound propagation process analyses a scheduling table at regular intervals. This heterogeneous outbound propagation process determines which Oracle AQ queues (that are scheduled for outbound propagation) need to be serviced. The heterogeneous outbound propagation process also determines which of the messages must be propagated to a non-Oracle destination.
The propagation process removes any messages from the Oracle AQ source queue as specified in the schedule. The messages are retrieved using the regular Oracle AQ dequeue() interface call, and the messages are forwarded to the non-Oracle destination queue using a gateway for message queuing.
After being propagated, the messages in the destination queue are retrievable by non-Oracle applications using the native API of the non-Oracle message queuing system. The actual message propagation from an Oracle Advanced Queuing (AQ) source queue is transparent to these applications.
Refer to Figure 9-1, which shows all the components involved with heterogeneous outbound propagation. Each of the listed components will be described in more detail in the next sections.
Figure 9-1 Heterogeneous Outbound Message Propagation
Although heterogeneous inbound propagation has no Oracle AQ counterpart, the objective is to provide a model that (for Oracle AQ applications and administrators) looks similar to homogeneous propagation.
This section will define a model for heterogeneous inbound propagation and will describe how it integrates with Oracle AQ or where it differs from an Oracle AQ application's perspective.
In homogeneous Oracle Advanced Queuing (AQ) propagation, inbound propagation does not exist. During homogeneous propagation, an Oracle integrating server only "pushes" messages to destinations at other Oracle servers. In this sense, an Oracle integrating server behaves in a manner that is very similar to heterogeneous outbound propagation. However, in homogeneous propagation, an Oracle server never "pulls" messages from source queues at other Oracle servers.
Heterogeneous outbound propagation is similar to homogeneous propagation in the sense that messages are "pushed" to destinations at other Oracle servers. With heterogeneous inbound propagation, however, messages are ÒpulledÓ from non-Oracle source queues when they are scheduled to be propagated to an Oracle AQ destination queue. The inbound propagation process on an Oracle integrating server acts as a propagation proxy for the non-Oracle message queuing system.
Heterogeneous inbound propagation of messages is controlled from the Oracle side by the Oracle AQ administrator using an administrative package. The package allows the user to schedule and to unschedule inbound propagation for a non-Oracle source queue and an Oracle AQ destination. The scheduling information is maintained in an internal scheduling table.
A heterogeneous inbound propagation process analyses the scheduling table at regular intervals and determines which non-Oracle AQ queues that are scheduled for inbound propagation need to be serviced and need to have their message propagated to an Oracle AQ destination.
The propagation process removes messages from the pickup queue as specified in the schedule. The messages are retrieved (using a gateway for message queuing systems) and are forwarded to the target Oracle AQ queue on the local Oracle integrating server (using the regular Oracle AQ operational enqueue() interface call). Unlike heterogeneous outbound message propagation, with inbound propagation there is no "fan-out" to multiple Oracle AQ consumer queues. Each message from a non-Oracle source queue is sent to one, and only one, Oracle AQ destination queue.
After being propagated, the messages in the destination queue are retrievable by Oracle applications using the regular Oracle AQ dequeue() interface call. The actual message propagation from a non-Oracle source queue is transparent to these applications.
Refer to Figure 9-2, which shows all the components involved with heterogeneous inbound propagation. Each of the listed components is described in more detail in the next chapters.
Figure 9-2 Heterogeneous Inbound Message Propagation
|
![]() Copyright © 2001, 2002 Oracle Corporation All rights reserved |
|