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 Balancer||A device that controls what requests can enter or leave the B2C Commerce infrastructure.|
|Requests are distributed to one or more web servers.|
|Web Server||A 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 Adapter||B2C Commerce proprietary web server plugin.|
|Deals with page caching, page assembly, and load distribution to application servers.|
|Local Page Cache||A 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.|
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.