Skip Navigation
Expand
Troubleshooting problems with site customizations and integrations
Answer ID 11994   |   Last Review Date 10/26/2021

How do I troubleshoot problems with my site customizations and integrations?

Environment

Oracle B2C Service Customizations, Oracle B2C Service Public APIs

All product versions

Issue:

I am seeing errors or other problems with my site customizations, and do not know how to troubleshoot them?

Resolution:

When problems with customizations and integrations are discovered, the first place to look for details is the site/interface info and error logs. These logs will show unhandled/uncaught exceptions encountered, and are available from the console under Configuration->Site Configuration->Logs. Code exceptions that are caught using exception handling in code will not show up in these logs, and there are some types of exceptions that are not caught using exception handling, including application segmentation faults (usually memory errors). When an error shows details such as 'signal 11' this is an indication of a segmentation fault, and in those cases you may need to submit an SR to the Technical Support team for assistance in troubleshooting. Most other errors in these logs will either specify the exact nature of the error, or will contain text that can be used in searching the support site knowledge base to help troubleshoot.

Further, customization logging is a critical component to any Oracle B2C Service site customization. Customization implementers need to code logging into customizations that will be helpful for monitoring, and sometimes additional logging will need to be added if problems arise that are not sufficiently explained using existing logging, as implemented.

Examples scenarios include:

A call to, or run, of a customization or Oracle B2C Service public API is taking longer than expected, and/or is timing out

In cases such as this, logging will need to be used to discover what part(s) of the custom code are taking up the time. Problems of this type can be explained by things such as a) errors or long response times in integration calls, b) ROQL API queries that are running long (thus requiring that involved fields are needing to be indexed), or perhaps there are ROQL queries that can be better written, and c) the volume of requests made to customizations is overloading the site database (Web logs can be helpful to determine this). For details on these that may be helpful see

Answer ID 4340: ROQL Blocklisting

Answer ID 2431: Requesting a Web Log

Answer ID 9897: Adding custom logging to your CPHP customizations

Similarly, calls to public Oracle B2C Service public APIs (such as SOAP and REST APIs), can be checked for adherence to best practices. The following is specific to the SOAP API (Connect Web Services for SOAP), but generally applies to all of the public API endpoints supported by Oracle B2C Service.

Answer ID 8264: Optimal efficiency when creating or updating objects using CWS API

Answer ID 8887: Optimal efficiency when destroying objects using CWS API

Database table lock timeouts and/or connection errors

For details on troubleshooting these types of errors see

Answer ID 9836: MySQL Lock (Lock_wait_timeout error)

Answer ID 10277: Maximum Database Connections

Errors encountered in client-side customizations such as Customer Portal, Browser User Interface (BUI), and .NET AddIns

Client side errors from customizations may be due to server-side errors that will show up in the site/interface logs, but can also be specific to custom code running on the client side. Troubleshooting client-side errors will be specific to the customization involved, and is often going to require customization logging also. Connect for PHP logging can be implemented within Customer Portal customizations, from the PHP components, such as widget controllers and custom models. For details specific to BUI Extension and .NET AddIn customizations see

Answer ID 5346: How to enable Add-In logging

Answer ID 11625: BUI Extensions Best Practices and Troubleshooting

 

Notify Me
The page will refresh upon submission. Any pending input will be lost.