In preparation for our Oracle Open World session ‘Xenogenetics for PL/SQ – Infusing with Java Best Practices and Design Patterns’ – I have been doing a little work on Advanced Queuing in the Oracle RDBMS, as well as on Java Stored Procedures. The objective of this presentation is to bring best practices, design patterns as well as new functionality to the world of PL/SQL from other worlds, such as Java. Interaction between database applications and the rest of the world is an important part of that. And such interaction, especially when we have a need for decoupled interaction, which we frequently should have, Advanced Queues will be used at the database end to support that interaction.
The concept of queuing – and more generally: messaging – has its Java counterpart in JMS, the Java Message Service. The question I then asked myself is: how exactly can I map AQ to JMS and how can I link the two worlds. How can I expose the AQ Queue or Topic in the RDBMS as a JMS Queue or Topic? And how can I consume messages from JMS into the database, possibly to AQ?
One of my reasons for making the connection between AQ and JMS has to do with another presentation at OOW I will deliver, introducing Complex Event Processing. The database – for example database triggers – is an excellent source for events. And one fine way to database applications to publish their events is through AQ. However, Oracle CEP does not directly tie into AQ, but it does interact with JMS Queues and Topics as event source. By linking AQ to JMS, I can indirectly link AQ to CEP.