The Salesforce Developers website will undergo maintenance on May 29, 2024 from 3:00 a.m. UTC to 10:00 a.m. UTC. The maintenance process may affect the availability of our documentation. Please plan accordingly.

Troubleshooting Infrastructure

To effectively troubleshoot B2C Commerce, you must understand its infrastructure. Start by familiarizing yourself with the basic components of the Salesforce B2C Commerce infrastructure for a *Production *instance, which include:

Firewall Load BalancerA device that controls what requests can enter or leave the B2C Commerce infrastructure.
Requests are distributed to one or more web servers.
Web ServerA computer that is responsible for accepting HTTP requests from clients and serving them HTTP responses.
At least two web servers are provisioned for a production instance.
Web AdapterB2C Commerce proprietary web server plugin.
Deals with page caching, page assembly, and load distribution to application servers.
Local Page CacheA local storage area where frequently accessed data can be stored for rapid access. The local cached copy of data can be accessed instead of recomputing it or retrieving it from the application server, reducing the average access time.
Application Servers

Software that executes business logic and presentation. There are at least two application servers provisioned for a production instance. | |Shared Database Schema |All application servers of a B2C Commerce instance access the same database schema. Different instances use different schemas. | |Shared File System (Cartridges, Images, Log Files) |Part of the file system that all application servers of a B2C Commerce instance can access. |

It is important to understand how HTTP session affinity works within the infrastructure

  • For Web Servers / Web Adapter:
    • Web Servers / Web Adapters are stateless in regard to sessions. Thus, they treat each request as an independent transaction that is unrelated to any previous request.
    • The load balancer randomly distributes a session's requests to the Web Servers. One request can go to one Web Server, and the next request to another.
  • For Application Servers
    • Application servers are session-aware because they deal with things like session attributes, authentication information, form data, clickstream data, and the Pipeline Dictionary at an Interaction Continue Node.
    • All the requests of a particular session go to the same application server.