Version 2021

Prioritize Jobs

Starting in the MicroStrategy 2021 Update 6 July monthly release, you can use job priority to define the order in which jobs are processed. Jobs are usually executed on a first-come, first-served basis. However, your system probably has certain jobs that need to be processed before other jobs.

Job priorities are set on the data sources in an environment which determines whether certain jobs are submitted to the data warehouse before other jobs while waiting in the queue for execution. It does not affect the jobs that are pending execution at the data warehouse.

For example, an executive in your company runs reports at unplanned times and you want to ensure that these reports are immediately processed. If no priority is set for the executive's reports, they are processed with the other jobs in the system. Depending on data warehouse activity, this may require some wait time. If you assign a high priority to all jobs from the executive's user group, Intelligence Server processes and submits those jobs to the data warehouse first, rather than waiting for other jobs to finish.

Intelligence server processes a job on a database connection that corresponds to the job's priority. If no priority is specified for a job, Intelligence server processes the job on a low-priority connection. For example, jobs with high priority are processed by high-priority connections, and jobs with low or no priority are processed by a low-priority connection.

The Job Prioritization editor allows governing of the connection threads for each priority (high, medium, and low). For example, if the number of job priorities defined for the High level are 5, consider increasing the connection threads for the High level to more than 5.

Intelligence server also engages in connection borrowing when processing jobs. Connection borrowing occurs when Intelligence server executes a job on a lower priority connection because no connections that correspond to the job's priority are available at execution time. High-priority jobs can run on high, medium, and low-priority connections. Likewise, medium priority jobs can run on medium and low priority connections.

When a job is submitted and no connections are available to process it, either with the same priority or with a lower priority, Intelligence server places the job in the queue and then processes it when a connection becomes available.

You can set jobs to high, medium, or low priority, by one or more of the following variables:

  • Request type Report requests and element requests can have different priorities.

  • Application type Jobs submitted from different MicroStrategy applications, such as Developer, Scheduler, MicroStrategy Web, or Narrowcast Server, are processed according to the priority that you specify.

  • User group Jobs submitted by users in the groups you select are processed according to the priority that you specify.

  • Project Jobs submitted from different projects are processed according to the priority that you specify.

These variables allow you to create sophisticated rules for which job requests are processed first. For example, you could specify that any element requests are high priority, any requests from your test project are low priority, and any requests from users in the Developers group are medium priority.

A job is processed at the highest priority assigned to it by any rules. For example, if you set all jobs from your test project at low priority, and all jobs from users in the Developers group at medium priority, jobs in the test project that are requested by users in the Developers group are processed at medium priority.

Check out the tutorial below to learn more!

Set Job Prioritization

  1. Open the Workstation window.
  2. In the Navigation pane, under Administration, click Data Sources.
  3. Right-click the data source and choose Properties.
  4. In the left pane, click Job Prioritization.

    By default, a row with a Medium Job Priority and All options for Request Type, Application Type, User Groups, and Projects are selected.

  5. Change the defaults according to your requirement and set the Job Priority level.

  6. Increase the number of connections per priority based on the number of job priorities set for each priority level.

  7. Click OK.

  8. Restart the server.

Prioritize Jobs by Request Type

You can select whether element requests or report requests are processed first. For example, you may want element requests to be submitted to the data warehouse before report requests, because element requests are generally used in prompts and you do not want users to have to wait long while prompt values load. In this case you might specify all element requests to be processed at a high priority by default, and all report requests to be processed at a low priority by default.

Prioritize Jobs by MicroStrategy Application Type

You can assign a different priority to jobs submitted from Developer, MicroStrategy Web, Scheduler, and Narrowcast Server. All jobs submitted from the specified application use the specified priority. For example, you may want report designers to be able to quickly test their reports, so you may specify that all jobs that are submitted from Developer are processed at a high priority.

Prioritize Jobs by User Group

You can assign a different priority to jobs submitted from different MicroStrategy user groups. For example, you can assign all jobs from users in the Executive user group to be processed at a high priority.

Prioritize Jobs by Project

You can assign a different priority to reports from different projects. For example, you may want all jobs submitted from your production project to have a medium priority, so that they take precedence over reports from your test project.