Skip to content
QiTASC.com / intaQt Installation and Maintenance /
Running Multiple intaQts in Parallel
/ .. /
Running Multiple intaQts in Parallel





Running Multiple intaQts in Parallel

A license can be linked to a profile to enable installing multiple intaQt Licenses on a single PC and running multiple intaQt in parallel. When starting intaQt with the profile option, intaQt will look into the config folder during startup for a Configuration Subfolder whose name matches the profile's name.

When running multiple intaQt instances on the same machine, each instance will write to its own Log File, which includes the profile's name appended to the file name. For more information, refer to Reports and Logs.

For information about the Profiles configuration block, refer to the Profiles section.

Restrictions

When running multiple intaQt instances on a single machine, some restrictions apply:

  • A single intaQt installation can be used by multiple users if each profile, for which a valid license has been installed, overwrites the necessary configurations from the Server.conf. (see: Additional Configurations below).

  • Locally-connected phones can not be shared among intaQt instances. Only the first intaQt instance acquires the phones, while additional instances will fail to identify the phones.

    • This is not applicable if intaQt is started from the command line without the -a option (without ADM).
  • Every instance must have its proper license. These licenses must be installed with the latest release of the QiTASC license-installer.

Installing Licenses with Profiles

When invoking the license-installer, a profile can optionally be defined with the -p option. In order to start multiple, simultaneous instances, Configuration Subfolders with names matching the profiles must be manually created within the config folder. Although the examples below use two instances/profiles, intaQt permits multiple instances/profiles to be run on the same machine.

First, navigate to the binfolder of the intaQt License installer:

Example 1 - Windows Users

1
cd Desktop\QiTASC\license-installer\bin

Example 2 - Linux and Mac OS Users

1
cd Users/QiTASC/license-installer/bin

Next, install the license by specifying its profile:

Syntax

1
license-installer -p <profile Identifier> <product Product> <filepath Path>

Parameters

  • profile - The assigned profile name

    • This must be a string consisting of the letters A to Z, a to z and 0 to 9 _, however blanks are not allowed
    • If no profile is given, the default profile is used
  • product - The product to be installed

    • Must be one of intaqt or intaqt-verification
  • filepath - The location of the license file

Example 1 - Installing a License Without Profile

1
license-installer intaqt license-1.license

Example 2 - Installing a License With Profile

1
license-installer -p PROFILE1 intaqt license-2.license

The examples above installs license-1 for the default profile and license-2 for the profile PROFILE1.

Note: Linux and Mac OS users may need to enter ./ at the beginning of each command.

Installing Licenses with Profiles using the QiTASC Client

intaQt licenses can be installed via the license-installer either by using the QiTASC Client ./qitasc launch license-installer or by running the binary directly, for example, license-installer/bin/license-installer some/Path/my.license.

The license installer can be executed within the main intaQt installation folder:

Syntax

1
qitasc launch license-installer -p <profile Identifier> <product Product> <filepath Path>

Parameters

  • profile - The assigned profile name

    • This must be a string consisting of the letters A to Z, a to z and 0 to 9 _, however blanks are not allowed
    • If no profile is given, the default profile is used
  • product - The product to be installed

    • Must be one of intaqt or intaqt-verification
  • filepath - The location of the license file

Example

1
./qitasc launch license-installer -p PROFILE1 intaqt /home/PROFILE1/QiTASC/license-installer/bin/license-2.license

Note: Omit the prepending ./ on a Windows operating machine and verify the license file's global path before installing it.

Viewing Currently Installed Profiles

To view the currently installed profiles, use the following:

Syntax

1
license-installer -s <product Product>

Parameter

  • product - The product installed. May be one of intaqt or intaqt-verification

Example

1
license-installer -s intaqt
Note: Linux and Mac OS users may need to enter ./ at the beginning of the commands.

File System Databases for the Reporting Service & Scheduler

When starting multiple intaQt Service instances on the same physical machine with the use of profiles, each instance has its own Reporting Service database and Scheduler database. On startup, the profile is used to specify the database URL. If the profile is the default profile, its databases are stored in:

  • intaqt/data/reporting/hsql (Reporting)

  • intaqt/data/quartz/hsql (Scheduler)

If the profile is any other named profile, its databases are stored in:

  • intaqt/data/<profileName>/reporting/hsql (Reporting)

  • intaqt/data/<profileName>/quartz/hsql (Scheduler)

If these directories do not exist upon intaQt's startup, they will be created and an empty database will be initialized. If the directory already exists, the existing database will be used.

Starting intaQt with a Specified Profile

Starting different instances of intaQt requires distinct profile names. The profile name is passed to the intaQt invocation using the optional -p option. Omitting -p starts intaQt with the default profile.

Syntax

1
intaqt -p <profile Identifier>

Parameter

  • profile - The required profile to start intaQt
    • If no profile is given, the default profile is used

The examples below start two intaQt instances: one for the default profile and one for the profile named PROFILE1.

Example 1 - Start intaQt with the Default Profile

1
intaqt

Example 2 - Start intaQt with Custom Profile

1
intaqt -p customProfile

This starts intaQt with the profile customProfile. Initially, all configuration files in the config folder will be loaded. If there is also a subfolder, named customProfile, these configurations will be loaded as well.

  • If the base configuration and profile configuration do not have any common configurations, then they are merged.

  • If some of the configurations are the same, then the profile configuration will overwrite the corresponding base configuration.

Note: Linux and Mac OS users may need to enter ./ at the beginning of the commands.

Configuration Files for Multiple Profiles

Each profile should have its own configuration file(s), which are stored in the subfolder dedicated to that profile.

Default Configuration Example (config/server.conf)

1
2
3
4
5
6
7
8
9
    Block1 = {
        conf1 : "value1"
        conf2 : "value2"
    }

    Block2 = {
        conf3 : "value3"
        conf4 : "value4"
    }

Profile Configuration Example (config/customProfile/Profile.conf)

1
2
3
4
5
6
7
8
    Block1 = {
        conf1 : "overwritten"
        confN : "newValue"
    }

    Block3 = {
        confX = "valueX"
    }

Merging the two configuration files will result in the following outcome:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 Configuration
        Block1 = {
            conf1 : "overwritten"
            conf2 : "value2"
            confN : "newValue"
        }
        Block2 = {
            conf3 : "value3"
            conf4 : "value4"
        }
        Block3 = {
            confX = "valueX"
        }

Additional Configurations

intaQt instances must use different listening ports. This restriction applies to three configuration sections: Intaqt2ApiAdapter, Commander and HttpServer. The Commander configuration is not listed in the server.conf and therefore must be manually entered as an additional configuration.

Important! intaQt must be restarted after making changes to these configurations.

Two Different intaQt Profile Examples

PROFILE1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Commander = {
    port : 32220
}

Intaqt2ApiAdapter = {
    projectsRootDir: "../projects",
    adapterPort: 36012
}

HttpServer = {
    port : 8080
}

PROFILE2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Commander = {
    port : 32221
}

Intaqt2ApiAdapter = {
    projectsRootDir: "../projects",
    adapterPort: 36014
}

HttpServer = {
    port : 8081
}