MicroStrategy - Scheduled Reports


https://community.microstrategy.com/t5/Administration/Email-Subscription-not-sending-to-All-Receipients/td-p/115282 - done reading
https://community.microstrategy.com/t5/Server/TN8486-What-is-Job-Prioritization-and-Connection-Management-in/ta-p/169385 - done reading
https://community.microstrategy.com/t5/Object-Development/Job-Prioritization/td-p/74359 - done reading

How can we limit the number of scheduled reports per user?

This is a project level setting.

  1. Launch Developer / Desktop
  2. Connect to appropriate project source
  3. Right click on appropriate project
  4. Select Project Configuration
  5. Expand Governing Rules -> Default -> Subscriptions
  6. Change the values on this screen to appropriate values.
  7. Click on the OK button.

How can we limit the number of concurrent jobs for scheduled reports?

  1. Launch Developer / Desktop
  2. Connect to appropriate project source
  3. Right click on appropriate project source and select Configure Intelligence Server
  4. Drill down on Governing Rules -> Default -> General and change the value for the Maximum number of scheduled jobs text field

We should also look into job prioritization

How can we change the job priority setting?

  1. Launch Desktop
  2. Drill down on the right project source
  3. Drill down on Administration -> Configuration Managers -> Database Instances
  4. Right click on the appropriate database instance and select Edit
  5. Click on Job Prioritization tab
  6. Click on the New button
  7. Click Next
  8. Check the check box next to Application type
  9. Click Next
  10. Check the check box next to either Scheduler or Web
  11. Click Next
  12. Click on Medium (under the first column (Processing Unit Priority)) and change it to appropriate priority.
  13. Click the Finish button.
  14. Repeat the process if we need to add more priorities / conditions / rows
  15. Specify the appropriate number of connections for each priority
  16. Click the OK button.

Job priority defines the order in which jobs are processed by MicroStrategy Intelligence Server. Connection Management is the process of setting the optimal number of default, medium, and high warehouse connections for the support environment. This is based on user group, job cost and project profiles. The overall goal of job prioritization and connection management is to prioritize jobs such that they can be run in a specified order. Defining Priorities and Connections apply to all projects which use the selected database instance.

Administrators can, based on priority, specify the number of warehouse connections that are required for efficient job processing. There are three possible priorities for a job: high, medium and low. Administrators are not required to set medium and high connections, but must set at least one low connection, because low priority is the default job priority.

The optimal number of connections is dependent on several factors, however the main criterion to consider when setting the number of connections is the number of concurrent queries the warehouse can support. Please be sure that if trying to execute an inordinately high number of jobs at once, memory issues will likely occur on the Microstrategy Intelligence Server.

MicroStrategy Intelligence Server processes a job on a connection that corresponds to the job’s priority. If no priority is specified for a job, MicroStrategy Intelligence Server processes the job on a low priority connection. For example, jobs with a high priority are processed by high priority connections; jobs with a low or no priority are processed by a low priority connection.

In the case of multiple job priority entries matching the executing job, the MicroStrategy Intelligence Server will use the job priority specified for the priority map entry that has the maximum number of matching factors as specified in the tech note TN30315.

Microstrategy Intelligence Server also engages in connection borrowing when processing jobs. Connection borrowing occurs when MicroStrategy Intelligence Server executes a job on a lower priority connection because no connections with an equivalent priority is available for the job at execution time. For example, high priority jobs can run on both medium and low priority connections as well as the default high priority connections. In this way, users and administrators can be assured that the highest priority jobs have access to all connection resources. Also, connection borrowing reduces the waste of resources caused by idle connections.

For example, if a job with a medium priority is submitted and all medium priority connections are busy processing jobs, MicroStrategy Intelligence Server will process the job on a low priority connection. When a job is submitted and no connections are available to process it, either with the pre-selected priority or with a lower priority, MicroStrategy Intelligence Server places the job in queue and processes it when a connection becomes available.

Note that connection borrowing is not a guarantee that higher priority jobs will always execute before lower priority jobs. For example, suppose there is a high priority job and a low priority job in the pending queue, and a low priority connection becomes available. There is no guarantee that either the high or low prioriy job will execute on the low priority thread. The job that gets chosen to be executed on the low priority thread will depend on the order in which the jobs were placed in the internal pending queue.

How can we limit the amount of time that scheduled reports can take?

Go to Project Configuration>Governing Rules>Default>Result sets, and set a higher value of "maximum values for Intelligence Server Elapsed Time"> Scheduled reports as shown below:


How should we set the jobs per user session?

In the project configuration -> governing rules -> Users -> Executing jobs per user session -> Increase it to 20

Right click project>project configuration>governing>jobs and set Jobs per user session and jobs per user account as per your need.

How can we enable the DataTransmitter trace?

DataTransmitter Trace is useful in troubleshooting MicroStrategy Bulk Export issues. It can be found in MicroStrategy Diagnostics and Performance Logging tool as seen below:


MicroStrategy Bulk Export feature enables users to retrieve result sets from large datasets without having to load the entire datasets in memory. During Bulk Export, data is written incrementally to a user defined file location based on "Number of rows retrieved in each step" setting as seen below. The default value for this setting is 500 rows but in the example below, a value of 100 is used. This setting controls the number of database rows that the bulk export retrieves at a time. The job remains active until all the bulk export chunks (database rows) are written to file.


When the bulk export job starts, the following entry is added to the DataTransmitter Trace:

2010-05-24 11:28:02.250-05:00 Initializing transmitter

For each bulk export chunk retrieved from the database, the following set of rows is added to the DataTrannsmitter Trace:

2010-05-24 11:28:02.282-05:00 Applying format properties
2010-05-24 11:28:02.328-05:00 Formatting content
2010-05-24 11:28:02.360-05:00 Sending email
2010-05-24 11:28:02.422-05:00 Getting address statuses

How can user A subscribe user B to a report?

In MicroStrategy 9.0.0, there is a new functionality within MicroStrategy Distribution Services 9.0.0 which allows a user to subscribe other users to reports. However, when attempting to subscribe reports for other users, User A cannot see any other MicroStrategy users to subscribe reports for, and can only send reports to his/her own email address.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License