Oracle SOA, AIA BPEL ESB and OSB knowledge base

Monday, February 23, 2009

OSB service invocation from BPEL 11g through JMS adapter Request/Reply Async Call

OSB service invocation from BPEL 11g through JMS adapter Request/Reply Async Call
Scenario: Invoking an OSB Proxy service using JMS transport

Assumptions :OSB proxy service is configured on JMS and running on remote WLS server.









Step 1: Create a JNDI name for the Remote WLS JMS Connection in SOA server

a. Login to the SOA server weblogic admin console
b. navigate to deployment--> JMSAdapter
c. From the "Settings for JMSAdapter" --> configuration --> Outbound Connection Pools
d. Click on "New" --> "Outbound Connection Group" --> oracle.tip.adapter.jms.IJmsConnectionFactory-- > next Give JNDI name as "eis/wls/osb" --> Finish
e. Now, connection "eis/wls/osb" is available under "Settings for JMSAdapter" --> configuration --> Outbound Connection Pools
f. Click on "eis/wls/osb" and set the properties for the remote Queue java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://10.75.85.151:9021;java.naming.security.principal=weblogic;
java.naming.security.credentials=weblogic
g. Again from the console-->deployments -->JMSAdapter checkbox , and choose to "update" -->On the "Update Application Assistant" -- > selected the first option "Update
this application in place with new deployment plan changes.Selected the deployment plan which had got created earlier, "Finish"

Note:Even though the server console message says no need to restart the server, we need to restart it to reflect the changes.

Step 2: Use JMS adapter wizard to configure the Remote JMS connection for request and the Response Queue

a.Select OEMS --> Oracle Weblogic JMS
b. Select the WLS Server in service connection tab
c. In Operation tab, select the Request/Reply --> ASynchronous
d. Request/Reply Operation Parameters --> Here select the request and
reply queue from the remote WLS server and select the appropriate JNDI Name
e. Complete the wizard by selecting the schemas for request and reply

Step 3: Deploy the process and Invoke it from EM console



Apart from all these settings there are some changes has to be done on OSB proxy service. By default OSB will not pass all the headers to the inbound response.So we need to copy the required headers from the inbound request to inbound response.Since the business service is configured as a SOAP over http the header informations has to be copied to the outbound response(Response from the Buisness service) or inbound response.

Note: If you are not using the correlation ID from the JMS adapter, you need to copy the message ID from the inbound request(to the proxy service) to the outbound response's correlation id value so that the JMS adapter can identify the response and map to the particular instance.




1 comment:

Unknown said...

Abhishek,
This seems to work but do you not need to estabilish trusted domain between two WebLogic server (SOA Doamin where the BPEL is running and target domain where the message is being put on).

FEEDJIT Live Traffic Map

My Blog List