Qlikster http://db07tc13f7t7u.cloudfront.net/

Enabling Compression in IIS 6.0 for QlikView Powered Web Sites

Thursday, 10 December 2009 14:00 by qlikster

If you are running a QlikView powered website, built using the QlikView WorkBench, the 'auto generated ZFC' feature in QlikView or some other means, you may wish to ensure that the data communication with QlikView Server is compressed to improve performance and reduce bandwidth as much as possible. This article will show you how.

The first thing to check is that compression is not already configured. You can do this by running fiddler (which can be downloaded here) whilst browsing to one of you QlikView Zero Footprint powered pages. You should either see a number of requests to a page named QvsViewClient.asp as highlighted below:

Or, if you are using the QlikView WorkBench (in the default configuration), you will see a number of requests to a http handler named QvsViewClientEx.ashx, as highlighted below:

These are the requests which transfer the data and interactions between the browser and QlikView Server. And, as can be seen here, they are currently uncompressed.

In the example here the size of the requests are quite small. However, they can be significantly larger - the size depending primarily on how many objects are on the web page. I have been involved in projects where the requests were in the region of 130k and worthwhile compressing as the reduction can typically be in the region of 80%.

The next step is to launch the IIS Manager interface, right click on the 'Web Sites' node and select 'Properties':

 

Now select the 'Service' tab:

And check the two boxes as shown below:

Optionally, you can also set a cap on the amount of space to be used for the temporary directory used to store the results of compressed static files:

 

The next step is to stop IIS altogether. To do this you can right click on the root node for the web server in the IIS Manager, then selected 'All Tasks' and 'Restart IIS...':

Next select the 'Stop Internet Services on MACHINE_NAME' option:

You can now locate the MetaBase.xml file for your IIS installation, typically located at the path shown here:

Before proceeding you should make a backup of this file.

You can now open this file in your favourite text or xml editor and locate the following section:

<IIsCompressionScheme  Location ="/LM/W3SVC/Filters/Compression/gzip"

    HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"

    HcCreateFlags="1"

    HcDoDynamicCompression="TRUE"

    HcDoOnDemandCompression="TRUE"

    HcDoStaticCompression="TRUE"

    HcDynamicCompressionLevel="0"

    HcFileExtensions="htm

      html

      txt

      js

      css

      htc"

    HcOnDemandCompLevel="10"

    HcPriority="1"

    HcScriptFileExtensions="asp

      exe

      axd"

  >

 

And add in the following entries (in bold):

 

<IIsCompressionScheme  Location ="/LM/W3SVC/Filters/Compression/gzip"

    HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"

    HcCreateFlags="1"

    HcDoDynamicCompression="TRUE"

    HcDoOnDemandCompression="TRUE"

    HcDoStaticCompression="TRUE"

    HcDynamicCompressionLevel="0"

    HcFileExtensions="htm

      html

      txt

      js

      css

      htc"

    HcOnDemandCompLevel="10"

    HcPriority="1"

    HcScriptFileExtensions="asp

      exe

      axd

      aspx

      ashx"

  >


NOTE : If your site is only using the 'standard' QvsViewClient.asp file to communicate with QlikView Server then you do not need to make any adjustments here. The 'ashx' entry is for the QvsViewClientEx.ashx which is used by the QlikView WorkBench and the 'aspx' entry is also optional depending on if you are using any aspx pages in your site which you would also like compressed.

You can now save and close this file.

You should now restart IIS - This can be done by using the 'iisreset' command at the command line:

 

Or by using the same interface used to stop IIS in the earlier step:

You should now find that if you test the pages used in the initial step again that Fiddler now shows that they are now compressed.

There might be an easier or more automatic way of doing this but this at least shows the underlying changes which need to be made to IIS to support compression. I'll try and write an equivalent post in the future on how to get this setup for IIS 7.

Tags:   , , ,
Categories:   Web
Actions:   Permalink | Comments (0) | Comment RSSRSS comment feed

Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading