SlideShare a Scribd company logo
Samples are provided as-is with no warranty Page 1 of 10
BPM 11g Samples
bpm-int-101-JMS-integration
Copyright  2011 Oracle Corporation
All Rights Reserved
Samples are provided as-is with no warranty Page 2 of 10
Contents
1. Introduction............................................................................................................4
2. Environment Requirements..................................................................................5
3. Installation and Configuration .............................................................................6
3.1 JMS Queue on the SOA/BPM Server ....................................................................................6
3.2 Update the UIConnectionName in the Adapter JCA Configuration File (Optional) .............6
3.3 Deploy the Two Composite Projects......................................................................................7
4. Sample Overview ...................................................................................................8
5. Sample Scenarios ...................................................................................................9
5.1 Start Process Using Process “Start” Message ........................................................................9
5.2 Start Process Using an “Event” Message...............................................................................9
6. Running the Samples...........................................................................................10
Samples are provided as-is with no warranty Page 3 of 10
History
Date Version Change Reference
Nov-06-2011 1.0 First release of sample
Samples are provided as-is with no warranty Page 4 of 10
1. Introduction
A frequently asked question is whether BPM processes can be started by the arrival of a JMS
message on a Topic or Queue. The short answer is yes, and this sample provides an example of a
BPM process that is started via a JMS message in two common scenarios:
1. The arrival of a message that matches the WSDL of the Service endpoint for the BPM
process. In this case the XML message is exactly the same as would be delivered in the Body
of a SOAP/HTTP message. The root element is typically in the target namespace of the
process, and named after the name of the operation that starts the process. This scenario is
essentially a Web Service call using JMS as the transport.
2. The arrival of a message that is just the payload portion of the message that would be used in
the first scenario, typically a message that describes a business event. This scenario is more
like publishing events over JMS, rather than invoking a Web Service operation over JMS.
In both cases the BPM process is insulated from the type of transport used to deliver messages that
start instances of the process. The process design only specifies the “shape” of the message. The
composite is configured with adapters that are the sources of those messages. In cases where the
“shape” of the adapter message does not match that of the process, a Mediator can be used to
transform the message into the correct “shape”
While the primary objective of this sample is to show how to start processes from JMS messages,
the sample also illustrates:
 Use of configuration plans to override Destination JNDI names.
 Use of Service Properties to set and get JMS Messages Properties.
 Use of JMS Message Selectors to use a shared Destination for multiple message types.
Samples are provided as-is with no warranty Page 5 of 10
2. Environment Requirements
This sample requires JDeveloper version 11.1.1.5 (or higher) with the SOA Composite Editor and
BPM Studio extensions installed. A standalone server with BPM Suite 11.1.1.5 (or higher) and a
domain configured with BPM Suite is required for deploying and running the sample.
Note: This sample will run on 11.1.1.5 or 11.1.1.5 Feature Pack (11.1.1.5-FP). Some of the screen
shots in this document were created using 11.1.1.5-FP, however there are no 11.1.1.5-FP specific
features used in the sample. If you’re using 11.1.1.5-FP, you will be prompted to upgrade the
project when opening it. You will not need to make any other changes to run the sample.
The sample requires a single JMS Queue deployed to the SOA/BPM server to illustrate how BPM
Process can be started via JMS Messages. The JNDI destination name used by the JMS adapters
is jms/sampleQueue. However that value can be overridden by updating the configuration plan
provided in both the sending (BPMJmsSend) and receiving (BPMJmsReceive) projects.
Samples are provided as-is with no warranty Page 6 of 10
3. Installation and Configuration
The sample is provided as a zipped JDeveloper application. The application can be unzipped into
any location where the path name does not include spaces. To open the application, use the
“Application Open” menu and locate the file: bpm-int-101-JMS-integration.jws.
The application contains 3 projects:
 BpmJmsSend – BPM project that generates the JMS messages that start instances of a
process defined in the BpmJmsReceive project.
 BpmJmsReceive – Contains the BPM process that is started by the arrival of messages on
a JMS Queue.
 Resources – A generic project that contains documentation and ANT build targets to
package this sample.
3.1 JMS Queue on the SOA/BPM Server
Then sending and receiving BPM processes use the same JMS Queue. The Destination JNDI
name is defined in the composite.xml file to make it possible to override the JNDI name using a
configuration plan. A sample configuration plan is provided in each project as a sample of how to
override the name at deployment time. The options for configuring JMS are:
 Create a Queue with the Destination JNDI name jms/sampleQueue in your SOA/BPM
