WebSphere Commerce Version 7.0.0.7

Troubleshooting: Errors logged during page requests

Errors are generated by multiple page requests. These errors can both occur through a shopper double-clicking, or parallel Ajax calls.

Problem

The following errors are logged to SystemOut.log:
Error Reason for error
CMN0425E: Error while executing request ... 
Please verify if this request was executed concurrently with other 
requests that might generate a new guest user.
When a shopper with generic cookies invokes an action that requires data to be persisted, a guest shopping user is created within WebSphere Commerce. The user is then sent new guest user cookies. If a second request is sent before the guest user cookies are received, it is also sent with the same generic cookie used in the first. Thus, the same primary key from the generic user cookie is used to attempt to persist the activity two times and a duplicate key exception is returned.

For example, a shopper with generic user cookies attempts to add an item to their cart twice in quick succession, without allowing for the page to load.

CWXBR0204I: There are multiple user activity 
cookies while executing request ... only one is used.
A shopper's browser does not contain generic cookies, and the shopper is viewing a page that is loaded with multiple parallel requests. These requests require the shopper to be persisted within WebSphere Commerce. Since there is no generic cookie to persist, a guest shopper is generated for each request. The shopper is then served a different user cookie for each guest shopper created. Only one cookie is used to run subsequent requests.

For example, a user with no cookies loads a page with multiple Ajax calls running in parallel. These Ajax calls require the shopper to be persisted within WebSphere Commerce.

Solution

Both problems can be mitigated by ensuring:
  • Requests that do not require a guest shopping user to be persisted within WebSphere Commerce are identified and changed to be run as generic instead.
  • Multiple Ajax requests on a page are serialized.
  • Double-clicking is handled.