Appendix E: Speeding up your web site
The following information was provided by several Siriusware technicians to answer the common question, "How do I make my Siriusware web site go faster?" If your web site is slow, with the E-Commerce pages taking a long time to update, or if items added to the cart take a long time to show up, adding a Sales Host will not help.
The E-Commerce module is now most often used in a web garden configuration. Under this configuration, the E-Commerce pages are installed so that by default they share a single IIS worker process. Normally one worker process is enough, but with huge volume (huge traffic to the web site) the single process can't handle the traffic and RAM use grows until the E-Commerce module grinds to a halt. You cannot increase the number of worker processes in this configuration because the E-Commerce pages cannot be used directly with more than one worker process.
Often times, slow web performance results in timeouts and visitors/guests get errors from the pages. You can increase the session time in the web.config file by increasing the session timeout value (in minutes):
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>
More RAM on the server helps, but configuration can too. An approach that Siriusware Inc. recommends, is to move ww.dll to another machine running the web service (wwService). Then increase the web service helper processes to 3 - 5 processes.
If your hardware can handle it, putting all E-Commerce components on the same server is guaranteed to give the best performance. If you have a powerful web server, the highest performance will be achieved by putting everything on the same server because the LAN communication between the E-Commerce pages and ww.dll could slow down the response time by at least an order of magnitude. An example of a very powerful web server is:
• 64-bit OS (this is non-negotiable)
• At least 8 cores available
• At least 16 GB RAM
In exceptionally high traffic environments, when you have very powerful hardware, the best performance may be obtained by installing ww.dll, the E-Commerce pages and wwService on one machine (using 127.0.0.1 instead of the “real” IP address). This allows you to configure 3 - 5 worker processes for wwService without having to put wwService on a separate computer. The E-Commerce pages then access ww.dll via wwService in the same way they would in the multiple computer architecture.
You can also break up your Item Tree into multiple Item Trees and host multiple web sites using separate URLs. These web sites can be on separate computers and you can use a single "landing page" (URL) with links that visitors/guests can click depending on what products they are purchasing (they are re-directed to different web servers depending on what they are purchasing).
Note: A common problem that Siriusware Client Services finds, that slows down E-Commerce sites, is when clients have the NoCalAvail site config setting set to 0. When 0, Max4Sale availability is checked for every day, resulting in many calls to the database. Set this to 1 to stop the display of Max4Sale information in the calendar, and speed up the web site.
Note: When setting up the connection string for ww.dll, use the actual IP address of the database server instead of the name. Siriusware Client Services has seen slowdowns due to DNS lookups being made unnecessarily, slowing ww.dll database access time.