Oracle SOA Suite and SonicMQv7.6

Posted by imawall on 25-Aug-2009 14:14

Has anyone successfuly configured a BPEL built in JDeveloper 11 and deployed to Oracle's SOA Suite/WLS to send or receive messages with a SonicMQ7.6 queue or topic? If so, was the Oracle JMS adapter used or was the Sonic provided RA for JCA for WebLogic used? Thanks.

All Replies

Posted by Admin on 01-Sep-2009 06:40

Hi Andrew,

i have the same problem. Did you find a solution? How did you configure the Weblogic? Did you use the Sonic Ressource Adapters for JCA or is the setup of the jndi connection factory enough?

Best regards, Danilo

Posted by imawall on 01-Sep-2009 07:27

Hi Danilo,

No solution yet. Oracle has been unresponsive and I'm waiting to discuss

with their team. Sonic folks have made a few recommendations.

The easiest way should be to configure a foreign JMS provider. Configuring

Foreign Server Resources in Oracle WebLogic allow you access third-party JMS

providers such as SonicMQ per the documentation. The Foreign Server

resources provide a mapping between a domain's JNDI tree and external remote

JNDI names of JMS connection factories and destinations. I had trouble with

that so went the Sonic JCA adapter route, but having trouble exposing that

to a composite and bpel in jdeveloper, b/c the 3rd party JCA adapter doesn't

have a WSDL and I don't see how to create one in Oracle for a 3rd party

adapter.

I'd love for someone else to give it a go though. The overview for the

foreign server resource is available here:

http://download.oracle.com/docs/cd/E12839_01/web.1111/e13738/advance_config.htm#JMSAD194

Overall, you’ll need to create a JMS module that contains a foreign server

that represents a JNDI provider that is outside the WebLogic JMS server.

http://download.oracle.com/docs/cd/E12839_01/apirefs.1111/e13952/taskhelp/jms_modules/foreign_servers/ConfigureForeignServers.html

Then create a foreign connection factory that contains the JNDI name of the

connection factory in the remote JNDI provider.

http://download.oracle.com/docs/cd/E12839_01/apirefs.1111/e13952/taskhelp/jms_modules/foreign_servers/CreateForeignConnectionFactories.html

Finally, create foreign destinations that represents either a queue or a

topic. It contains the destination JNDI name that is looked up on the

foreign JNDI provider and the JNDI name that the destination is mapped to on

the local WebLogic Server.

http://download.oracle.com/docs/cd/E12839_01/apirefs.1111/e13952/taskhelp/jms_modules/foreign_servers/CreateForeignDestinations.html

For creating a JNDI store, connection factory and destinations in SonicMQ

for Oracle WebLogic to access please refer to the SonicMQ Configuration and

Management guide (available at

http://communities.progress.com/pcom/docs/DOC-49818) chapter 17, beginning

on page 565.

I had two issues with this approach. In WLS admin console, when you define

the foreign server and the settings, there is a placeholder for the initial

context and connection url, but no where to specify the domain. There is a

place to set jndi properties, but not sure about the format.

So, if the initial context is set as

com.sonicsw.jndi.mfcontext.MFContextFactory and the url is set as

tcp://localhost:2506 and that is appropriate, then if I understand

correctly, you still need to set the domain when defining the resource

provider, which is what I believe you are doing when you set the foreign

server under Services -> Messaging -> JMS Modules.

If the JNDI properties form field is the right place to set the domain, what

is the syntax?

A second issue is how to make the foreign resource available within the bpel

composite editor. I assumed you would use the JMS adapter.

You can reach me direct @ awall@hkmconsultingllc.com if you want to try to

work through this. So far, I haven't found any notes or anyone that has this

working.

This thread is closed