I observed a strange behavior while configuring JMS Adapter in a JDeveloper composite recently. I had created a SAF Destination with some SAF queues. However while creating a JMS Adapter service to produce a message into this queue I noticed that the JDeveloper Adapter creation wizard is unable to locate these queues.
SAF Queues were however added to the SAF Imported Destination
However while creating a JMS adapter to produce message to this queue from JDeveloper, to my surprise I wasn’t able to locate it.
First apprehension that i feared about was whether JMS Adapter supports Activation and Interaction specs with SAF queues. However there is actually no difference between a normal queue and a queue configured on SAF. It has a subdeployment, is targeted to a valid managed server, has a persistent store and a valid JNDI.
Fortunately I had a solution. And it came when I tried locating the JNDI of the queues configured on SAF.
The JNDI name of the queue is prefixed with saf. (saf with period) because this is how i had configured my SAF Imported Destination
In the JMS Adapter JCA file use this name (or the JNDI Binding name of the queue) after having configured the Adapter in JDeveloper. It would still give the “Queue Could not be Found” warning but ignore it.
Deployed the application and produced a message to the JMS Adapter service.
I was able to see the message produced from my composite application by monitoring the SAF agent.