This project is read-only.

Technical Documentation

Orbis CRM Client Cacher

DOCUMENTATION ORBCRMCLIENTCACHER

The purpose of this tool is to cache all or the top most aspx pages. Caching means that this tool tests the Microsoft Dynamics CRM Client offline setting. If the client is offline OrbCrmCC ensures in a defined interval that the MSCRM Client host is up and that the aspx files are pre-compiled.
After startup the tool checks if the MSCRM Client is configured for offline usage. If this is the case it checks if the offline host is running and starts it if not. After that a timer tests in a defined interval if the host is still up and starts it if necessary. Now the client host is up and the tool starts pre-caching the aspx pages as defined. After initial caching is ready a timer is started which checks in a predefined interval if the host was down and if it was down caching is done again.

Installation:

  1. Unzip to a writable folder on your system
  2. Ensure that MSCRM Client is installed and configured
  3. Configure this tool to auto start on windows startup
    1. By putting a link to this tool in the “Startup”-Folder in the Windows “Start Menu  Programs” folder
    2. By putting it to one of the following startup keys in the registry:
    3. “HKEYCURRENTUSER\Software\Microsoft\Windows\CurrentVersion\Run”
    4. “HKEYLOCALMACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”
  4. Set the local windows service “SQL Server (CRM)” (MSSQL$CRM) startup type to automatic.
  5. Execute the mscrmkeys.reg file to activate registry values that prevents the client from deactivating the SQL database.

Tool Configuration:

You can configure this tool by right-clicking it in the task bar and select settings. A graphical user interface shows you the most important settings for this tool.

Settings.JPG

Configuration is on user basis and can be found in registry at “HKEYCURRENTUSER\Software\ORBIS AG\OrbClientCache” 
The following values can be set:
  • CachingTimer – Time in seconds to check if something has to be cached (default: 70)
  • HostCeckTimer – Time in seconds to check if the client host is running (default: 60)
  • InitialCacheWaitTime – Time in seconds to wait for client host startup (default: 0)
  • SmartCache – True if only the top predefined pages should be cached (default: true)
  • Threads – Number of threads which simultaneously send requests to the host. (default: 10)
  • Throttle – Time in milliseconds to wait between each request. (default: 25)
  • Trace – True if information should be traced into a log file (default: false)
  • TracePath – Path to the log file for tracing (default: %TMP%\OrbClientCacher.log)

Reg.JPG


More configurations can be set in the predefined lists which the tool stores in its own folder.
After startup the tool writes four files:

asmxlist.json
This file contains a comma separated list of urls to webservice endpoints. Those stood out on common CRM usage and are used for AJAX functionality. All files in this list will be combined with the aspx files.
Cannot resolve the wiki link macro, length of title is too long.

blacklist.json
This file contains a comma separated list of strings which should not be contained in path to the aspx files. If the path contains one of the entries it will be ignored.
"biz"
This will for example ignore all paths containing the string biz (case insensitive). For example:
Biz\Business\*.aspx

etclist.json
This file contains a comma separated list with “Entity-Type-Codes” which should be pre-cached. The file is JSON formatted:
1, 2, 3, 4, 135, 4200, 4201, 4202, 4210, 4212
Typical “Entity-Type-Codes” can be found here http://technet.microsoft.com/en-us/library/bb887791.aspx

toplist.json
This file contains the most important files for pre-caching. If SmartCache is activated only files in this list will be cached. If it is deactivated files in this list will be relevant for priority of caching. Entries with “Priority: 1” are highest priority. “DoEtc: true” tells the OrbCrmCC that this file should be cached in combination with the etclist.json.

[
{
"DoEtc": true,
"Priority": 1,
"Url": "main.aspx"
},
{
"DoEtc": true,
"Priority": 1,
"Url": "userdefined\/edit.aspx"
},
{
"DoEtc": false,
"Priority": 2,
"Url": "_common\/entityproperties\/entitypropertiesutil.js.aspx"
},

]

The JSON-files are by default unformatted and without blanks. For better usability you can use the JSON-Viewer http://jsonviewer.stack.hu . This viewer is able to format and validate the JSON content.

Please note that backslashes and quotes have to be escaped as you can see in “Url: ”.

----------------------------------------------------------------------------------------------------------------------------


The code and documentation is prepared by
Tim Zech

Revision and Signoff Sheet Change Record
Date Version Author Remark
27.02.2012 1.0 Tim Zech Document creation
28.02.2012 1.1 Tim Zech Corrections

Review
Name Date Action Version approved Remark
Markus Marquedant 27.02.2012 No Yes

Last edited Mar 2, 2012 at 4:00 PM by marqma, version 6

Comments

No comments yet.