Improving Performance of the Initial Load Time of Infor CRM (Saleslogix) Web

We received a tip from a customer (Rob Seiwert at Video Corporation of America) last week that is worth passing along. This tip will improve the performance of your Infor CRM (Saleslogix) Web and reduce the initial load time after periods of inactivity, after a server reboot, or after a new deployment has been performed.

Pre-Compiling and IIS Application Pools

In the Application Architect there is an option to pre-compile when doing a deployment. While pre-compiling does help for worker processes, it doesn’t solve the startup issue. By default, an IIS application pool starts “on demand”. Meaning, that when the website is accessed it spins itself up, an IIS worker process is created and started, the appropriate assemblies are loaded into memory, threads are created a queued, and the code is executed. In short, the application pool isn’t started until it’s used, then the user waits for all of that initialization to happen.

I’ve seen many attempts at solving this over the years, such as applications that access each URL in a website each morning to cause things to load into memory, pre-initializing things before users start using things.

The IIS Application Initialization Module

To solve the issue stated earlier, the IIS team at Microsoft has created a module for IIS (supporting IIS 7 and higher) called the Application Initialization Module.

You can use the Web Platform Installer in IIS to install this module. Once installed, you can change the application pool’s start mode from “on demand” to “always running”. By setting the startMode to AlwaysRunning, when you recycle the process, perform a reboot, or redeploy CRM, the application pool’s IIS w3wp.exe process is started up automatically, rather than waiting for a user to come access CRM. In addition, you can enable “preload” for the website which causes a similar effect to a user accessing the website and causing pages to be background compiled by ASP.NET.

Read more about installing and configuring the IIS Application Initialization Module

One thing to keep in mind, that you’ll see the IIS processes in memory, basically all the time from that point on. Not a huge concern however, since this is what happens when a user hits CRM anyway. All in all, what you’re doing with this module, is simulating a user going to the website every so often to keep the worker processes running and loaded. This way, when real users access CRM, it’s ready to go and will perform better. Obviously, this isn’t the sort of thing you’d want to enable on a development deployment.

According to the customer we received this tip from, they are noticing a huge difference in the initial load time of their Infor CRM deployment. Our customers are completely great. It was great to be the receivers of such a helpful tip. Thanks Rob!

ABOUT THE AUTHOR

Ryan Farley

Ryan Farley is the Director of Development for Customer FX and creator of slxdeveloper.com. He's been blogging regularly about SalesLogix, now Infor CRM, since 2001 and believes in sharing with the community. He loves C#, Javascript, web development, open source, and Linux. He also loves his hobby as an amateur filmmaker.

1 Comment

  1. I have the option enabled and I can do it manually but is there a way to have “Enabled Preload” Ticket by default when creating a new site, As I can’t see it in “Set Website Defaults”. We Create sites regularly and it can be missed as it’s an extra step.

    Reply

Submit a Comment

Your email address will not be published. Required fields are marked *

Subscribe To Our Newsletter

Join our mailing list to receive the latest Infor CRM (Saleslogix) news and product updates!

You have Successfully Subscribed!