Book Image

Oracle Service Bus 11g Development Cookbook

Book Image

Oracle Service Bus 11g Development Cookbook

Overview of this book

Oracle Service Bus 11g is a scalable SOA integration platform that delivers an efficient, standards-based infrastructure for high-volume, mission critical SOA environments. It is designed to connect, mediate, and manage interactions between heterogeneous services, legacy applications, packaged solutions and multiple Enterprise Service Bus (ESB) instances across an enterprise-wide service network. Oracle Service Bus is a core component in the Oracle SOA Suite as a backbone for SOA messaging. This practical cookbook shows you how to develop service and message-oriented (integration) solutions on the Oracle Service Bus 11g. Packed with over 80 task-based and immediately reusable recipes, this book starts by showing you how to create a basic OSB service and work efficiently and effectively with OSB. The book then dives into topics such as messaging with JMS transport, using EJB and JEJB transport, HTTP transport and Poller transports, communicating with the database, communicating with SOA Suite and Reliable Message Processing amongst others. The last two chapters discuss how to achieve message and transport-level security on the OSB.
Table of Contents (19 chapters)
Oracle Service Bus 11g Development Cookbook
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Using the AQ adapter to consume messages from the database


In this recipe, we will configure an inbound AQ adapter, so that it can be used to consume messages from a queue implemented in the database by Oracle AQ. The adapter will be used from a proxy service as shown in the following screenshot:

The queue EVENT_QUEUE that we will use has been set up with the OSB Cookbook standard environment using the following SQL and PL/SQL code:

--creating the object type, which defines payload 
CREATE OR REPLACE TYPE event_typ as OBJECT
(
   id NUMBER(19)
   , event_type VARCHAR2(30)
   , event_time TIMESTAMP
)

-- creating queue table
BEGIN
  sys.dbms_aqadm.create_queue_table(
           queue_table => 'EVENT_QUEUE_T',
           queue_payload_type => 'OSB_COOKBOOK.EVENT_TYP',
           sort_list => 'ENQ_TIME',
           compatible => '10.0.0',
           primary_instance => 0,
           secondary_instance => 0,
           storage_clause => 'tablespace USERS pctfree 10 initrans...