domain
 or …
 Update the configuration plan in each project (BpmJmsSend_cfgplan.xml,
BpmJmsReceive_cfgplan.xml) to specify the JNDI name of a Queue that already exists in
your SOA/BPM domain. The example configuration plans are configured to override the
default JNDI name with the value jms/q1.
Note: The connection factory name configured in the adapter configuration is eis/wls/Queue,
which is one of the default factories pre-configured during creation of a SOA/BPM domain. So
the connection factory name does not need to be changed.
3.2 Update the UIConnectionName in the Adapter JCA Configuration File (Optional)
The UIConnectionName is used whenever the JMS Adapter wizard is run. It specifies the name of
the application server where the JMS Destinations can be browsed. If you intend to make changes
to the JMS adapter by running the wizard, you will have to update this value to match the name of
an application server connection in your environment. However you do not need to change this
value to run the sample, or to update the Destination via configuration plan.
Samples are provided as-is with no warranty Page 7 of 10
3.3 Deploy the Two Composite Projects
Use JDeveloper to deploy both composites:
 BpmJmsReceive
 BpmJmsSend
If you have updated the configuration plans to reference a Queue that already exists on you
BPM/SOA server, then be sure to select the configuration plan when deploying the projects. If
you created a Queue with the JNDI name jms/sampleQueue, then do not specify a configuration
plan.
Samples are provided as-is with no warranty Page 8 of 10
4. Sample Overview
As noted in the introduction, a key goal of the sample is to show how processes can be started via
the receipt of JMS messages. The sample is designed to have one BPM process produce (send)
the JMS messages that then create instances of another BPM process in a separate project
(composite).
The “sending” composite. This composite contains a single BPM process that sends JMS
messages to the receiving composite via JMS adapters.
The “receiving” composite. This composite contains the BPM process where instances are
created on receipt of JMS messages. Note that a Mediator is used to transform JMS messages to
match the shape of the Message Start Event in the BPM process.
A single JMS Destination is used for communication between the processes. A message selector
is used in the receiving JMS adapter to distinguish between the two message types (i.e.
startProcess messages and NewOrderEvent message). In the sending process Service Properties
are used to set the “msgType” JMS Message property used in the message selector.
Samples are provided as-is with no warranty Page 9 of 10
5. Sample Scenarios
The sending process (BpmJmsSend) produces two JMS messages via Service Activities that are
bound to outbound JMS adapters. Each message “send” represents one of the two scenarios
described in the introduction.
5.1 Start Process Using Process “Start” Message
In this scenario the sending process send a JMS message that has the same XML schema type as
the operation defined in the target process Message Start Event (i.e. the operation defined in the
process WSDL). Since the sender must have the remote service’s WSDL, this is a scenario that’s
often referred to as Web Service invocation over JMS.
5.2 Start Process Using an “Event” Message
In this scenario the sending process does not have the WSDL of the target service. It just has an
XML schema that represents a Business Event (e.g. NewOrderEvent). The receiving composite
includes a Mediator that will create the target process start message via transformation of the
incoming JMS message.
Note that this is similar to the use of EDN within SOA. However in this case the processes are
directly using JMS to send and receive messages.
Samples are provided as-is with no warranty Page 10 of 10
6. Running the Samples
The sending composite (BpmJmsSend) includes a BPM process that exposes a web service
endpoint. That endpoint defines two parameters that are then used to create the outbound JMS
messages for both scenarios:
 String – orderId
 Integer – orderAmount
To run the sample, log into Enterprise Manager (EM) and navigate to the Test Page for the
BpmJmsSend project. Enter an orderId and orderAmount, then select “Test Web Service”.
If you select the Flow Trace you’ll see the following, which shows the two outbound JMS
messages that result in two instances of the BpmJmsReceive Process being created; one for each
of the scenarios:
If you select the BPMN components you’ll see (via the Log Handler output) the values from the
inbound JMS message, along with the message type that was set as a JMS Message Property by
the sender, and used in the JMS Message Selector to determine which adapter handles the
incoming message.

More Related Content

What's hot

Java Messaging Service
Java Messaging ServiceJava Messaging Service
Java Messaging Service
Dilip Prajapati
 
Jms
JmsJms
Jms
JmsJms
Jms
JmsJms
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service
Peter R. Egli
 
