Database Reference
In-Depth Information
The BAM and JMS connection
So, how can we set up JMS as a BAM data channel? Before creating any sensor, please
proceed to the SOA Domain Admin console and create Connection Factory and a new
Queue ( BAMSensorQueue ) in SOAJMSModule (in WLS Domain Structure, go to Ser-
vices | Messaging | JMS Modules . Then, create a new JMS System Module Resource, set
the JNDI name as jms/BAMConnectionFactory , and so on). To create a new sensor
for its actions, set Publish Type as JMS Queue . The steps for creating a sensor variable
are similar to the previous example. After deployment and testing using either the SoapUI
or EM console, you will find the message in the previously configured JMS. Now, you can
return to the BAM Architect and create a new object according to your input (it could be
the same as the previous one for test purposes), but now select Enterprise Message
Sources from the list on the top. Set the correct values in the EMS section: JMS Message
Type as Text , Operation as Insert (actually, you can perform all the CRUD operations on
your objects); then, set the JNDI and queue names as you created them in WLS.
For more administrative details that are not part of the SOA patterns, please refer to ht-
tp://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bam_ent_msg_sources.htm . Here,
you will find that Oracle Messaging is supported, and the sources could be JMS providers
from IBM, Apache ActiveMQ, and Tibco.
Summarizing all of the preceding points, we can see three main advantages of this con-
nectivity method when compared to the previous one:
• Vendor neutrality (as long as we can use JMS)
• Complete decoupling between the provider and consumer, allowing BAM to bal-
ance its processing workload more effectively
• Asynchronous message exchange allows us to use relatively big objects
Advanced XML formatting in EMS will allow you to map virtually any JMS payload to
your data object, but here we would like to advise you to avoid excessive transformations
and even simplify (flatten or remove the hierarchy) your messages for better performance
and reports aggregation. Really, in most of the cases, you need just a bunch of fields to sat-
isfy the imaginative taste of your managers. Surely, you can also log all the failed mes-
sages. If an asynchronous exchange pattern is not suitable for your needs, you can employ
the WebService API.
Search WWH ::




Custom Search