A permanent issue has been identified in integration scenario’s using JMS based interfaces between SAP PI and the Oracle Service Bus – OSB (formerly known as BEA Aqualogic Service Bus). The issue normally arises when the connection of a JMS receiver-or sender-channel becomes temporary unavailable.
When the instance or server hosting the JMS queue is restarted, the SAP PI JMS communication channel is not able to re-establish the JMS connection. As a result existing or new messages placed on the remote JMS queue(s) are not picked up by SAP PI.
The workaround to solve this problem involves in most cases restarting the communication channels and in some times it requires restarting the entire Java stack of SAP PI. After many unsuccessful attempts trying to solve this problem including but not limited to; researching possible applicable SAP notes, requesting support at both SAP and Oracle organizations, we did finally find the source of the problem on the Oracle side of this scenario. In the next lines I will explain how we solved it.
The Oracle Application Server also called the WLS (Weblogic Server) hosting the JMS queues provides several parameters that can be configured for different purposes for instance; performance, security, availability and persistency. See figure 1.
One of those parameters in particular is the “Reconnect Policy” which is applicable for the JMS Connection Factory used by JMS clients (such as SAP PI) responsible for managing the way JMS clients should react in case a connection with the JMS server has to be re-established.
The parameter can be found on the tab “Client” Client under Messaging\Summary of Services\JMS Modules\..
As shown in the screenshot above the parameter can be set to either None, Producer or All. By default the value of the parameter is set to “Producer”.
We changed the value from “Producer” to “None”, save the new settings and restarted the Oracle Application Server to test the new configuration. The results after the change were positive and until now we have not seen the issue anymore.