NServiceBus workshop presentation
NServiceBus workshop presentationNServiceBus workshop presentation
NServiceBus workshop presentation
Tomas Jansson
 
Enterprise messaging with jms
Enterprise messaging with jmsEnterprise messaging with jms
Enterprise messaging with jms
Sridhar Reddy
 
Mom those things v1
Mom those things v1 Mom those things v1
Mom those things v1
von gosling
 
Virt Exchange2k7 Final Frontier V Mworld2007
Virt Exchange2k7 Final Frontier V Mworld2007Virt Exchange2k7 Final Frontier V Mworld2007
Virt Exchange2k7 Final Frontier V Mworld2007
Kong Yang
 
Weblogic - Introduction to configure JMS
Weblogic  - Introduction to configure JMSWeblogic  - Introduction to configure JMS
Weblogic - Introduction to configure JMS
Vibrant Technologies & Computers
 
Lecture 9 - SOA in Context
Lecture 9 - SOA in ContextLecture 9 - SOA in Context
Lecture 9 - SOA in Context
phanleson
 
ActiveMQ Configuration
ActiveMQ ConfigurationActiveMQ Configuration
ActiveMQ Configuration
Ashish Mishra
 
Message Driven Beans (6)
Message Driven Beans (6)Message Driven Beans (6)
Message Driven Beans (6)
Abdalla Mahmoud
 
Jms deep dive [con4864]
Jms deep dive [con4864]Jms deep dive [con4864]
Jms deep dive [con4864]
Ryan Cuprak
 
Documentum advanced document_transformation_services_release_notes_6.7_sp1
Documentum advanced document_transformation_services_release_notes_6.7_sp1Documentum advanced document_transformation_services_release_notes_6.7_sp1
Documentum advanced document_transformation_services_release_notes_6.7_sp1
s_rumaih
 
VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms
VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms
VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms
VMworld
 

What's hot (16)

Java Messaging Service
Java Messaging ServiceJava Messaging Service
Java Messaging Service
 
Jms
JmsJms
Jms
 
Jms
JmsJms
Jms
 
Jms
JmsJms
Jms
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service
 
NServiceBus workshop presentation
NServiceBus workshop presentationNServiceBus workshop presentation
NServiceBus workshop presentation
 
Enterprise messaging with jms
Enterprise messaging with jmsEnterprise messaging with jms
Enterprise messaging with jms
 
Mom those things v1
Mom those things v1 Mom those things v1
Mom those things v1
 
Virt Exchange2k7 Final Frontier V Mworld2007
Virt Exchange2k7 Final Frontier V Mworld2007Virt Exchange2k7 Final Frontier V Mworld2007
Virt Exchange2k7 Final Frontier V Mworld2007
 
Weblogic - Introduction to configure JMS
Weblogic  - Introduction to configure JMSWeblogic  - Introduction to configure JMS
Weblogic - Introduction to configure JMS
 
Lecture 9 - SOA in Context
Lecture 9 - SOA in ContextLecture 9 - SOA in Context
Lecture 9 - SOA in Context
 
ActiveMQ Configuration
ActiveMQ ConfigurationActiveMQ Configuration
ActiveMQ Configuration
 
Message Driven Beans (6)
Message Driven Beans (6)Message Driven Beans (6)
Message Driven Beans (6)
 
Jms deep dive [con4864]
Jms deep dive [con4864]Jms deep dive [con4864]
Jms deep dive [con4864]
 
Documentum advanced document_transformation_services_release_notes_6.7_sp1
Documentum advanced document_transformation_services_release_notes_6.7_sp1Documentum advanced document_transformation_services_release_notes_6.7_sp1
Documentum advanced document_transformation_services_release_notes_6.7_sp1
 
VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms
VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms
VMworld 2013: Virtualizing and Tuning Large Scale Java Platforms
 

Viewers also liked

Taula observació dia 4
Taula observació dia 4Taula observació dia 4
Taula observació dia 4
noumestre cooperatiu
 
Presentación 1 proyecto
Presentación 1 proyectoPresentación 1 proyecto
Presentación 1 proyecto
lilianaosorioroman
 
CTS Ciencia Tecnología Sociedad en el PID Portafolio Interactivo Digital.
CTS Ciencia Tecnología Sociedad en el PID Portafolio Interactivo Digital.CTS Ciencia Tecnología Sociedad en el PID Portafolio Interactivo Digital.
CTS Ciencia Tecnología Sociedad en el PID Portafolio Interactivo Digital.
lilianaosorioroman
 
