OSB Proxy Service & JMS Queue 12c – Flux Issue

Problem

During the migration of 11g server to 12c, faced an issue where OSB Proxy Service whose Transport Configuration is JMS cannot consume messages from the desired endpoint URI which is a JMS queue. The message remains pending state in the respective JMS queue.

In the OSB server log file, one could see below error logs: 

<Error> <oracle.osb.transports.main.jmstransport> <OSB-381519> <Failure while processing an incoming message for endpoint ProxyService ABCProjectName/Proxy Services/ABCProxyService due to service configuration in flux>

<Error> <oracle.osb.transports.main.jmstransport> <OSB-381502> <Exception in JmsInboundMDB.onMessage: com.bea.wli.sb.transports.TransportException: Failure while processing an incoming message for endpoint ProxyService ABCProjectName/Proxy Services/ABCProxyService due to service configuration in flux

com.bea.wli.sb.transports.TransportException: Failure while processing an incoming message for endpoint ProxyService ABCProjectName/Proxy Services/ABCProxyService due to service configuration in flux

                at com.bea.wli.sb.transports.jms.JmsInboundMDB.onMessage(JmsInboundMDB.java:121)

                at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:438)

                at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:361)

                at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:297)

Solution

On investigation, identified that below necessary Weblogic environment parameter is not in place:

-Djavax.xml.namespace.QName.useCompatibleHashCodeAlgorithm=1.0

The above parameters should be present in all the managed servers of OSB as well as in the Admin server.

Step by Step Guide:

Option 1: Update from Front End – 

  1. Log into Weblogic Admin Console
  2. Click on Lock and Edit button on the left-hand side corner
  3. Click on Servers and then first managed server of OSB (Later click on all the other OSB servers and Admin server as well)
  4. Under Configuration tab > Go to Server Start
  5. Edit the Arguments to reflect like below:

“-Xrs -Djavax.xml.namespace.QName.useCompatibleHashCodeAlgorithm=1.0

NOTE: If there are more arguments present for your server, then do not remove them but do add the one highlighted in bold.

Option 2: Update from Back End – 

  1. Go to $DOMAIN_HOME/bin/setDomainEnv.sh
  2. Edit the above setDomainEnv.sh and insert the below parameter so that it looks like:

-Djavax.xml.namespace.QName.useCompatibleHashCodeAlgorithm=1.0

NOTE: If there are more arguments present for your server, then do not remove them but do add the one highlighted in bold.

An important step to be performed after one opt for either of the above options:

  1. Delete temp, cache and stage directories and restart all the OSB and Admin servers
  2. Delete and then re-deploy/re-import those OSB projects which are consuming messages from JMS Queue

Join the Conversation

  1. Pranita Wagh's avatar
  2. Rashmi Singh's avatar
  3. Antony Joseph's avatar
  4. Saborni Das's avatar
  5. mohsin shaikh's avatar
  6. Sheetal Saji's avatar

29 Comments

Leave a comment

Design a site like this with WordPress.com
Get started