Install Multiple Instances (Single Folder Method)
Copyright © 2020 EarthSoft, Inc • Modified: 24 Feb 2020
Each instance of EQuIS Enterprise (consisting of the web application and the workflow service) may connect to exactly one database. To connect to multiple databases, multiple instances of EQuIS Enterprise will be needed. Your EQuIS Enterprise license agreement may permit you to configure multiple instances of the software on the same machine. When installing multiple instances of EQuIS Enterprise, Windows does not allow the Enterprise *.msi file to execute twice on the same machine. After the initial installation, complete the following steps to create multiple instances of a workflow on the same machine.
Note: Unlike previous versions of EQuIS Enterprise, you do not need to create a copy of the physical installation directory for each instance. Each instance may share the same physical directory, which may simplify installation and maintenance.
1.In IIS, create a new virtual directory or application (IIS7+) that points to the physical directory (e.g., C:\Program Files\EarthSoft\Enterprise7).
2.Create a new application pool and assign it to the newly created application. The application pool must have the following properties:
a..NET Framework Version = v4.0.
b.Managed Pipeline Mode = Integrated.
c.Identity = <machine (e.g. LocalSystem) or domain account appropriate to your environment>.
3.Open the \Enterprise7\bin\connectionStrings.config file. Save the file after making the following changes:
a.The name of the existing connection string is based on the base URI* of the initial instance.
<add name="servername/equis7" connectionString="Data Source=DBSERVER;User ID=eqservice;Password=service;Pooling=true;Database=EQuIS_DB1;" providerName="EarthSoft.Common.Data.SqlConnection" />
b.Add an additional connection string named with the base URI* of the new instance.
<add name="servername/app2" connectionString="Data Source=DBSERVER;User ID=serviceaccount2;Password=service2;Pooling=true;Database=EQuIS_DB2;" providerName="EarthSoft.Common.Data.SqlConnection" />
Note: With only one instance of Enterprise running, the name of the connection string (in connectionStrings.config) does not matter (e.g., "localhost" will work for any one site). However, if you create multiple instances using the Single Folder Method, then each instance must have a corresponding connection string based on the URI of the web application. The name of the connection string must exactly match the URI that will be used to access the web application. For example, if an end-user accesses the application at http://servername/equis7, then the connection string name should be servername/equis7. If the end-user accesses the application at http://equis.domain.com, then the connection string name should be equis.domain.com. If end-users access the application at http://equis.domain.com:8080/clientA, then the connection string name would be equis.domain.com:8080/clientA. If the connection string name does not match (including slashes) the base URI (e.g., "servername\equis7" instead of "servername/equis7"), the application will not work.
4.To create a new workflow service, follow these steps:
a.Open a Command Prompt (with Run as administrator).
b.Using appropriate DOS commands, change to the applicable .NET folder (choose either Framework or Framework64 depending on your platform). This step is important. InstallUtil.exe will not run properly if you try to execute from a different folder.
c.Execute the following command, making sure to use your connection name and installation path:
InstallUtil.exe /i -cn=servername/app2 "C:\Program Files\EarthSoft\Enterprise7\bin\EarthSoft.Workflow.Service.exe"
5.Create a work folder for the new instance of EQuIS Enterprise. Set the ST_CONFIG.WORKFOLDER setting to this new folder—failing to do this will result in cross loading of EDDs.
6.The deploy process will need to be performed for each instance. After the deployment of the first instance, the \Enterprise7\deploy folder will be empty. Before the deployment step for the second instance, copy the contents of the \Enterprise7\App_Data folder, which contains the originally installed deployment files, into the \Enterprise7\deploy folder. Append "action=deploy" to the URL to complete the deployment step. (e.g., https://localhost/equis7/default.aspx?action=deploy). You should see a list of files that were successfully processed.
•You can force a workflow service to run with a specific culture (i.e., EDP date formats and number formats) by specifying the culture on the command line when creating the service: C:\\Windows\Microsoft.NET/\Framework\4.0.30319>InstallUtil.exe /i -cn=servername/app2 - culture=es-CL "C:\Program Files\EarthSoft\Enterprise7\bin\EarthSoft.Workflow.Service.exe".
•The value for cn must match the value of the NAME attribute of a connection string in connectionStrings.config. No value may be a sub-string of any other value. For example: servername/app and servername/app2 are incompatible and will result in unexpected behavior.
•The InstallUtil.exe application requires that parameters be specified with this syntax: /param=value. However, EQuIS requires that parameters be specified with this syntax: -param value. The service Installer class within EarthSoft.Workflow.Service.exe will automatically convert the parameters to the proper EQuIS syntax. To verify the correct syntax, you can view the properties of the service (in the Windows Services console) and check the "Path to executable". If the path is still using the InstallUtil syntax (e.g., /culture=es-CL), you can manually modify the syntax (i.e., culture=es-CL) using regedit. Look for the appropriate EQuIS Enterprise Workflow service in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services and modify the ImagePath setting.
•When running multiple workflow services on the same machine, each service must use a specific connection name. Disable the default EQuIS Enterprise 7 Workflow service and complete Step 4 (above) to install a named service for each of your databases.
•If more than one valid connection string is listed in the connectionStrings.config file, it is possible to connect register.exe to any of the databases by running register.exe from the command line by specifying the connection string to use by name:
open a console window (i.e., start run cmd)
"/Program Files/EarthSoft/Enterprise7/bin/register.exe" -cn connectionName
Using the run command will allow registration to a named connection in connectionStrings.config.