Evaluación entre pares liliana paulo
Evaluación entre pares liliana   pauloEvaluación entre pares liliana   paulo
Evaluación entre pares liliana paulo
lilianaosorioroman
 
The environment in your hands
The environment in your handsThe environment in your hands
The environment in your hands
Cesar Augusto Julio Bustos
 
Atec2321 understandnig the web
Atec2321 understandnig the webAtec2321 understandnig the web
Atec2321 understandnig the web
amlee229
 
RESUME
RESUMERESUME
RESUME
Argha Mondal
 
The sprint goal as a business test
The sprint goal as a business testThe sprint goal as a business test
The sprint goal as a business test
Wouter Lagerweij
 
Δραματοποίηση παραγράφων 2.2.16-23 των Ελληνικών του Ξενοφώντα
Δραματοποίηση παραγράφων 2.2.16-23 των Ελληνικών του ΞενοφώνταΔραματοποίηση παραγράφων 2.2.16-23 των Ελληνικών του Ξενοφώντα
Δραματοποίηση παραγράφων 2.2.16-23 των Ελληνικών του Ξενοφώντα
ΣΟΦΙΑ ΦΕΛΛΑΧΙΔΟΥ
 
BVOperations
BVOperationsBVOperations
BVOperations
Ben Arditi
 
Antarktuda- koroleva holody
Antarktuda- koroleva holodyAntarktuda- koroleva holody
Antarktuda- koroleva holody
Bodya Dishkant
 
африка. історія відкриття та дослідження
африка. історія відкриття та дослідженняафрика. історія відкриття та дослідження
африка. історія відкриття та дослідження
vyglinska
 
brooks brothers
brooks brothers brooks brothers
brooks brothers
stella panayides
 
Bases químicas e físicas da herança - genética animal
Bases químicas e físicas da herança - genética animalBases químicas e físicas da herança - genética animal
Bases químicas e físicas da herança - genética animal
Marília Gomes
 

Viewers also liked (14)

Taula observació dia 4
Taula observació dia 4Taula observació dia 4
Taula observació dia 4
 
Presentación 1 proyecto
Presentación 1 proyectoPresentación 1 proyecto
Presentación 1 proyecto
 
CTS Ciencia Tecnología Sociedad en el PID Portafolio Interactivo Digital.
CTS Ciencia Tecnología Sociedad en el PID Portafolio Interactivo Digital.CTS Ciencia Tecnología Sociedad en el PID Portafolio Interactivo Digital.
CTS Ciencia Tecnología Sociedad en el PID Portafolio Interactivo Digital.
 
Evaluación entre pares liliana paulo
Evaluación entre pares liliana   pauloEvaluación entre pares liliana   paulo
Evaluación entre pares liliana paulo
 
The environment in your hands
The environment in your handsThe environment in your hands
The environment in your hands
 
Atec2321 understandnig the web
Atec2321 understandnig the webAtec2321 understandnig the web
Atec2321 understandnig the web
 
RESUME
RESUMERESUME
RESUME
 
The sprint goal as a business test
The sprint goal as a business testThe sprint goal as a business test
The sprint goal as a business test
 
Δραματοποίηση παραγράφων 2.2.16-23 των Ελληνικών του Ξενοφώντα
Δραματοποίηση παραγράφων 2.2.16-23 των Ελληνικών του ΞενοφώνταΔραματοποίηση παραγράφων 2.2.16-23 των Ελληνικών του Ξενοφώντα
Δραματοποίηση παραγράφων 2.2.16-23 των Ελληνικών του Ξενοφώντα
 
BVOperations
BVOperationsBVOperations
BVOperations
 
Antarktuda- koroleva holody
Antarktuda- koroleva holodyAntarktuda- koroleva holody
Antarktuda- koroleva holody
 
африка. історія відкриття та дослідження
африка. історія відкриття та дослідженняафрика. історія відкриття та дослідження
африка. історія відкриття та дослідження
 
brooks brothers
brooks brothers brooks brothers
brooks brothers
 
Bases químicas e físicas da herança - genética animal
Bases químicas e físicas da herança - genética animalBases químicas e físicas da herança - genética animal
Bases químicas e físicas da herança - genética animal
 

Similar to Bpminto

Jms tutor
Jms tutorJms tutor
Jms tutor
hidayatsoa
 
Jms
JmsJms
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFramework
banq jdon
 
