I\'m trying to connect a Weblogic (10.3) MDB to a Tibco EMS JMS queue. I\'ve read from the queue using a simple Java/Spring JNDI connection so I know the foreign JNDI lookup
Have finally achieved this - due to a bug in Weblogic 10.3 this isn't as simple as it should be.
Create a foreign server with all the normal details (local/remote JNDI lookup names for destination and connection factories).
Create a local WL user with the same name as the remote EMS user, including password.
Create an ejb credential mapping (NOT security credential mapping)
Add the following sections in config files:
weblogic-ejb-jar.xml
At the bottom of this file, after the closing 'weblogic-enterprise-bean' tag and before the ending 'weblogic-ejb-jar' tag add the following:
<security-role-assignment>
<role-name>rficonsumer</role-name>
<principal-name>rdsuat</principal-name>
</security-role-assignment>
The 'rficonsumer' role only exists in these 2 config files and can be anything as long as it is consistent in all 3 sections described here. The principal-name 'rdsuat' must match the user created in the WL Admin console section and therefore must match the EMS queue user.
ejb-jar.xml
In the 'message-driven' tag section for the relevant MDB add the following section at the end before the closing 'message-driven' tag:
rficonsumer
At the very end of the file, after the closing 'enterprise-beans' tag, before the ending 'ejb-jar' closing tag add the following:
rficonsumer