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.
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
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.