Thursday, January 5, 2012

ERRJMS_ERR_CR_QUEUE_PROD with the JMS adapter

Problem:

Getting the following fault when invoking a SOA Suite 11g composite that uses a JMS outbound adapter:
<fault>
  <bpelFault>
    <faultType>0</faultType>
    <bindingFault>
      <part  name="summary">
        <summary>
          Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'CustomerProduce' failed due to: ERRJMS_ERR_CR_QUEUE_PROD. ERRJMS_ERR_CR_QUEUE_PROD. Unable to create Queue producer due to JMSException. Please examine the log file to determine the problem. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
        </summary>
      </part>
      <part  name="detail">
        <detail>
          [JMSExceptions:045103]While trying to find a topic or a queue we could not find the specific JMSServer requested. The linked exception may contain more information about the reason for failure.
        </detail>
      </part>
      <part  name="code">
        <code>null</code>
      </part>
    </bindingFault>
  </bpelFault>
</fault>

Solution:

The subdeployment on which the queue is associate with is targetted to an invalid JMS Server. In this case, the JMS Server was referencing a persistent file store that did not exist.

If you parse the log files, you may find the following error:
<Dec 25, 2011 7:30:41 PM EST> <Warning> <Management> <BEA-141197> <The deployment of CustomJMSServer failed.
weblogic.management.DeploymentException: Internalrror activating the JMS Server CustomJMSServer: weblogic.management.DeploymentException: The persistent store "CustomFileStore" does not exist
        at weblogic.jms.deployer.BEAdminHandler.activate(BEAdminHandler.java:215)
        at weblogic.management.utils.GenericManagedService.activateDeployment(GenericManagedService.java:239)
1. Navigate to the WebLogic Server Administration Console.

2. Expand soa_domain > Services > Messaging > JMS Modules

3. Click on your JMS module name

4. Click on the Subdeployments tab

5. Click on the subdeployment name

6. Target the subdeployment to a valid JMS Server (e.g., SOAJMSServer)


Applicable Versions:
  • Oracle SOA Suite 11g
  • Oracle WebLogic Server 11g

2 comments:

Maxim Ganichev said...

Thanks, this material has saved me recently!

Saran Villa said...

Thanks