Reputation: 41
I am running Sitecore 8.2 with one CM server and 3 CD servers. On only one of our CD servers we keep getting the following error:
5396 2017:12:18 00:00:59 ERROR Cannot finish Analytics page tracking
Exception: Sitecore.Analytics.Exceptions.ContactLockException
Message: Failed to extend contact lease for contact e629daf6-1176-4c55-9c17-31b45292212c
Source: Sitecore.Analytics
at Sitecore.Analytics.Tracking.ContactManager.SaveAndReleaseContact(Contact contact)
at Sitecore.Analytics.Pipelines.EndAnalytics.ReleaseContact.Process(PipelineArgs args)
at (Object , Object[] )
at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, Boolean failIfNotExists)
at Sitecore.Analytics.Pipelines.EndAnalytics.EndAnalyticsPipeline.Run()
at Sitecore.Analytics.Pipelines.HttpRequest.EndAnalytics.Process(HttpRequestArgs args)
I confirmed I could telnet to Mongo. I compared the config files with what is on the other CD servers. Code base is exactly the same as other two environments as well. Does anyone have any suggestions on what to check next? I feel like I missed something on this one server since it is the only one having this issue.
Upvotes: 0
Views: 986
Reputation: 2422
You probably need to make sure that Analytics.ClusterName
in (Sitecore.Analytics.Tracking.config) is unique per CD site, Sitecore uses this as unique identifier of the cluster that is locking the contact, When the user session requests travels between the 3 CD servers, xDB on CD1 for example might fail to release it if its locked on the other CDs (2&3).
What you can do is :
Analytics.ClusterName
on each CD server to the unique domain that you assigned to it.CORRECTION:
I contacted sitecore support to get further details, and they told me that if you have single cluster for multiple CD servers, Then you should use the same Analytics.ClusterName for all CD servers, If you have multiple clusters and each cluster is using different session database, then CD servers within each cluster should have the same Analytics.ClusterName that is unique per cluster, So my above answer needed this correction.
Upvotes: 1