I recently ran into an issue where in some of my client’s (more active) environments we were not seeing any recent interactions in the Experience Profile. After much back and forth with Sitecore support it was finally determined that this setting – <setting name=”ContentSearch.SearchMaxResults” value=”500″ /> – in the Sitecore.ContentSearch.config was the culprit. By default it is set to nothing, but when I implemented Solr I followed the instructions in here which specifically tells you to set this value.
Maximum Number of Search Results
This is a global setting found in the Sitecore.ContentSearch.config file.
This setting contains the maximum number of documents to retrieve on a single request if a limit has not been specified in the query, for example, Take(10). It is important to remember, for performance reasons, when querying how many results will be returned from the query being run and to handle them correctly, for example by using paging.
<setting name=”ContentSearch.SearchMaxResults” value=”500″ />
The problem comes in because the Experience Profile dashboard loads all contacts and then afterwards performs a sort operation. That behavior was identified as a bug as it can lead to performance issues when there are a lot of contacts.
Sitecore has given the bug the reference number 163186. The patch that fixes the issue can be downloaded at:
https://sitecore.box.com/s/xppd1ny9gcbduxjahi7dwyye4awl6w6g. Of note, the config file and the dll only need to be put on CM servers.
The Sitecore User Group Conference 2015 was a great event organized by the community for the community. In addition to everything I learn, Sitecore events also give me a chance to catch up with colleagues (present – former – future), vendors and friends, and I always leave with renewed vigor and focus. Below are a couple of quick takeaways from two of the sessions I attended.
Sitecore provides a tool called Hash Stored IPs that must be run when upgrading from 8.1 or earlier. I ran into a few gotchas/good to knows when running the tool.
1. ERROR: System.InvalidOperationException: Failed to validate database. —> System.Exception: Database exist but the following collections doesn’t: GeoIps
Initially the tool didn’t run at all because we were missing the GeoIps collection. If for some reason you do not have this you will need to create the collection manually for the tool to work. A bug has been reported for this – reference number 142192
2. If you have a large analytics database, this takes forever to run and has no mercy in regards to how much memory it consumes on the collection server.
Of note, we are running on much less RAM than recommended so I’m sure that is a contributor. In our case we had roughly 32 million Interactions and 10 million ClassificationMap entries. We had to stop the process after it ran for about 15 hours as it was causing memory issues in production. The good news is that it can be safely stopped and started as many times as necessary. Overall it probably took us around 20 hours to complete over several nights.
3. I was a bit alarmed when in rerunning the tool over several nights we kept having an increase the number of Interactions that were not hashed. It turns out that In 8.2 IPs are only hashed in the GeoIps and ClassificationsMap collections and Interactions that are collected post-upgrade are in slightly different format than those processed by the tool.
Hopefully this saves a few headaches for others.