Whether we like to admit it or not, often Personalization will stop working when we make changes in AppSense or the environment in which its running, but there are times when Personalization will stop working out of the blue.
In this guide, we will discuss how Personalization should be investigated by using a simple troubleshooting principle known as "Divide and Conquer!". This article is written under the assumption that Personalization has been installed, configured and working at some point.
Divide and Conquer!
The "Divide and Conquer" method is just a fun phrase for taking one large piece and splitting it up in to smaller more digestible pieces. We use the "Divide and Conquer" method because tackling Personalization as a single entity can be challenging. There's a lot of pieces which go into ensuring Personalization works so by splitting it up we can look at each piece separately to determine where the problem could be, so with that in mind, let’s look at just what goes into ensuring Personalization stays a float from the top down.
Small pieces make for an easy meal!
First and most importantly, we have the Personalization Server, whether you’re running the latest build or it's slightly older brother, in general they all work in the same way. Below you will find the top-rated problems to look for when Personalization has stopped working for your user(s) starting with the Personalization Server followed by User Personalization Settings and finally Endpoints.
1. Application Pools! A very easy way to determine whether the PersonalizationServerPool is started, is to either:
(a) open Internet Information Services (IIS) Manager and navigate to the Application Pools under your server name.
(b) Try and connect to your Personalization Server via the Environment Manager Console, if your Application Pool is stopped you will see the following.
(c) Navigate to the status page of your Personalization Server using the following address.
If there are connectivity issues to the Personalization Server due to the Application Pool being down, you will receive the following HTTP Error 503. If so check the status of the Application Pool in part (a), if this is running continue with the next steps.
2. Ensure that either the "Default Web Site" or "Personalization Server" websites in IIS are started. (Depending on the version of Environment Manager, see the below for more information)
3. Check your Bindings! By default, in the latest release of Environment Manager the Personalization Server will create its own website in IIS which can have two bindings, one of which uses host headers on port 80 and another on port 7771, however these are both configurable during setup. In-place upgrades and older versions of Environment Manager (8.6 and earlier) will install the Personalization Server website in IIS under the "Default Web Site" provided that’s where it was configured during setup. Ensure these ports are correct for your environment.
4. Providing all the above is configured correctly, and we can make a connection to the Personalization Server either via the Console or by checking the status page, the next thing we should check for is a connection to a valid database. The connection can be checked by opening the Server Configuration Portal (Only accessible on Environment Manager version 10 - For earlier versions use the AppSense Server Configuration Utility), the portal can be opened remotely or locally by navigating to the URL below:
Once you are logged in as your AppSense administrator you will see a list on the left side of the page.
Selecting the Personalization Databases option will display the current configured database connection(s) on the right of the page.
You can select the connection(s) by clicking it to view the details. Ensure the Server Name and SQL Database Name fields are correctly configured and that both the Configuration and Service Accounts successfully complete the "Check" test. (A green tick will be displayed if valid).
If the database connection(s) are not correct and need to be reconfigured, please refer to our Environment Manager Installation and Upgrade guides which can be found on our Support Portal.
Once you are happy that the database connection(s) is correctly configured, we need to ensure is it assigned and connected to your Personalization Server. To do this expand the Personalization Servers option and select "DEFAULT". On the right the details of the current assigned Database Connection will be displayed along with the status, whether there are any reported variances, and the Authentication method in use, you can also enable Personalization Server logging from this location.
The status should be showing as "Online" and the Database Connection should correspond to the database connection previously configured. If either of these are incorrect they will need to be amended to (a) an "Online" status and (b) the correct Database Connection from the dropdown menu.
Okay, so now we're getting somewhere, Phew!... With all the above configured correctly we can move on to User Personalization settings. Like with the previous section for the Personalization Server, we will take a look into the top-rated problems to look for when Personalization has stopped working for your user(s), but this time in relation to User Personalization Settings.
User Personalization Settings.
What do I mean by "User Personalization Settings"? I mean what is configured when you connect to User Personalization via the Environment Manager Console.
1. Are your user’s members? In order for users to receive Personalization they must be configured as members of a Personalization Group, if not they will automatically join the "Default Users" Personalization Group which is not configured to capture any user settings. To find out whether your users are members of the desired Personalization Group check the Membership Rules tab.
Right clicking the white work space under the Membership Rules tab will allow you to reconfigure this if it is incorrect. It is worth noting that Membership Rules for Personalization Groups work in a top down order, users will become members of the first Personalization Group they meet the Membership Rules for, ensure your groups are ordered correctly.
2. What Sites are you using? Sites can be configured to separate personalization requirements for different areas in your organization such as departments, geographical locations or any other logical division. They work in the same way as Personalization Groups where Membership Rules can be configured to point specific users to different Personalization Servers, in a top down order, if you have configured Sites ensure the Membership Rules and Server addresses are correct.
If you have not configured sites you should see your Personalization Server listed under the "Default Site" with no Membership Rules. (Mine are blank for obvious reasons)
When it comes to Endpoints there isn't a whole lot you need to check for, not nearly as much as we have so far. So, let us consider the top-rated problems to look for when Personalization has stopped working for your user(s) focusing on Endpoints.
1. Is everything Installed? Unsurprisingly for our AppSense products to function correctly they must be installed. Ensure the Endpoints have the correct Agents and Configurations installed, and ideally within the same major build version. This can all be viewed under "Programs and Features" in the Control Panel.
2. License! You wouldn't believe how easy this one is to miss, but without it you're not going anywhere. Your Endpoints must be licensed to use our products, if there is no valid license present on the Endpoint don't expect any products to function correctly.
As of Environment Manager version 10 Licenses are now delivered via the Management Server to the Endpoints as a file, these files are checked for their presence and validity, if either of these checks fails the product will be unlicensed. You can check for the license files in the following location, the license files have a ".LIC" extension.
Prior to Environment Manager version 10 our licenses were written into the Registry on the Endpoint; the presence of the licenses can be checked in the following keys.
- HKLM\SOFTWARE\AppSense Technologies\Licensing
- HKLM\SOFTWARE\Wow6432Node\AppSense Technologies\Licensing
In addition to checking the locations you can also view the Application Event logs on the Endpoint checking for any AppSense Events raised with the following Event ID's
- 9099 (Application Manager)
- 9399 (Environment Manager)
- 9199 (Performance Manager)
Licensing for all version of AppSense products are managed and deployed via the AppSense Management Center in the Licensing section. Ensure all licenses are in imported, in date and valid.
3. Are the Services running? Endpoints will have several AppSense Services installed as part of the AppSense Agent installation(s) as seen below, depending how many AppSense Product Agents are installed will determine how many services there are. However, in the interest of Personalization there is only one which we need to ensure is running, this is the "AppSense User Virtualization Manager" it can be checked by opening the Services Console, this console can be found under the Administrative Tools in Control Panel.
4. Personalization Servers! Whether your defining your Personalization Servers in the Environment Manager Configuration via the Personalization Server List or by Group Policy, the Personalization Servers being used must be correct or the Environment Manager Agent will fail to connect.
Fortunately finding out what Personalization Server is configured is relatively simple. Firstly, we need to open the Environment Manager Configuration which is deployed to your Endpoints in the Environment Manager Console, you can find out what version of the Environment Manager Configuration is deployed viewing the "Programs and Features" in the Control Panel on the Endpoint.
With the correct Environment Manager Configuration, open, navigate to the Personalization Server list under the "Manage" tab as shown below.
If you are using a Network Loadbalancer (NLB) or Virtual Internet Protocol (VIP) I would advise testing outside of these by adding the addresses of your Personalization Server(s) directly into the configuration, this will rule out whether there are any routing issues with the NLB or VIP. When using a NLB or VIP, always ensure it is configured as per our Best Practices which can be found on our Support Portal.
Well that just about covers it, providing everything we have discussed is configured correctly you shouldn't encounter any further issues, however if you are still encountering problems you may want to consider contacting our fantastic Support Team who can provide further assistance. As always thank you very much for taking the time to read through this article, I hope it has or will provide useful information when troubleshooting Personalization issues and remember, Divide and Conquer, this technique can be applied to anything!