Parallel Execution (Magic xpa 2.x)

« Go Back


Created ByKnowledge Migration User
Approval Process StatusPublished

Parallel Execution (Magic xpa 2.x)

The Parallel Execution property defines whether the current task will run in a new context in parallel to any other running program.

Note that you can only use this property in a top level task; that is, a program can run in parallel, but you cannot call a subtask that runs in parallel.

When this program runs, it will run in its own environment, parallel to whatever tasks are running in the original environment.

Each context works like its own instance of Magic xpa with its own copy of the Main Program and its own Memory tables.


  • When the engine is loaded with an enterprise (mgent) or a partitioning (mgpart) license, every time a parallel program is opened in the server, another thread is used. This means that the number of parallel programs that can be executed simultaneously depends on the lower value of either the number of threads defined in the license or the maximum number of concurrent requests defined in the Magic.ini file.

  • When the engine is loaded with a Client license, the number of Batch programs (which did not call an Online program) that can run simultaneously is limited to two.

  • All components that are already loaded will also be loaded in the new context. However, if a new component is loaded (its Load Immediate property is set to No) in the new context, it is available only for that context.

Exceptions: A program with parallel execution cannot:

  • have a Return Value (which appears in the General tab of the Task Properties).

  • have the Close Task Window property set to No.

  • have an initial mode of As Parent, since it will cause the task to end.

  • be an Offline program. An Offline program will be executed as a non-parallel program.

  • be defined as a select program. When a program is called using the Select Program property of a variable or control, the Parallel Execution property will be ignored and the program will behave as an MDI child (when run as an MDI) or floating (when run under an SDI).

  • receive a Numeric variable of more than 15 characters as a parameter. Such parameters may cause inaccurate results. It is recommended to use a string for larger fields in this scenario.

  • receive a BLOB variable as a parameter.

Platform specific: Parallel programs are not supported for mobile devices.

Related Topics