Posts tagged listener
Notifying ADF applications of database changes – fast and lean using Database Query Result Change Notification – Part One4
In two articles, I will demonstrate how we can ensure that changes in the database – new, changed or deleted data – can rapidly be reflected in ADF based user interfaces running in browsers. This story involves a two-step push-mechanism: push from database to middle tier and push from middle tier to browser. For the former – discussed in part 1 – we will use the Oracle Database (and JDBC Driver) feature Query Result Change Notification and for the latter we leverage the Active Data Service in ADF Faces. At the end of this first part in the series, you will have relevant changes in the database reported to the ADF application, almost instantaneously. The push to the user interface does not yet happen. However, any request from browser to server will serve to also refresh the relevant UI components, thanks to the declarative ‘piggy back’ mechanism that the ADF Binding framework provides us with.
The approach demonstrated here will work with Oracle Database 10g or 11g – provided you are using the 11g version of the JDBC drivers. Any version of ADF 11g will do on the application side.
The application architecture under scrutiny in part one can be sketched as follows – with the More >
Back in 2004 when we started with the AMIS Technology Blog, my main objective was to record the things I infrequently do in order to have notes describing the steps to go through whenever I needed to do the thing again. I was own primary audience, so to say. Over the years, the articles have increased in complexity and sometimes in absurdity too. This one is back to that original intention. This article is not fancy at all – even though it touches upon a powerful (and underrated) subject: the Advanced Queue in the Oracle RDBMS. For the 1000s of database developers and architects that make frequent use of AQ, I am not going to add anything: this article merely shows the steps for creating an Advanced Queue, how to register a listener on the queue and how to publish a message on the queue. That is not fancy at all, obviously.
What is extremely fancy and powerful – and not nearly used enough – is the architectural pattern that AQ allows us to introduce. Queues are a key concept for achieving decoupling. Decoupling itself is like the holy grail of architects – because it allows agility and reuse. Through a Queue, a publisher (or discoverer) of events can make them available to More >