To expedite task execution, SQLMessenger provides the "Task Container" feature. During system runtime, an operating system process is initiated for each task container. When executing tasks, the system generates a task thread for each task instance within the container to process task content, thus accelerating task execution speed and reducing resource utilization. Additionally, the container can enhance data source connection speed and alleviate the burden on the database by utilizing JDBC connection pooling.
After system installation, a task container named "Default container" is automatically created. By default, tasks in SQLMessenger are configured to run within the "Default container". You also have the option to create separate task containers for your tasks.
A task can only run in one container, while multiple tasks can share the same container.
Click the "Task Container Manager" icon on the MainMenu to open the Task Container Manager
Task Container Manager
In the Task Container Manager, you can manage containers via the right-click popup menu or the toolbar on the right of each container item. To create a new container, click the "New Task Container" button on the Task Container Manager's toolbar.
Manage task container via popup menu or toolbar
You can click the "New Task Container" button on the Task Container Manager's toolbar to open the New Task Container dialog box.
New Task Container dialog box
In this dialog box:
Container Name |
Enter the name of the container for easy management. |
Comments |
Enter some description for the purpose of the container (optional). |
Task Container Options
Task Container Options:
Auto start container when SQLMessenger started |
If this option is selected, the SQLMessenger system will launch this container simultaneously upon startup and keep it running. Otherwise, the system will only launch the container when there are tasks needing to be executed in this container, and the container process will be terminated after all task instances within the container have finished. |
Max Concurrent Tasks |
Set the maximum number of task instances that can run simultaneously in the container. The range is 1-30, with a default of 10. When the number of task instances requested to run in the container exceeds this value, new task instances will be added to a wait queue. They will begin execution only after the currently running task instances complete. |
JDBC Pool Config |
You can set the JDBC Pool parameters here for the data source used by tasks in the container, such as "Initial Connections." |
Task List
You can add tasks here to run in this container, or remove tasks from it.
You can also set the task container for a task in the Advanced Options of the task configuration window.
Set the task container for a task in the Advanced Options of the task configuration window
Tip: After removing a task from a container, if a new container is not set for the task, the system will run the task in "Independent-process" mode.
You can set JDBC Pool parameters in the container configuration for the data sources used by the tasks within the container.
Click the "JDBC Pool Config" button to open "Database Sources Used by The Tasks in This Container" dialog box
This list displays all the data sources used by the tasks within this container. To modify the JDBC Pool configuration for a data source, click the button on the right side of the data source item to open the DataSources Connection Pool Config dialog box.
DataSources Connection Pool Config
In this dialog box:
Initial Connections |
Set the initial number of connections for the data source connection pool at startup. When this connection pool starts, it will automatically create the corresponding number of database connections. When tasks within the container request a connection to this data source, the system will automatically select an idle connection from the pool for the task to use. The minimum value for this parameter is 1, and the maximum value cannot exceed twice the "Max concurrent tasks". The default value is 1. After modifying this parameter, you need to restart the container process for the changes to take effect. Note: This parameter should be set after consultation with the database administrator and based on their recommendations to avoid affecting the performance of the database. |
Create connection pool for this data source when the container started |
If this option is selected, the connection pool of this data source will be created when the container starts. Otherwise, the container will create the connection pool of the data source when the task uses this data source for the first time. After modifying this parameter, you need to restart the container for the new configuration values to take effect. |
In the Task Container Manager, you can manage containers via the right-click popup menu or the toolbar on the right of each container item.
Task Container Manage Toolbar
![]() |
Open the Task Container Config dialog box to modify the container configuration. |
![]() ![]() |
Disable or enable the task container. Tip: If the task container is disabled, tasks in the container will run in "Independent-process" mode. |
![]() |
Delete the task container. Tip: If the task container is deleted, tasks in the container will run in "Independent-process" mode. |
Tip: The default container created by the system cannot be stopped or deleted.
Popup Menu
Task Container Running Status |
View the operational status of the task container, such as the container's operating system process ID, start time, task queue, and container logs. |
Edit Task Container Config |
Open the Task Container Config dialog box to modify the container configuration. |
Enable Task Container |
Enable the task container. |
Disable Task Container |
Disable the task container. Tip: If the task container is disabled, tasks in the container will run in "Independent-process" mode. |
Delete Task Container |
Delete the task container. Tip: If the task container is deleted, tasks in the container will run in "Independent-process" mode. |
Undo Delete |
Undelete the task container. |
Task Container Running Status dialog box
6 Considerations for Using Task Containers
When using task containers, it is important to be aware of the following considerations:
You should configure multiple task containers based on your computer's hardware and software capabilities, and assign different tasks to different containers for efficient resource utilization and to ensure stable system operation.
Tasks that involve large amounts of data, consume high memory, and run for extended periods of time should be executed in a separate task container to prevent any disruption to the normal operation of other tasks.
When configuring data source connection pools and other related settings, it is recommended to first consult with the database administrator of the data source and make the configurations based on their recommendations to avoid wasting database resources.