Search for existing answers to your product and support questions.
Familiarize yourself with our support site and learn best practices in working with our team.
Manage Service Requests, View and update service requests submitted by you and others in your organization.
Submit a new issue to our technical support team.
Oracle B2C Service insights from our Technical Support team subject matter experts
Browse resources to assist you in launching your implementation and ensure a successful go-live.
Access your OCI account.
Find product documentation for supported versions of B2C and documentation libraries for related service solutions.
You will have the tools to improve your customers' experience when you learn about all the things our products can do.
Find links for API documentation, Custom Processes, Customer Portal, and Agent Browser UI Extensibility Framework.
Explore how accelerators are designed to demonstrate how an integration scenario could be built using the public integration and extension capabilities of the Oracle B2C Service.
Prepare for a successful transition by reviewing upcoming release changes and enhancements.
Explore webinars, events, and feature kits to learn about B2C Service features, functionality, and best practices from the technical experts.
Oracle MyLearn offers a portfolio of free and paid subscription-based learning resources to help you gain valuable skills, accelerate cloud adoption, increase productivity, and transform your business.
Empower your team with the skills to implement, configure, manage, and use your applications with Customer Experience Cloud Training.
Our goal is to facilitate a friendly, supportive environment where members can easily collaborate with each other on solutions and best practices.
Ask and answer questions specific to B2C.
This is an exciting resource intended to help with your Oracle Service Cloud Analytics.
Share product improvement ideas and enhancement requests with Oracle Development, while collaborating with other Oracle customers and partners.
Update your phone number, email notification preferences, and severity 1 and severity 2 contact preferences.
View the contact managers within your organization.
Find contact information of the Technical Account Manager (TAM) and Client Success Manager (CSM) for your organization.
Environment:
Process Designer, Custom Processes (CPM), Connect for PHP (CPHP) All product versions
Resolution:
The use of an appropriate timeout is required with use of PHP curl in a CPM customization. In addition to specifying a timeout value in code, there are other considerations to make in terms of the potential to retry the call if the request times out.
What is an appropriate timeout?
A curl call timeout of five seconds is highly recommended. This value provides enough time for most integration requests to complete and is small enough to ensure that the asynchronous CPM queue does not fall behind, or become backlogged (in other words). A larger timeout is valid if the volume of transactions processed by the queue allows for it, for any given implementation.
When a curl call reaches a configured timeout threshold, should I ensure that the request is retried?
When a request is made to an integration, and the PHP curl call hits the configured timeout, the PHP process stops waiting for the response from the integration. This, however, does not mean that the request will fail or need to be retried. Instead, the requesting PHP script will not have a response to analyze (in order to determine if the request has completed successfully or not). As such, the determination as to whether or not to retry the request depends on the individual business requirements for each specific implementation.
When a PHP curl call times out in CPM code, how do I ensure that the request is retried?
If it is determined that retrying an integration call is appropriate, this can be accomplished in different ways. One way is to utilize the inherent retry mechanism for asynchronous CPMs when triggered through a mapping in the Process Designer (only, as this does not occur for those triggered from business rules, surveys or campaigns). For further details on this see
Answer ID 6607: Asynchronous CPM "processes" queued are removed automatically after ten unsuccessful tries
This first requires that the curl call is analyzed in code, for whether or not the request timed out. If it did, then the code can throw an exception manually to ensure the CPM is retried (up to the total tries allowed). The PHP curl_errno function is recommended for evaluating the curl response, and then a manual exception may be thrown (that is not being caught in any surrounding PHP try/catch code) to signal to the parent process that there has been a failure. For details on this see
Answer ID 9640: Connect for PHP Best Practices and Gotchas
Also, if using the inherent retry functionality it is important to understand that this could cause the CPM customization to enter an error state. For further details on this see
Answer ID 10025: When does a Custom Process (CPM) enter an error state?
Alternatively, the CPM code can retry the curl call again in the same CPM run, as long as there is enough time to do so within the 157 second limit for an asynchronous CPM. Another method to retry an integration call would be to use an API save intended to re-trigger the asynchronous CPM. For the latter to be effective there must be some change made to the object when the API save is run. Custom objects or fields can also be utilized to evaluate and update objects using the APIs (CPHP etc.) from other customizations (custom crons for example, or custom scripts called externally on a schedule), with the purpose of re-triggering failed CPM runs.
In any case, when integration call retries are made it is important to understand that any object data sent to integrations will reflect the state of the object data at the time the retry of integration call is made. For details on this see
Answer ID 12386: CPMs and Event Subscriptions Not Sent or Sent with Duplicate Data
For further details see
Answer ID 8392: CPM/Process Designer Best Practices and Guidelines