The Easier Way to Sitecore XP 9

This article was originally posted in its entirety on the Paragon Blog here: http://www.paragon-inc.com/blog/sitecore-9-install-the-easy-way.


You’ve either arrived because you made it through the full series or a quick google landed you here as you where looking for a quick and easy Sitecore XP 9 install.

Most of the following was taken from the Sitecore Installation Guide but is a little buried in all the documentation, so this will be a long term refernece for myself, my teams, and now you!

Prerequisites

The Steps

  1. Install MS SQL 2016 SP1 or later
  2. Install Web Deploy 3.6 for Hosting Servers (done via the Web Platform Installer)
  3. Install Url Rewrite 2.1 (done via the Web Platform Installer)
  4. Install Microsoft SQL Server Data-Tier Application Framework (DacFx) version 2016
  5. To support DacFx, the target SQL server needs to allow users and logins at the DB level, this can be configured/confirmed by running the following SQL script
    sp_configure 'contained database authentication', 1;
    GO
    RECONFIGURE;
    GO
  6. Extract the contents of Sitecore 9.0.1 rev. 171219 (WDP XP0 packages).zip to a working directory. You should see the following
    • Sitecore 9.0.1 rev. 171219 (OnPrem)_single.scwdp.zip
    • Sitecore 9.0.1 rev. 171219 (OnPrem)_zp0xconnect.scwdp.zip
    • XP0 Configuration Files 9.0.1 rev 171219.zip
  7. Extract the contents of XP0 Configuration Files 9.0.1 rev 171219.zip, and you should have the following JSON configuration files, this should be the same directory as the WDP packages in step 6:
    • sitecore-solr.json
    • sitecore-XP0.json
    • xconnect-createcert.json
    • xconnect-solr.json
    • xconnect-xp0.json

    At this point the working directory should look like this:
    Sitecore Easy Install - Working Directory

  8. Open a PowerShell Command prompt as Admin
  9. Change directory to your Working Directory as defined in step 7
  10. Download the install script from Sitecore Easy Install Gist by running the following
    (Invoke-WebRequest https://gist.githubusercontent.com/gillissm/1a3d826e6287e4cd106acea941748643/raw/c59dd9cef02d7e4adec1a90188d099948af43662/SitecoreEasyInstall.ps1).Content | Out-File "SitecoreEasyInstall.ps1"
  11. Open SitecoreEasyInstall.ps1 in your favorite editor (my recommendation is to open the entire working directory in Visual Studio Code).
  12. The first section of the file are global parameters that will define how your environment is configured and installed so update accordingly based on the instructions. At a minimum all values in the ‘CUSTOM TO THE ENVIRONMENT’ section should be completed.
    Sitecore Easy Install - Install Parameters
  13. From the PowerShell prompt run
    .\SitecoreEasyInstall.ps1
  14. Grab some coffee (or beer, I won’t judge) while it runs. (On my machine I was up and runninng in about 10 minutes.)
  15. Enjoy Sitecore Experience Platform 9!!!

 

Advertisements

Experience Sitecore XP

Introduction

There has been a spattering of blogs out there walking through the installation and setup of Sitecore 9. My series has not deviated much beyond many of these. But I feel if I can write about it, explain it, then can claim a certain level of proficiency.

This is the last in the Sitecore Experience Platform install series and at the end of this you should be up and running.

Basic Terminology

As with any new version there is some updated/new terminology used to describe Sitecore and the different elements used for it.

Sitecore is divided into two distinct product areas.

  • Sitecore Experience Management (XM) – the content management and personalization features.
  • Sitecore Experience Platform (XP) – the content management, personalization, marketing and analytics features.

The Sitecore Experience Platform is divided into many logical areas:

  • Sitecore Experience Database (xDB) – where all experience data of the contact is stored.
  • xConnect – an independent service layer that connects the xDB to Experience Applications and allows other channels to add data to the xDB.
  • Experience Applications – with applications such as List Manager, Campaign Manager, FXM, and Experience Analytics.
  • Experience content management – with applications such as the Experience Editor and Experience Explorer
  • Sitecore Installation Framework (SIF) – to PowerShell and JSON based framework for installing Sitecore 9

Topology Options

To better manage the design of a Sitecore installation, there is now better detailed information on the types topology one might use with Sitecore

  • XP0 (XP Single) – Meant for development and testing scenarios. Sitecore Experience Platform is installed as two instances, Sitecore (content management) and xConnect
  • XM1 (XM Scaled) – Installs only the Sitecore Experience Manager elements for Content Delivery and Content Management roles. No xConnect or xDB is installed in this topology.
  • XP1 (XP Scaled) – Performs an installation of the full stack of Sitecore Experience Platform, allowing for each role to be assigned to specific servers.

Environment Needs

The Procedure

This will follow the steps I used to install an XP0 on my local machine for development. This will generate the following for us:

  • The Sitecore stand-alone website that handles content management, content delivery, reporting, and processing.
  • The xConnect and xDB web services.
  • Search indexes on the Solr search engine.
  • A Windows service that runs the Marketing Automation engine.
  • A Windows service that runs the xConnect indexer.
  • The Sitecore content and xDB databases.
  • A self-signed client certificate for secure communication between Sitecore and xConnect.
  • A self-signed server certificate for running HTTPS on the xConnect and xDB web services.

Getting the Basics Ready

  1. Install Solr (a minimum and maximum of 6.6.2 is required), Solr installation does require SSL setup if you follow my instructions for Solr this will be configured for you.
  2. Install Sitecore Installation Framework (SIF), see my article name
  3. Install Sitecore Foundation, see my article name
  4. Install Web Deploy 3.6 for Hosting Servers (done via the Web Platform Installer)
  5. Install Url Rewrite 2.1 (done via the Web Platform Installer)
  6. Install Microsoft SQL Server Data-Tier Application Framework (DacFx) version 2016
  7. To support DacFx, the target SQL server needs to allow users and logins at the DB level, this can be configured/confirmed by running the following
    SQL scriptsp_configure 'contained database authentication', 1;
    GO
    RECONFIGURE;
    GO
    
  8. Extract the contents of Sitecore 9.0.1 rev. 171219 (WDP XP0 packages).zip to a working directory. You should see the following
    • Sitecore 9.0.1 rev. 171219 (OnPrem)_single.scwdp.zip
    • Sitecore 9.0.1 rev. 171219 (OnPrem)_zp0xconnect.scwdp.zip
    • XP0 Configuration Files 9.0.1 rev 171219.zip
  9. Extract the contents of XP0 Configuration Files 9.0.1 rev 171219.zip, and you should have the following JSON configuration files:
    • sitecore-solr.json
    • sitecore-XP0.json
    • xconnect-createcert.json
    • xconnect-solr.json
    • xconnect-xp0.json

Customizing the Install Configurations

Update the parameters for each configuration file, while updating it is helpful to also include a default value for each parameter to help with future re-use as well as avoiding being prompted during the installation. (I recommend opening the parent folder in Visual Code, to easily access all the files as you work through updating them.)

NOTE: Any paths need to have the slash escaped via doubling it. ‘\’ become ‘\’.

Sitecore 9 Install - Configuration files

Sitecore-Solr.json

The first configuration file does manage is for allowing Sitecore to interact with our Solr install. There are four values of concern in this file.

Sitecore 9 Install - sitecore-solr.json

If you followed my Solr install instructions your values should be:

  1. https://sitecoresolr:8983/solr
  2. “C:\sitecoresolr\solr-6.6.2”, this is the path which the directory sever exists in.
  3. “solr-6.6.2”
  4. “coffeehousexp”

xconnect-createcert.json

Sitecore 9 by default is meant to run as a secure application. This default secure state requires that SSL certificates are trusted and in-place at time of installation, instead of as an afterthought. On a local development machine, this means a self-signed certificate needs to be properly created and trusted.

This can easily be accomplished on a DEVELOPMENT machine via the xconnect-createcert.json file.

Sitecore 9 Install - xconnect-createcert.json

  1. Set a name for the certificate, I recommend using the same value as used for your Solr core prefixes for easy identification.
    "DefaultValue": "coffeehouse"
  2. Set the location the newly generated cert was saved, I recommend the same location as all your other install files. (Don’t forget to escape the slashes.)
    "DefaultValue": "C:\Sc9Install"
  3. Set the name of the root certificate.
    "DefaultValue": "SitecoreDevelopmentCert"

Siteocore-XP0.json

Updating sitecore-xp0.json. This file drives the main installation of Sitecore, you’ll note that there a number of items missing ‘DefaultValue’ which we want to complete to allow for easy reproduction.

Sitecore 9 Install - sitecore-xp0.json part 1

  1. Add a new default value pointing to the location of Sitecore 9.0.1 rev. 171219 (OnPrem)_single.scwdp.zip
    "DefaultValue": "C:\Sc9Install\Sitecore 9.0.1 rev. 171219 (WDP XP0 packages)\Sitecore 9.0.1 rev. 171219 (OnPrem)_single.scwdp.zip"
  2. Add a new default value pointing to your local license file.
    "DefaultValue": "C:\SitecoreVersions\license.xml"
  3. Add a default value indicating the prefix all DBs should be named with. (Hint: make this the same as the solr prefix.)
    "DefaultValue": "coffeehouse"
  4. Add a default value indicating the prefix all DBs should be named with. (Hint: make this the same as the solr prefix.)
    "DefaultValue": "coffeehouse"
  5. Name of the certificate as defined in xconnect-createcert.json, step 1.
    "DefaultValue": "coffeehouse"
  6. Enter the name of your site, for my purposes this will be ‘coffeehouse’.
    "DefaultValue": "coffeehouse"
  7. Opportunity to update that admin password (and drive you nuts during development when you change it now but forget.)
  8. and 9. are easy way to make sure all your connection strings are set accordingly.

The next segment shown of parameters continue the thread of security by allowing unique SQL users and passwords to be generated for each connection string. My only suggestion is to prefix all of these with your site name, so for future cleanup it is easy to remove.
Sitecore 9 Install - sitecore-xp0.json part 2
Sitecore 9 Install - sitecore-xp0.json part 3

In portion 4 of the parameter list we get back to values that require updating for a local environment.

Sitecore 9 Install - sitecore-xp0.json part 4

  1. Set the connection to your SQL Server Instance
    "DefaultValue": "PLW\LOCALSQL2017"
  2. If you have a custom Solr install this value you will need updated.

The final portion of the parameters deal with xConnect.

Sitecore 9 Install - sitecore-xp0.json part 5

  1. Enter the URL that will be used for xConnect connectivity.
    "DefaultValue": "https://xconnect.coffeehouse.com"
  2. Another opportunity to make sure things are secure. (Feel free to skip over for your local setup.)

xconnect-solr.json

This configuration setup should mirror what was done for sitecore-solr.json.

Sitecore 9 Install - xconnect-solr.json

If you followed my Solr install instructions your values should be:

  1. https://sitecoresolr:8983/solr”
  2. “C:\sitecoresolr\solr-6.6.2”, like Sitecore-Solr.json this will point to the parent directory of Solr’s server folder.
  3. “solr-6.6.2”
  4. “coffeehousexp” (you should provide the name for your local site, this allows the same Solr instance to be used for all your Sitecore Instances, as each will be named uniquely.)

xconnect-xp0.json

The final file to be updated is for xConnect configuration. A number of these values have been previously set as part of sitecore-xp0.json, in which case the values need to be consistent between the two files.

Sitecore 9 Install - xconnect-xp0.json - part 1

  1. Add a new default value pointing to Sitecore 9.0.1 rev. 171219 (OnPrem)_zp0xconnect.scwdp.zip
    "DefaultValue": "C:\Sc9Install\Sitecore 9.0.1 rev. 171219 (WDP XP0 packages)Sitecore 9.0.1 rev. 171219 (OnPrem)_zp0xconnect.scwdp.zip"
    
  2. Add a new default value pointing to your local license file.
    "DefaultValue": "C:\SitecoreVersions\license.xml"
  3. Name the XConnect instance will be installed as, make sure this is unique to this instance.
    "DefaultValue": "xconnect.coffeehousexp.com"
  4. Name of the certificate as defined in xconnect-createcert.json, step 1.
    "DefaultValue": "coffeehousexp.com"
  5. Add a default value indicating the prefix all DBs should be named with. (Hint: make this the same as the solr prefix.)
    "DefaultValue": "coffeehouse"
  6. Add a default value indicating the prefix all DBs should be named with. (Hint: make this the same as the solr prefix.)
    "DefaultValue": "coffeehouse"
  7. Name of the certificate as defined in xconnect-createcert.json, step 1.
    "DefaultValue": "coffeehousexp.com"

Sitecore 9 Install - xconnect-xp0.json - part 2

This next section deals with SQL accounts and passwords.

  1. and 2. Allow for the SQL Admin account to be setup, this will be used for DB creation and access.
  2. Set the Solr URL if it has been changed from the default setup of ‘https://sitecoresolr:8983/solr’
  3. to 7. are the different SQL User Accounts that are created, these need to match any changes made in sitecore-xp0.json.

Sitecore 9 Install - xconnect-xp0.json - part 3

The final section contains a mixture of SQL setup as well as final XConnect updates.

  1. to 4. are the different SQL User Accounts that are created, these need to match any changes made in sitecore-xp0.json.
  2. Set the connection to your SQL Server Instance
    "DefaultValue": "PLW\LOCALSQL2017"
  3. Setting the type of configuration that is to be setup for XConnect, possible options are unclear at the time, so we will leave it as is.

Finally, Time to Install

The order of installation is very important as the steps are inter-related.

  1. Open a PowerShell prompt as Admin
  2. Confirm that SIF is fully updated by running
    Update-Module SitecoreInstallFramework
  3. Change directory to the location of your config JSON files.
  4. Run
    Install-SitecoreConfiguration -Path .\configs\xconnect-createcert.json

    Sitecore 9 Install - xconnect-createcert.json - Install Output

  5. Run
    Install-SitecoreConfiguration -Path .\configs\xconnect-solr.json

    Sitecore 9 Install - xconnect-solr.json - Install Output

  6. Run
    Install-SitecoreConfiguration -Path .\configs\xconnect-xp0.json

    Sitecore 9 Install - xconnect-xp0.json - Install Output

  7. Run
    Install-SitecoreConfiguration -Path .\configs\sitecore-solr.json

    Sitecore 9 Install - sitecore-solr.json - Install Output

  8. Run
    Install-SitecoreConfiguration -Path .\configs\sitecore-XP0.json

Post-Install Sitecore Steps

After all the scripts have successfully ran it is time for a few final post steps to ensure completion.

  1. Login into the admin side of Sitecore, http://local.coffeehousexp.com/sitecore.
  2. User the Admin password you specified in the sitecore-xp.json
  3. From the Launchpad, open Control Panel then click on Indexing Manager
  4. From the modal be sure all indexes are selected and click Rebuild.
  5. Once that completes, we will need to rebuild the Link Database. From the Control Panel click Rebuild Link Databases
  6. Select Master and Core only, and click Rebuild
  7. Next up is a deployment of the Marketing Definitions. Still in the Control Panel click Deploy marketing definitions
  8. From the shown modal make sure everything is selected and click Deploy
  9. Return to the Launchpad and open the Content Editor and perform a full site republish
  10. Open a new browser and hit your site to be welcomed by the new SC9 base site, http://local.coffeehousexp.com
    Sitecore 9 Install - Homepage

 

Solr Setup for Sitecore XP

Solr

As we continue through the steps for Sitecore Experience Platform installation, the next thing we must have is Solr. This tries to simplify that process.

Background

When installing Sitecore 9 for local development or on-premise for your organization Solr is now the only search provider fully supported. Lucene can still be used to support search within the Context Editor, but all analytics related, and site search scenarios now use Solr or when in the cloud Azure Search Provider.

The following guide will be focused on setting up Solr to support Sitecore 9 on local developer’s machine, where everything (SQL, Sitecore, Solr, etc…) are all installed on the same machine. The steps taken can be used to setup an all in one development or QA server, but should not be used for production setup.

Choose a method

When installing Solr there are many different options that become available, from a direct install, to a pre-packaged solution like Bitnami, a cloud solution, or even a Docker container.

I initially set out to write this guide leveraging Bitnami, as I’ve had a lot of success and quick setup leveraging it, but as it happens old versions of their packages are difficult to find, and Sitecore 9 is tied to Solr 6.6.2. I repeat Sitecore 9.0 update 1 is tied to Solr 6.6.2!!! (I’ve burned a week or so trying to make it work with Solr 7.2 during this series.)

Docker is an intriguing scenario to me, but I’ve got a lot more learning to do before I can successfully get up and running, and I’m in a hurry to start my Sitecore XP 9 life…so this lands me with doing a traditional local install.

As mentioned, Solr is a critical component to Sitecore XP 9, and historical a critical piece to large site implementations. To that benefit there are many write-ups out there regarding Solr installs for Sitecore. The one I found to be very helpful was done by fellow MVP Jeremy Davis. Who has written up Sitecore Installation Framework (SIF) PowerShell module to simplify and streamline the installation you can read his article at https://jermdavis.wordpress.com/2017/11/13/solr-installs-with-sif/.

I’ll be walking you through the steps I took leveraging his excellent PowerShell module.

Steps

  1. Ensure PowerShell will allow for running of unsigned modules by opening a PowerShell prompt as Admin
    Run Set-ExecutionPolicy Unrestricted
  2. Install Java if you don’t already have it.
  3. Install Sitecore Installation Framework (SIF), if you need this check out my how-to from last week .
  4. Copy Jeremy’s PowerShell module code into a new file name ‘SolrInstall-SIF-Extensions.psm1‘ from his Gist at https://gist.github.com/jermdavis/49018386ae7544ce0689568edb7ca2b8#file-solrinstall-sif-extension-psm1
  5. Copy the associated JSON config into a file named ‘SolrInstall-Config.json‘ from https://gist.github.com/jermdavis/49018386ae7544ce0689568edb7ca2b8#file-solrserver-json.I’ve created a fork of the config JSON file that includes updates for JRE runtime and most importantly updated NSSM version for Windows 10 Creator Update machines, find it at https://git.io/vAJXS.
    Solr Install - Files
  6. Open the config JSON, SolrInstall-Config.json, in your preferred editor (my recommendation is Visual Studio Code)
  7. Review the Parameters section and confirm that the default values are correct for your installation. Note for Sitecore 9.0 and 9.0 update 1 do NOT change the Solr version. I found I needed to change the following

    JREVersion => 9.0.4, this should be the JRE value used in the folder path to your Java installation, ie C:\Program Files\Java\jre-9.0.4

    NSSMVersion => 2.24-101-g897c7ad, there is a known issue with stable 2.24 version of Non-Sucking Service Manager on Window 10 machines where it will not start the service.

    SolrHost => sitecoresolrMake note of this name as it will be critical to future steps of the install process

    SolrPort – should be updated if you already have an instance of Solr running on the default port 8983.

  8. Confirm the Variables point to valid paths on your machine. I found the following required updating for me

    JREPath => C:\Program Files\Java\jre-

    NSSMSourcePackage => https://nssm.cc/ci/nssm-

  9. Open a PowerShell command prompt as Admin.
  10. Confirm SIF is update and installed by running
     Update-Module SitecoreInstallFramework
  11. Confirming everything installed correctly is as easy as running the following command, at time of writing the current version is 1.1.0
     Get-Module SitecoreInstallFramework -ListAvailable
  12. Change directory to the location of your config JSON and PowerShell Module file
  13. Before running the install the PowerShell Module needs to be placed in one of the known module library locations, found via running.
     $env:PSModulePath

    Solr Install - Module Locations
    NOTE: The psm1 file needs to be placed into a folder of the same name minus the extension with in the location you pick above.

  14. Run the install via the following command
     Install-SitecoreConfiguration .\SolrInstall-config.json

    Solr Install - Install Script
    NOTE: If you end up with the install running and then failing with a message of “Failed to start service ‘solr-6.6.2 (solr-6.6.2)'” then you are most likely facing the NSSM Windows 10 issue, and will need to either manually install the pre-release build or delete what you have and re-run the install job with an updated config such as this one https://git.io/vAJXS.
    Solr Install - Install Script - Service Start Error

  15. Solr should open in your browser or you should be able to reach it via: HTTPS://sitecoresolr:8983/solr
    Solr Install - Solr Admin Screen

Getting Ready for Security in Sitecore XP 9

Security in Sitecore 9 Experience Cloud

The next step towards installing Sitecore Experience Platform 9 is making sure we can easily handle the creation of locally signed certificates.

Background

Sitecore 9 by default is meant to run as a secure application. To help with managing these new security needs, the good (and smart) people at Sitecore have provided some PowerShell scripts to help. These scripts are found as part of the Sitecore Fundamentals module, which can be installed manually via a download from Sitecore, or through a custom MyGet Feed as shown here.

Sitecore Fundamentals Install

As I prefer to script for repeatability and ease of sharing with my dev team, this guide will be based on installing Sitecore Fundamentals via the MyGet feed approach.

Setup PowerShell to interact with the Sitecore MyGet feed

  1. Open a PowerShell command prompt, ensure you are running it as Admin
  2. Register the connection to MyGet feed, at the prompt enter (Note: if you have followed my SIF Install skip to step 3.)
    Register-PSRepository -Name SitecoreGallery -SourceLocation https://sitecore.myget.org/f/sc-powershell/api/v2

    Sitecore Fundamentals - Register Sitecore Gallery

  3. Install the Sitecore Fundamentals module, at the prompt enter
     Install-Module SitecoreFundamentals
  4. PowerShell will ask if untrusted scripts can be ran, enter ‘A’ and hit Enter. (Note: If you have already set this value during SIF Install won’t apply to you.)Sitecore Fundamentals - Accept Untrusted Scripts
  5. Before performing any other steps, and each time before you use the module, you will want to perform a check and update of the module via
     Update-Module SitecoreFundamentals
  6. Confirming everything installed correctly is as easy as running the following command, at time of writing the current version is 1.1.0
    Get-Module SitecoreFundamentals -ListAvailable

    Sitecore Fundamentals - Available Versions

You should now be ready leverage Sitecore Fundamentals as needed in maintaining and installing Sitecore.

Sitecore Install Framework

Sitecore Installation Framework (SIF)

This is the first in my series breaking down the installation of Sitecore Experience Platform 9. I’ve tried to chunk the required steps, allowing you to take your time moving through the installation. The serires will conclude with how I suceeded in installing everything in 15 steps.

Background

The Sitecore Install Framework (SIF) enables users to deploy and configure a Sitecore environment using a standard configuration design that can be extended through custom PowerShell functions.

It is based on a combination of Microsoft PowerShell commands and JSON based configuration files.

Installation of SIF is provided in two flavors, a manual process and a MyGet feed based process via PowerShell.

You can find SIF at https://dev.sitecore.net/Downloads/Sitecore%20Installation%20Framework/1x/Sitecore%20Installation%20Framework%2011

SIF Install

As I prefer to script for repeatability and ease of sharing with my dev team, this guide will be based on installing SIF via the MyGet feed approach.

Setup PowerShell to interact with the Sitecore MyGet feed

  1. Open a PowerShell command prompt, ensure you are running it as Admin
  2. Register the connection to MyGet feed, at the prompt enter
    Register-PSRepository -Name SitecoreGallery -SourceLocation https://sitecore.myget.org/f/sc-powershell/api/v2

    SIF - Register Sitecore Gallery

  3. Install the SIF module, at the prompt enter
     Install-Module SitecoreInstallFramework
  4. PowerShell will ask if untrusted scripts can be ran, enter ‘A’ and hit Enter.
    SIF - Accept Untrusted Scripts
  5. Before performing any other steps, and each time before you use the module, you will want to perform a check and update of the module via
     Update-Module SitecoreInstallFramework
  6. Confirming everything installed correctly is as easy as running the following command, at time of writing the current version is 1.1.0
    Get-Module SitecoreInstallFramework -ListAvailable

    SIF - Available Versions

You should now be ready to continue forward leveraging SIF to install and manage your Sitecore 9 Experience Cloud instance.

Planning for Cache in Sitecore

This is a follow-up to my Unofficial Sitecore Planning Checklist, where I try to consolidate as much information as I can find on Sitecore’s built in caching.

One of the easiest ways to improve a visitor’s perceived impression of any website visit is through a well-tuned cache. A cache which has been properly tuned will be able to server of requested content quicker, sometimes magnitudes faster than rebuilding the HTML for a page on each request.

Sophisticated caching scenarios can be configured through third-party tools and applications, but even for the most highly trafficked site properly tuning Sitecore’s different cache options should provide the desired performance gains. As site cache is configured and tuned, be aware the need for vertical or horizontal scaling may become necessary. (For details on scaling Sitecore checkout Scalability)

Determine the cache limits required

The general practice for Sitecore caching tuning is to turn all cache limits off via the following simple cache patch config:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <settings>
      <setting name="Caching.DisableCacheSizeLimits">
    <patch:attribute name="value">true</patch:attribute>
    </settings>
  </sitecore>
</configuration>

With the cache limits now disabled, Sitecore will try to manage based on current traffic and available resources to cache as much as possible. By performing well structured load test or allowing the site to run in this manner, the team should monitor both server resource utilization as well as the Sitecore cache levels to determine areas that should be manually limited to maximize performance.

To monitor what Sitecore has cached you can use the Sitecore admin page, http://&lt; your domain >/Sitecore/admin/cache.aspx, or leverage the Sitecore Marketplace module Caching Manager, https://marketplace.sitecore.net/en/Modules/Caching_Manager.aspx.

Cache Manager Options

After data collection has occurred you are ready to begin to evaluate which caches need their limits adjusted from the default level. For more information on the different cache limits that can be set see Sitecore CMS 7.0 – 7.2 CMS Performance Tuning Guide.pdf and Sitecore CMS 6.6 or later Cache Configuration Reference.pdf.

Configuring HTML Cache of Components

The first level of caching to configure to is review each rendering that is created and set the appropriate HTML level caching on it.

Rendering Cache Option

To turn HTML cache on for the rendering, select the first option Cacheable. From here you can customize the how different variations of the control should be cached via the different ‘Vary By’ options. Finally, you can mark that all cache be cleared when the search index is updated via the ‘Clear on Index Update’ selection.

The following fuller description of each cache option is taken from Chapter 4: Output Caching in Sitecore CMS 7.0 or later Presentation Component Reference.pdf.

Clear on Index Update

The Clear on Index Update property controls whether or not a control clears its cache when an item that is associated with the control is updated in the index. This is useful for any control that uses the new Search API to populate its data sources. For example:

  • You have a control that returns all the products that are on special offer from the index.
  • The Clear on Index Update property for this control is set to True.
  • The price of each product is stored in the index.

If someone updates the price of one of the products on special offer, the Clear on Index Update property will the trigger the control to clear its cache because something has been updated in the index that is bound to the control.

VaryByData

The VaryByData property controls whether or not output caching varies based on the data source of the presentation component.

Set the VaryByData property:

  • To False for components that do not generate different output when used with different data sources.
  • To True for components that generate different output when used with different data sources.

VaryByDevice

The VaryByDevice property controls whether or not caching varies based on the name of the context device.

Set the VaryByDevice property:

  • To False for components that do not generate different output when used with different devices.
  • To True for components that generate different output when used with different devices.

VaryByLogin

The VaryByLogin property controls whether or not output caching varies based on whether or not the user has authenticated. For caching configuration involving the VaryByLogin property, the layout engine treats all anonymous users as a single authenticated user.

Set the VaryByLogin property:

  • To False for components that do not generate different output for authenticated than for unauthenticated visitors.
  • To True for components that generate different output for authenticated than for unauthenticated visitors.

VaryByParm

The VaryByParm property controls whether or not output caching varies based on rendering parameters passed to the presentation component. Solutions built with earlier versions of Sitecore may have used the token VaryByParam instead of VaryByParm. Update any instances of VaryByParam to VaryByParm.

Developers set the VaryByParm property:

  • To False for components that do not generate different output when passed different rendering parameters.
  • To True for components that generate different output when passed different parameters.

VaryByQueryString

The VaryByQueryString property controls whether or not output caching varies based on query string parameters passed in the URL. The VaryByParm property causes output caching to vary based on rendering parameter values passed by the developer. The VaryByQueryString property causes output caching to vary based on parameters passed in the URL query string.

Developers set the VaryByQueryString property:

  • To True for components that generate different output when supplied different query string parameters.
  • To False for components that do not generate different output when supplied different query string parameters.

VaryByUser

The VaryByUser property controls whether or not output caching varies by the domain and username of the context user.

Developers set the VaryByUser property:

  • To False for components that do not generate different output for different users.
  • To True for components that generate different output for different users, when the number of active users between publishing operations is relatively small. The VaryByUser treats all anonymous users as a single authenticated user.

To avoid excess memory consumption, avoid using the VaryByUser property except in solutions with relatively small numbers of users, or monitor cache utilization closely. The VaryByLogin property causes Sitecore to generate different output depending based on whether or not a user has authenticated, differentiating anonymous users from authenticated users. The VaryByUser property causes Sitecore to generate different output for each user

Other Caches

Sitecore contains a number of other caches that help to lower the number of calls required to the database for item information and indexes. These are best described in a post from the Sitecore Tactics blog entitled How Sitecore caching work.

Additional Helpful references

One Final Note

Starting in Sitecore 8.2, the Cache APIs where refactored, creating breaking changes to any custom cache providers used in previous versions. Be sure to check out the change list, https://doc.sitecore.net/sitecore_experience_platform/developing/developing_with_sitecore/cache_api_changes.

 

SharePoint 2010 SP1 Not Installed

The past few weeks I have been working n scripting out the installation and configuration of SharePoint 2010 and all the services for a multi-server environment. I’ll be posting the details of the script in the coming weeks (okay most likely months….)

For the installation I have been using a slip-streamed set of media which includes SP1 and the June 2012 Cumulative Update. I farm will be using a SQL 2012 database which also provides the advantage of using the new BI features such as PowerView and SSRS as an actual service to SharePoint.

Everything seemed fine until I tried to configure PowerPivot and received a message saying “SharePoint 2010 SP1 is not installed on this machine.” This seemed odd as I’ve been able to configure everything up to this point….

After a few days of googling I finally got the correct search terms, which was “powerpivot error SharePoint 2010 SP1 is not installed”. This led me to a post by Jeff Jones blogger of www.spjeff.com. He has a create article which solved my problem called “Fixed -SharePoint 2010 SP1 is not installed on this computer.

The basic issue is that a registry key does not get updated with the new build version, causing PowerPivot to think everything is out dated. The registry key in question is HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\14.0\BuildVersion.

Since I like scripts here is a little PowerShell goodness to help you out. Be sure that the Microsoft.SharePoint.PowerShell snap-in has been loaded into your PowerShell session before running.

$currentKey = Get-ItemProperty "hklm:\software\microsoft\office server\14.0\" -Name BuildVersion
$farmBuild = (Get-SPFarm).BuildVersion
Write-Host "Registry Build is $($currentKey.BuildVersion)"
Write-Host "Farm Build is $farmBuild"
if($currentKey.BuildVersion -ne $farmBuild)
{
Write-Host " - Updating registry build to $farmBuild"
Set-ItemProperty "hklm:\software\microsoft\office server\14.0\" -Name BuildVersion -value $farmBuild
}