Webcenter application performance tuning guide
Webcenter application performance tuning guideWebcenter application performance tuning guide
Webcenter application performance tuning guide
Vinay Kumar
 
EAI Performance Analysis Web-Methods | Torry Harris Whitepaper
EAI Performance Analysis Web-Methods | Torry Harris WhitepaperEAI Performance Analysis Web-Methods | Torry Harris Whitepaper
EAI Performance Analysis Web-Methods | Torry Harris Whitepaper
Torry Harris Business Solutions
 
Jms intro
Jms introJms intro
Jms intro
Manav Prasad
 
Client/Server Paradigm And Its Implementation
Client/Server Paradigm And Its ImplementationClient/Server Paradigm And Its Implementation
Client/Server Paradigm And Its Implementation
Roman Agaev
 
Mule jms
Mule   jmsMule   jms
Software testing
Software testingSoftware testing
Software testing
nil65
 
netezza-pdf
netezza-pdfnetezza-pdf
netezza-pdf
Maha Lingam
 
Azure Service Bus Performance Checklist
Azure Service Bus Performance ChecklistAzure Service Bus Performance Checklist
Azure Service Bus Performance Checklist
Salim M Bhonhariya
 
Optimizing JMS Performance for Cloud-based Application Servers
Optimizing JMS Performance for Cloud-based Application ServersOptimizing JMS Performance for Cloud-based Application Servers
Optimizing JMS Performance for Cloud-based Application Servers
Zhenyun Zhuang
 
Cmis 7.2 deploy
Cmis 7.2 deployCmis 7.2 deploy
Cmis 7.2 deploy
Eswar Eluri
 
Server side programming bt0083
Server side programming bt0083Server side programming bt0083
Server side programming bt0083
Divyam Pateriya
 
Web sphere application server performance tuning workshop
Web sphere application server performance tuning workshopWeb sphere application server performance tuning workshop
Web sphere application server performance tuning workshop
Rohit Kelapure
 
ODTUG The Necessary Knowledge and Tools You Need to Have for SOA Suite 11g
ODTUG The Necessary Knowledge and Tools You Need to Have for SOA Suite 11gODTUG The Necessary Knowledge and Tools You Need to Have for SOA Suite 11g
ODTUG The Necessary Knowledge and Tools You Need to Have for SOA Suite 11g
Edwin Biemond
 
Introduction to requirement of microservices
Introduction to requirement of microservicesIntroduction to requirement of microservices
Introduction to requirement of microservices
Avik Das
 
Suse service virtualization_image_set up_guide_140214
Suse service virtualization_image_set up_guide_140214Suse service virtualization_image_set up_guide_140214
Suse service virtualization_image_set up_guide_140214
Darrel Rader
 
JMSSession1TP-final.ppt
JMSSession1TP-final.pptJMSSession1TP-final.ppt
JMSSession1TP-final.ppt
Pavankumar374257
 
Mastering Distributed Performance Testing
Mastering Distributed Performance TestingMastering Distributed Performance Testing
Mastering Distributed Performance Testing
Knoldus Inc.
 

Similar to Bpminto (20)

Jms tutor
Jms tutorJms tutor
Jms tutor
 
Jms
JmsJms
Jms
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFramework
 
Webcenter application performance tuning guide
Webcenter application performance tuning guideWebcenter application performance tuning guide
Webcenter application performance tuning guide
 
EAI Performance Analysis Web-Methods | Torry Harris Whitepaper
EAI Performance Analysis Web-Methods | Torry Harris WhitepaperEAI Performance Analysis Web-Methods | Torry Harris Whitepaper
EAI Performance Analysis Web-Methods | Torry Harris Whitepaper
 
Jms intro
Jms introJms intro
Jms intro
 
Client/Server Paradigm And Its Implementation
Client/Server Paradigm And Its ImplementationClient/Server Paradigm And Its Implementation
Client/Server Paradigm And Its Implementation
 
Mule jms
Mule   jmsMule   jms
Mule jms
 
Software testing
Software testingSoftware testing
Software testing
 
netezza-pdf
netezza-pdfnetezza-pdf
netezza-pdf
 
Azure Service Bus Performance Checklist
Azure Service Bus Performance ChecklistAzure Service Bus Performance Checklist
Azure Service Bus Performance Checklist
 
