In this blog we will see some common issues that could be faced, the recommended fixes and best practices when integrating with Oracle Logistics Cloud using Oracle Integration Cloud (OIC).
Oracle Logistics Cloud comprises of these below components
This blog discusses issues encountered during a customer engagement using pre-built integrations. However, the principles of this blog are relevant even when designing and activating custom OIC integrations with Oracle Logistics Cloud.
Below is a glossary of terms upfront for easy reference
OTM Oracle Transportation Management Cloud(OTM) from Logistics Cloud
WMS Oracle Warehouse Management Cloud (WMS) from Logistics Cloud
SCM Oracle Supply Chain Management Cloud
OM Order Management from Oracle SCM Cloud
An issue was encountered after activation of OM-OTM pre-built integration. This pre-built integration integrates between Order Management- OM (from Oracle SCM Cloud) and OTM using Integration Cloud.
Pre-built flow information
|Source Application||OM||SCM Adapter|
|Target Application||OTM||Logistics Adapter|
We wont go into the details of the integration itself. Refer to this Support note for details on the OM-OTM pre-built integration Sample Integration with OTM/GTM using ICS (Doc ID 2209248.1)
During testing of the flow it was seen that OIC monitoring shows successful transmission from OM to OTM and also a successful callback but a transaction was not created on OTM. However, the callback response from OTM shows "Null TransmissionBody" in the message as shown below
For OTM 6.4x, Transmission Service does not work when the OTM WSDL url is used in the logistics adapter connection. An offline TransmissionService wsdl has been made available which addresses this issue for 6.4x. It can be accessed from the below support note Transmission Service WSDL with Inline Schemas (Doc ID 2294108.1)
Use the wsdl file provided in the support note when configuring the logistics adapter connection instead of the online wsdl url. Download the offline wsdl provided above for the specific OTM version and update it with the actual OTM host url and port. Use it as the source when creating Logistics cloud connection, as shown below
This will resolve the above issue and ensure that the OIC flow invokes the proper Transmission service on OTM
The issue was encountered during runtime in the OCWMSRECEIPTCONFIRMATION of the WMS- ERP pre-built integrations This integration is used to propagate receipt confirmations from WMS to Oracle ERP Cloud.
Pre-built flow information
|Trigger Application||WMS||Rest Adapter|
|Target Application||ERP||ERP Adapter|
Refer to this support note for details on the WMS - ERP integrations using Integration Cloud Sample Integration Between Oracle Warehouse Management Cloud (release 9.0.0) and Oracle ERP/SCM Cloud (Doc ID 2404671.1)
The integration flow is exposed as rest API to be invoked from WMS. The endpoint url looks as below https://OIC-URL/ic/api/integration/v1/flows/rest/OCWMSRECEIPTCONFIRMATI/1.0/receipt_confirm
After activation of the flow, request timeout error is observed from WMS to OIC. As a result the Receipt Confirmation message is received at OIC. The same request when submitted using a REST client like soapui or postman was able to invoke the endpoint and an OIC instance was created This pointed to the issue being at the network between WMS and ICS.
On further analysis it was found that the ciphers supported by WMS and Integration cloud did not match.
OIC is frontended by LBaaS and supports the following ciphers
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA
WMS running on Oracle Cloud Infrastructure supports the below list of ciphers
An SSL negotiation policy was created in OIC Load Balancer and matching ciphers with WMS were added to the policy.
For example the below 2 ciphers compatible with WMS can be enabled on the OIC Load Balancer
Note - Creating a SSL negotiation policy overrides the default cipher set.
So make sure to add the earlier set of default ciphers also to the SSL negotiation policy before enabling it.
The SSL connectivity was restored after adding WMS matching ciphers to OIC LBaaS instance Note - Depending on the type of Integration cloud used, customers may need to open an Oracle Support SR for this resolution
The issue was encountered during runtime when executing the "OCWMS Receipt Advice from ERP" (OCWMSRECEIPTADVICE). This is part of WMS-ERP pre-built integrations and is used to send PO details from ERP to WMS.
Pre-built flow information
|Trigger Application||ERP||ERP Adapter|
|Target Application||WMS||Rest Adapter|
Refer to this support note for details on the WMS- ERP integrations using Integration Cloud Sample Integration Between Oracle Warehouse Management Cloud (release 9.0.0) and Oracle ERP/SCM Cloud (Doc ID 2404671.1)
After the required setups are completed and after Receipt Advice event is generated from ERP, it was observed that the event does not reach WMS.
OIC endpoint used by the ERP to trigger the flow is of the form https://OIC-URL/ic/api/integration/v1/flows/rest/OCWMSRECEIPTCONFIRMATI/1.0/receipt_confirm
The WMS url that OIC REST adapter uses to POST the PO is of the form https://WMSURL/wms/api/initstage_interface
On further troubleshooting it was seen that the final payload destined for WMS could be successfully posted using a REST client like Postman. But the invocation from OIC to WMS is seen to generate the following error in the OIC Diagnostic logs
Fault Details :
:Application Error http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1 Internal Server Error 500 <![CDATA[https://tb4.wms.ocs.oraclecloud.com/WMS_URL/wms/api/init_stage_interface/]]> <![CDATA[CASDK-0041: An error occurred even before the REST endpoint could be invoked.[[java.net.SocketException: Connection reset]]]]>
It was seen from OIC instance monitoring that this step takes 2 minutes and then times out with Connection Reset error. A curl test from OIC VM to WMS endpoint confirmed the same behavior.
$ curl -X POST \ https://WMS_URL/wms/api/init_stage_interface/ \ -u 'user:password' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'actual payload taken from ICS diagnostic logs after payload tracing' curl: (56) SSL read: errno -5961
Curl command failed with SSL error (shown above) after waiting for 2 mins.
This error occurs an MTU mismatch between OIC and WMS
Check for the MTU size configured on eth0 interface in the OIC VM. This can be done using "ifconfig -a" relevant output of the command is shown below
$ ifconfig -a eth0 Link encap:Ethernet HWaddr 02:33:39:8C:C0:41 ... UP BROADCAST RUNNING MULTICAST MTU:8900 Metric:1 RX packets:2584221 errors:0 dropped:0 overruns:0 frame:0 TX packets:3034685 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1881219361 (1.7 GiB) TX bytes:1887746542 (1.7 GiB)
The recommended value is 1500 as per oracle documentation for OCI to OCI-Classic communications.
Follow the instructions in the doc to change the MTU value to 1500.
After this change, the OCWMSRECEIPTADVICE REST API call is received with payload at WMS and completes as expected. Note: Depending on the type of Integration cloud used, customers may need to open an Oracle Support SR for this resolution