JMS in Oracle 10g Application Server

Out of the box, Oracle 10g AS comes with a single, built-in provider for JMS, Oracle 10g AS JMS. Oracle 10g AS JMS complies with version 1.0.2b of the JMS specification, the latest version of JMS being 1.1. On top of the standard provider, you can configure additional providers for Oracle JMS (OJMS) and other, third-party, messaging solutions. OJMS is the JMS-based interface to the Oracle Streams Advanced Queuing (AQ) feature of the Oracle database. It's important not to confuse Oracle 10g AS JMS with Oracle JMS. Oracle 10g AS JMS is an entirely in-container solution, whereas OJMS is based on the AQ technology and relies on the Oracle database. From a high-level the basic structure of a JMS-based application running on Oracle 10g looks like Figure 6-1.

image from book
Figure 6-1: High-level overview of JMS in Oracle 10g AS

As you can see from the diagram, whether they're Enterprise JavaBeans (EJB), JSP, Servlet, or Standalone, clients interact with the messaging providers through Oracle 10g AS via the JMS API. The default provider, Oracle 10g AS JMS, is mapped to the java:comp/env/jms namespace within the Java Naming and Directory Interface (JNDI), while any external providers, linked in through the Resource Provider subsystem are mapped to the java:comp/resource namespace.

The Resource Provider Model

Oracle 10g AS provides a flexible way to plug additional resources into the container. In this context, resources aren't just limited to JMS connection factories, but also JDBC data sources, JavaMail sessions, and URL connection factories. The basis of the Resource Provider is the ResourceProvider interface. There's no need for every single JMS provider to create its own implementation of the ResourceProvider interface. Instead, you can use the ContextScanningResourceProvider class shipped with 10g to integrate any JMS provider that maintains its own JNDI tree. The ContextScanningResourceProvider class provides a useful mechanism for binding resources that exist in an external naming context into the local context. Using this mechanism, you can bind the JNDI resources stored in any message provider's context into your application's context. Which is to say that if you're running a third-party JMS provider such as SwiftMQ, you can bind the JMS resources from the SwiftMQ JNDI tree directly into the Oracle 10g AS tree using ContextScanningResourceProvider . In this way you simply configure the ResourceProvider and then configure SwiftMQ as normalthe ContextScanningResourceProvider takes care of the JNDI bindings in Oracle 10g AS for you. The usage of ContextScanningResourceProvider is covered in more detail later in the "Configuring Third-Party JMS" section.



Oracle Application Server 10g. J2EE Deployment and Administration
Oracle Application Server 10g: J2EE Deployment and Administration
ISBN: 1590592352
EAN: 2147483647
Year: 2004
Pages: 150

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net