|Summary||This article details the webfarm configuration.|
|Written for||Fieldwork manager|
Table of contents:
Dat-files in memory
- To enable dat files in memory, set the 'Timeout interviews in memory' value to a value greater than 0 (in minutes). If a correspondent doesn't respond within the selected time, the interview will be written to disk or SQL server, and removed from memory to free resourves.
- If AskiaExt is closed in a 'normal' way (closing windows or IIS-Reset/IIS-Stop) the dat-files will be written to disk/SQL before closing. Naturally, when the server crashes the interviews currently in memory are lost.
If you enable the 'Store Qex in webprod database' option, the qex file will be stored in the 'QexFile' Field in the WP_Surveys table in the webprod database (both with Access and SQL databases).
Note that when you enable this option, it will be impossible to get the active qex file using the webprod.asp pages (use CCA for that).
If you enable the 'Store Dat's on SQL Server' option, and provide a valid ADO connection string in the 'Connection string for interview db' field, all interviews will be stored in the provided database.
- All necessary tables will be automatically created in the database - one table for each survey (table name = external name).
- If saving the file to the SQL server fails, the file will be written on the 'old' location on disk.
To synchronize the dat-files on SQL server, AND the qex-file saved in the webprod database with the ones on disk, you can use the 'Synchronize from disk to database' and 'Synchronize from database to disk' buttons. The first action will save all the dat-files currently on disk in the database overwriting identical files already there, and store the current qex-file in the askiaqes directory to the webprod database also overwriting the current file (if any). The second option will do the opposite.
Network load balancing configuration
- 2 or more servers with Windows Server 2008 installed for use as web server
- A third machine with Windows Server 2008 administration tools pack (Default on Windows Server 2003 / install Adminpak.exe for XP pro)
- SQL Server
- AskiaField v5.3.3 or later (cf Webprod installation manual)
Cluster operation mode is very important. Unicast mode means that NLB takes over the network card it is bound to and doesn’t allow any additional network traffic through it. This is the reason why two adapters are a good idea – one that NLB can take over and one that can still handle all other network traffic directed at the dedicated IP address of the server. If you’re using a single adapter you should probably select Multicast which allows both the NLB traffic and the native IP traffic to move through the same network adapter. Multicast is slower than Unicast as both kinds of traffic need to be handled by the network adapter but it’s the only way to remotely configure all machines centrally. You can run a single adapter in Unicast mode, but the cluster manager will not be able to communicate with the server after it’s configured. As a general rule use Unicast for two adapters, Multicast for a single adapter. With my network cards I had to use IGMP mode in order to get the cards to converge properly – you may have to experiment with both modes to see what works best for you.
In general, you should enable and use multicast NLB whenever possible. Use unicast mode only if your network equipment—switches and routers—don't support multicast or if they experience significant performance issues when multicast is enabled.
Select the unicast method for distributing client requests, unless only one network adapter is installed in each cluster host and the cluster hosts must communicate with each other. Becaue Network Load Balancing modifies the MAC address of all cluster hosts to be identical, cluster hosts cannot communicate directly with one another when using unicast. When peer-to-peer communication is required between cluster hosts, include an additional network adapter or select multicast mode. When the unicast method is inappropriate, select the multicast method.
Configuration of the web server
- Add both web servers to the domain (if necessary) and configure them with a fixed IP-address.
- Install WebProd 5.3.3 or later on both servers. Make identical installs with the exact same installation path’s.
- Edit global.asa make sure the SQL connection is used and not the Access connection and that Data Source & Trusted_Connection have the right parameters.
- Configure Webprod (http:///webprod/pages/pgconnection.asp)
Only one WebProd needs to be configured entirely, use this webprod.mdb when importing! The other servers will use the same settings because they link to the same WebProd database
Go to Configuration > WebProd configuration, and:
- Change the IP in all web path’s with a new one. (Take one unused IP address in the same range of the fixed IP allocated earlier to the web servers. This virtual IP will be used for accessing both web servers)
- 'Store dat’s on SQL Server' has to be selected.
- Set the appropriated connection sting in 'Connection string for interview db'. Example:
Provider=sqloledb; Data Source=SomeServer; Initial Catalog=WebInterviews; Trusted_Connection=no;User Id=sa;Password=sa;
Configuration of the SQL server
- Add databases on the SQL Server: WebInterviews & Webprod
- Import Webprod.mdb to the SQL database Webprod (make corrections : all 'bit' fields in WP_Survey an WP_history should allow nulls; The import functionality messes this up)
Setup of Network Load Balancing
- Start NLB Manager on the third machine (install Adminpak.exe if used on Windows XP pro)
- In the Cluster menu click on 'New' and use the new virtual IP as Cluster IP address.
- Select a cluster operation mode (Unicast or Multicast).
- Click 'Next' twice, add the first web server by filling in its IP in 'host' and selecting the right interface.
- Add the second, third ... web server to the cluser.
For performance reasons a second network adapter on each server could be recommended. Also read more about Unicast and Multicast if necessary. (unicast: no direct network communication possible between web servers in cluster)
Second method of Network Load Balancing
(this is in addition to the method above if you don't or can't use the NLB Manager)
- If the Network Load balance service isn't installed than add it to the network adapter in network properties.
- In the properties of the NLB service set these parameters:
- Cluster: The cluster has to be the same on all servers. Set your virtual address, subnet, and if you will be using unicast or multicast.
- Host: Host is the settings for each machine. Set your machine IP and unique ID.
- Close the NLB properties and open the TCP/IP properties. In the advanced panel add the virtual IP and subnet.
Each network interface in the farm need a unique ID. It is generated by windows during installation. If you use disk clones to create your farm (like we did) then you will get errors during configuration. Create new network interface IDs by removing them in hardware manager and re-adding them.