Tomcat nodes: Dedicated Instance
Different services are included in the web portal.
- User interface (Portal)
- Workflow tasks and reminders (asynchronous)
- Reports (asynchronous)
All services are active by default. However, when using multiple tomcat nodes it can be interesting to dedicate a node to a specific service.
For example, the generation of reports can be resource intensive. Dedicating a node to that process can limit the impact of the report generation on the user experience.
Even if there is a node dedicated to Reports, the compliance reports will always be run on the workflow node
Portal (User Interface) cannot be de-activated in the product. It is necessary to block the access network level for a given node However, you can deactivate the
reports to have a dedicated instance for either of them.
Tomcat instancesmust point to the same database!
- If there are more than one portal behind a load balancer, you need a share for the reports (cache directory).
The instances are passive, they will retrieve tasks to perform by querying the database according to activated features. The instances don't have to be specialized, they can have all the functionalities activated.
When behind a load balancer, a sticky session is required as the session information is in memory only and not shared between nodes (see schema below).
The following schema shows an example of an architecture including specialized nodes (two for
UI, one for
Reports and one for asynchronous
Workflow and report service activation
The activation and deactivation of worfklow and report services is done through the
technical project configuration:
To configure the activation or not of the
Workflow node it is necessary to change the value of the following properties in the workflow tab of technical configuration, in the other properties field:
When both parameters are set to
false the workflow node is deactivated. If both parameters are set to
true the workflow node in then activated.
When multiple servers are dedicated for the execution of workflows is necessary that only one server be dedicated to the execution of reminders, escalations ... This means that only one server should be configured with
jobExecutorActivate set to
true. For example:
- Workflow server 1: task and jobs
- Workflow server 2: tasks only
In the "Other Properties" field of the "Web Portal" tab in the the Technical Configuration change the value of the Property
false to disable the generation of batch report generation on that node.
Here are some available configurations for a web node:
Technical configuration property settings
Workflow Tasks Execution
Batched Reports Execution
Each environment should have a dedicated "Technical Configuration" per node role.
If report and/or batch services are active in the node, the Tomcat frequently sends a poll request to the database in order to check if there are some tasks in the queue:
- To check if a workflow is waiting for execution, the table to request is
- To check if a Batched report is waiting for execution, the table to request is
Due to this kind of architecture, it is important to size and tune SQL Server accordingly to the forecasted workload:
- Number of end user connections
- Number and volume of batched reports
- Number and volume of workflow launched
For a Tomcat node, the JDBC connection configuration allows, by default, a minimum of
5 SQL actives connections in parallel and a maximum of
20. In our example above, we can have, potentially, a maximum of
100 actives connections at the same time.
Some workflow parameters in the
technical configuration project allow to tune the number of workers and tasks per workers in order to increase workflow performance:
executionPoolSize: number of threads (workers) that handle a task in work stack
- Default is
0(means number of available vCPUs – 1)
- Multiple nodes increase processing capability
- Default is
maxNumberOfTasks: size of work stack where tasks are enqueued for workers
- Default is
20(means 20 tasks are available for workers)
- Default is