Optimizing JMS Performance for Cloud-based Application Servers
Optimizing JMS Performance for Cloud-based Application ServersOptimizing JMS Performance for Cloud-based Application Servers
Optimizing JMS Performance for Cloud-based Application Servers
 
Cmis 7.2 deploy
Cmis 7.2 deployCmis 7.2 deploy
Cmis 7.2 deploy
 
Server side programming bt0083
Server side programming bt0083Server side programming bt0083
Server side programming bt0083
 
Web sphere application server performance tuning workshop
Web sphere application server performance tuning workshopWeb sphere application server performance tuning workshop
Web sphere application server performance tuning workshop
 
ODTUG The Necessary Knowledge and Tools You Need to Have for SOA Suite 11g
ODTUG The Necessary Knowledge and Tools You Need to Have for SOA Suite 11gODTUG The Necessary Knowledge and Tools You Need to Have for SOA Suite 11g
ODTUG The Necessary Knowledge and Tools You Need to Have for SOA Suite 11g
 
Introduction to requirement of microservices
Introduction to requirement of microservicesIntroduction to requirement of microservices
Introduction to requirement of microservices
 
Suse service virtualization_image_set up_guide_140214
Suse service virtualization_image_set up_guide_140214Suse service virtualization_image_set up_guide_140214
Suse service virtualization_image_set up_guide_140214
 
JMSSession1TP-final.ppt
JMSSession1TP-final.pptJMSSession1TP-final.ppt
JMSSession1TP-final.ppt
 
Mastering Distributed Performance Testing
Mastering Distributed Performance TestingMastering Distributed Performance Testing
Mastering Distributed Performance Testing
 

More from xavier john

Unix day4 v1.3
Unix day4 v1.3Unix day4 v1.3
Unix day4 v1.3
xavier john
 
Unix day3 v1.3
Unix day3 v1.3Unix day3 v1.3
Unix day3 v1.3
xavier john
 
Unix day2 v1.3
Unix day2 v1.3Unix day2 v1.3
Unix day2 v1.3
xavier john
 
Interview questions
Interview questionsInterview questions
Interview questions
xavier john
 
Xavier async callback_fault
Xavier async callback_faultXavier async callback_fault
Xavier async callback_fault
xavier john
 
Custom faultpolicies
Custom faultpoliciesCustom faultpolicies
Custom faultpolicies
xavier john
 
All adapterscommonproperties
All adapterscommonpropertiesAll adapterscommonproperties
All adapterscommonproperties
xavier john
 
Custom faultpolicies
Custom faultpoliciesCustom faultpolicies
Custom faultpolicies
xavier john
 
Oracle business rules
Oracle business rulesOracle business rules
Oracle business rules
xavier john
 
Soap.doc
Soap.docSoap.doc
Soap.doc
xavier john
 
Soa installation
Soa installationSoa installation
Soa installation
xavier john
 
Vx vm
Vx vmVx vm
Webservices
WebservicesWebservices
Webservices
xavier john
 
While.doc
While.docWhile.doc
While.doc
xavier john
 
Xml material
Xml materialXml material
Xml material
xavier john
 
Xpath
XpathXpath
X query
X queryX query
X query
xavier john
 
Xsd basics
Xsd basicsXsd basics
Xsd basics
xavier john
 
Xsd
XsdXsd
Xslt
XsltXslt

More from xavier john (20)

Unix day4 v1.3
Unix day4 v1.3Unix day4 v1.3
Unix day4 v1.3
 
Unix day3 v1.3
Unix day3 v1.3Unix day3 v1.3
Unix day3 v1.3
 
Unix day2 v1.3
Unix day2 v1.3Unix day2 v1.3
Unix day2 v1.3
 
Interview questions
Interview questionsInterview questions
Interview questions
 
Xavier async callback_fault
Xavier async callback_faultXavier async callback_fault
Xavier async callback_fault
 
Custom faultpolicies
Custom faultpoliciesCustom faultpolicies
Custom faultpolicies
 
All adapterscommonproperties
All adapterscommonpropertiesAll adapterscommonproperties
All adapterscommonproperties
 
Custom faultpolicies
Custom faultpoliciesCustom faultpolicies
Custom faultpolicies
 
Oracle business rules
Oracle business rulesOracle business rules
Oracle business rules
 
Soap.doc
Soap.docSoap.doc
Soap.doc
 
Soa installation
Soa installationSoa installation
Soa installation
 
Vx vm
Vx vmVx vm
Vx vm
 
Webservices
WebservicesWebservices
Webservices
 
