A punch out connection error _ERR_PROCUREMENT_INVALID_SUPPLIER_COOKIE occurs intermittently when a customer tries to connect to a storefront.
The following error intermittently occurs when executing the PunchOutCatalogDisplayCmd:
PunchOutCatalogDisplayCmdImpl.performExecute supplier cookie expired
PunchOutCatalogDisplayCmdImpl performExecute _ERR_PROCUREMENT_INVALID_SUPPLIER_COOKIE
This error occurs intermittently, so if the customer continues to try to connect to the storefront punch out site, they are eventually able to connect successfully.
Punch out uses a cookie (Supplier Cookie) to help establish the session for the user. This is stored internally in memory, but may be lost when in a clustered environment if the memory structure is cached. In this case, the cause would be that the object cache for WCSharedDistributedMap is missing in the configuration.
Diagnosing the problem
If the replication type settings in WCSharedDistributedMap are different or missing among two servers, the requests might be bounced back and forth between the two servers in the cluster instead of remaining on the first requested server by reference to the JSESSIONID.
"Both Push and Pull" is required to allow the SupplierCookieTable to be shared amongst the servers.
Resolving the problem
Verify and check to make sure the object cache is defined and cache replication is enabled and create if necessary:
1. Login to the WebSphere Application Server Administrative Console
2. Navigate to: Resources > Cache instances > Object cache instances
3. Set the scope to the cluster level
4. Click New to create a new object cache instance. Fill in the required
fields as follows:
JNDI name: services/cache/WCSharedDistributedMap
Cache size: 2000
Default priority: 1
Dependency id support should be checked.
Enable cache replication should be checked.
Full group replication domain: <YOUR_REPLICATION_DOMAIN>
Replication type: Both push and pull
Push frequency: 0