While.doc
While.docWhile.doc
While.doc
 
Xml material
Xml materialXml material
Xml material
 
Xpath
XpathXpath
Xpath
 
X query
X queryX query
X query
 
Xsd basics
Xsd basicsXsd basics
Xsd basics
 
Xsd
XsdXsd
Xsd
 
Xslt
XsltXslt
Xslt
 

Recently uploaded

GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
Ayan Halder
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 

Recently uploaded (20)

GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 

Bpminto

  • 1. Samples are provided as-is with no warranty Page 1 of 10 BPM 11g Samples bpm-int-101-JMS-integration Copyright  2011 Oracle Corporation All Rights Reserved
  • 2. Samples are provided as-is with no warranty Page 2 of 10 Contents 1. Introduction............................................................................................................4 2. Environment Requirements..................................................................................5 3. Installation and Configuration .............................................................................6 3.1 JMS Queue on the SOA/BPM Server ....................................................................................6 3.2 Update the UIConnectionName in the Adapter JCA Configuration File (Optional) .............6 3.3 Deploy the Two Composite Projects......................................................................................7 4. Sample Overview ...................................................................................................8 5. Sample Scenarios ...................................................................................................9 5.1 Start Process Using Process “Start” Message ........................................................................9 5.2 Start Process Using an “Event” Message...............................................................................9 6. Running the Samples...........................................................................................10
  • 3. Samples are provided as-is with no warranty Page 3 of 10 History Date Version Change Reference Nov-06-2011 1.0 First release of sample
  • 4. Samples are provided as-is with no warranty Page 4 of 10 1. Introduction A frequently asked question is whether BPM processes can be started by the arrival of a JMS message on a Topic or Queue. The short answer is yes, and this sample provides an example of a BPM process that is started via a JMS message in two common scenarios: 1. The arrival of a message that matches the WSDL of the Service endpoint for the BPM process. In this case the XML message is exactly the same as would be delivered in the Body of a SOAP/HTTP message. The root element is typically in the target namespace of the process, and named after the name of the operation that starts the process. This scenario is essentially a Web Service call using JMS as the transport. 2. The arrival of a message that is just the payload portion of the message that would be used in the first scenario, typically a message that describes a business event. This scenario is more like publishing events over JMS, rather than invoking a Web Service operation over JMS. In both cases the BPM process is insulated from the type of transport used to deliver messages that start instances of the process. The process design only specifies the “shape” of the message. The composite is configured with adapters that are the sources of those messages. In cases where the “shape” of the adapter message does not match that of the process, a Mediator can be used to transform the message into the correct “shape” While the primary objective of this sample is to show how to start processes from JMS messages, the sample also illustrates:  Use of configuration plans to override Destination JNDI names.  Use of Service Properties to set and get JMS Messages Properties.  Use of JMS Message Selectors to use a shared Destination for multiple message types.
  • 5. Samples are provided as-is with no warranty Page 5 of 10 2. Environment Requirements This sample requires JDeveloper version 11.1.1.5 (or higher) with the SOA Composite Editor and BPM Studio extensions installed. A standalone server with BPM Suite 11.1.1.5 (or higher) and a domain configured with BPM Suite is required for deploying and running the sample. Note: This sample will run on 11.1.1.5 or 11.1.1.5 Feature Pack (11.1.1.5-FP). Some of the screen shots in this document were created using 11.1.1.5-FP, however there are no 11.1.1.5-FP specific features used in the sample. If you’re using 11.1.1.5-FP, you will be prompted to upgrade the project when opening it. You will not need to make any other changes to run the sample. The sample requires a single JMS Queue deployed to the SOA/BPM server to illustrate how BPM Process can be started via JMS Messages. The JNDI destination name used by the JMS adapters is jms/sampleQueue. However that value can be overridden by updating the configuration plan provided in both the sending (BPMJmsSend) and receiving (BPMJmsReceive) projects.
  • 6. Samples are provided as-is with no warranty Page 6 of 10 3. Installation and Configuration The sample is provided as a zipped JDeveloper application. The application can be unzipped into any location where the path name does not include spaces. To open the application, use the “Application Open” menu and locate the file: bpm-int-101-JMS-integration.jws. The application contains 3 projects:  BpmJmsSend – BPM project that generates the JMS messages that start instances of a process defined in the BpmJmsReceive project.  BpmJmsReceive – Contains the BPM process that is started by the arrival of messages on a JMS Queue.  Resources – A generic project that contains documentation and ANT build targets to package this sample. 3.1 JMS Queue on the SOA/BPM Server Then sending and receiving BPM processes use the same JMS Queue. The Destination JNDI name is defined in the composite.xml file to make it possible to override the JNDI name using a configuration plan. A sample configuration plan is provided in each project as a sample of how to override the name at deployment time. The options for configuring JMS are:  Create a Queue with the Destination JNDI name jms/sampleQueue in your SOA/BPM domain  or …  Update the configuration plan in each project (BpmJmsSend_cfgplan.xml, BpmJmsReceive_cfgplan.xml) to specify the JNDI name of a Queue that already exists in your SOA/BPM domain. The example configuration plans are configured to override the default JNDI name with the value jms/q1. Note: The connection factory name configured in the adapter configuration is eis/wls/Queue, which is one of the default factories pre-configured during creation of a SOA/BPM domain. So the connection factory name does not need to be changed. 3.2 Update the UIConnectionName in the Adapter JCA Configuration File (Optional) The UIConnectionName is used whenever the JMS Adapter wizard is run. It specifies the name of the application server where the JMS Destinations can be browsed. If you intend to make changes to the JMS adapter by running the wizard, you will have to update this value to match the name of an application server connection in your environment. However you do not need to change this value to run the sample, or to update the Destination via configuration plan.
  • 7. Samples are provided as-is with no warranty Page 7 of 10 3.3 Deploy the Two Composite Projects Use JDeveloper to deploy both composites:  BpmJmsReceive  BpmJmsSend If you have updated the configuration plans to reference a Queue that already exists on you BPM/SOA server, then be sure to select the configuration plan when deploying the projects. If you created a Queue with the JNDI name jms/sampleQueue, then do not specify a configuration plan.
  • 8. Samples are provided as-is with no warranty Page 8 of 10 4. Sample Overview As noted in the introduction, a key goal of the sample is to show how processes can be started via the receipt of JMS messages. The sample is designed to have one BPM process produce (send) the JMS messages that then create instances of another BPM process in a separate project (composite). The “sending” composite. This composite contains a single BPM process that sends JMS messages to the receiving composite via JMS adapters. The “receiving” composite. This composite contains the BPM process where instances are created on receipt of JMS messages. Note that a Mediator is used to transform JMS messages to match the shape of the Message Start Event in the BPM process. A single JMS Destination is used for communication between the processes. A message selector is used in the receiving JMS adapter to distinguish between the two message types (i.e. startProcess messages and NewOrderEvent message). In the sending process Service Properties are used to set the “msgType” JMS Message property used in the message selector.
  • 9. Samples are provided as-is with no warranty Page 9 of 10 5. Sample Scenarios The sending process (BpmJmsSend) produces two JMS messages via Service Activities that are bound to outbound JMS adapters. Each message “send” represents one of the two scenarios described in the introduction. 5.1 Start Process Using Process “Start” Message In this scenario the sending process send a JMS message that has the same XML schema type as the operation defined in the target process Message Start Event (i.e. the operation defined in the process WSDL). Since the sender must have the remote service’s WSDL, this is a scenario that’s often referred to as Web Service invocation over JMS. 5.2 Start Process Using an “Event” Message In this scenario the sending process does not have the WSDL of the target service. It just has an XML schema that represents a Business Event (e.g. NewOrderEvent). The receiving composite includes a Mediator that will create the target process start message via transformation of the incoming JMS message. Note that this is similar to the use of EDN within SOA. However in this case the processes are directly using JMS to send and receive messages.
  • 10. Samples are provided as-is with no warranty Page 10 of 10 6. Running the Samples The sending composite (BpmJmsSend) includes a BPM process that exposes a web service endpoint. That endpoint defines two parameters that are then used to create the outbound JMS messages for both scenarios:  String – orderId  Integer – orderAmount To run the sample, log into Enterprise Manager (EM) and navigate to the Test Page for the BpmJmsSend project. Enter an orderId and orderAmount, then select “Test Web Service”. If you select the Flow Trace you’ll see the following, which shows the two outbound JMS messages that result in two instances of the BpmJmsReceive Process being created; one for each of the scenarios: If you select the BPMN components you’ll see (via the Log Handler output) the values from the inbound JMS message, along with the message type that was set as a JMS Message Property by the sender, and used in the JMS Message Selector to determine which adapter handles the incoming message.