If you are a Managed Hosting customer, this topic doesn't apply to you.

The Low Priority Connections feature is a facility that allows certain, performance-intensive database operations to run at a lower priority, so they do not consume CPU resources. For Unix users, it uses Oracle Resource Manager; for Window users, it uses SQL Server Resource Governor.

This feature is turned off by default, as it has not been fully tested. There is a mechanism to activate it using a switch in the main configuration file:

/blackboard/config/bb-config.properties

The property is called bbconfig.database.query.prioritization.enabled, and it is set to false, by default. It should not be enabled without the direction, supervision and support of Blackboard personnel. To learn more, see bb-config.properties File.

Despite the fact that the feature is off by default, it does introduce a new artifact to the Blackboard database: a resource governor that regulates the CPU utilization of connections configured to run at a lower priority. Unless this feature is activated, it will have no impact on the operation of Blackboard Learn.


Compatibility

The resource governor is only installed on systems that use the following databases:

  • Oracle 10 Enterprise Edition
  • Oracle 11 Enterprise Edition
  • SQL Server 2008 Enterprise Edition

It will not be installed for any other versions, and the low-priority connection feature will not take effect on those systems, even when enabled.


Enable the feature

  1. Navigate to the following directory:

    blackboard_directory/config

  2. Open the bb-config.properties file. To learn more, see bb-config.properties File.
  3. Set the value of bbconfig.database.query.prioritization.enabled to true in bb-config.properties
  4. Run PushConfigUpdates. To learn more, see PushConfigUpdates.

This does need to be enabled on each application server in the application loading balance setting.

Once the feature is enabled, two tasks will run in low priority threads.

  • The notification system's recipient deletion task (bb.remove.stale.notification.data). This is a bb-task.
  • The notification system's content blitz task, which is responsible for generating notifications en masse for courses that have introduced to the system through content exchange (NautilusContextBlitzOperation). This is a queued task.

The recipient deletion task is set up to run as a lower priority in the bb-tasks file:

<task-entry key="bb.remove.stale.notification.data" version="60">

<task classname="blackboard.platform.nautilus.service.internal.NotificationRemoveStaleDataTask">
<property name="delay" value="60000" />
<property name="period" value="300000" />
<property name="db-priority" value="low" />
</task>
</task-entry>


Disable the Oracle resource manager

In addition to having this feature disabled in the properties file, you can turn it off at the database level. This will not remove the governor from the database, it will simply disable it. It can be re-enabled later.

Locate sessions

select sid,serial#, inst_id from gv$session where RESOURCE_CONSUMER_GROUP = 'BATCH';

Stop sessions

alter system kill session 'sid,serial#, @inst_id'; e.g., if sid= 110,serial#=600, inst-id=1, then
alter system kill session '110,600,@1';

Disable resource manager

sqlplus "/ sysdba"
alter system set resource_manager_plan = ''

  1. Log in as sys dba.
  2. Once logged in, turn off the resource manager by setting it to an empty plan.

Delete the Oracle Resource Governor

There are two circumstances under which you might want to delete the resource governor:

  • The Resource Governor has been shown to cause issues on your system, and is not resolved through disabling.
  • You have uninstalled your Blackboard Learn environment, and wish to remove the Resource Governor as well.

Uninstall the Oracle Resource Governor

In a production environment, wait for all sessions that are using low-priority connections to complete before attempting to uninstall the Resource Governor. Alternatively, kill the sessions. If this is not done, the drop will fail.

  1. Log in as sys dba:
  2. Disable the BB_PLAN resource plan.
  3. Remove the plan, and all its descendants.

    sqlplus "/ sysdba"
    alter system set resource_manager_plan = '';
    exec dbms_resource_manager.create_pending_area();
    exec dbms_resource_manager.delete_plan_cascade('Bb_plan');
    exec dbms_resource_manager.validate_pending_area();
    exec dbms_resource_manager.submit_pending_area();


Disable the SQL Server Resource Governor

  1. Open the SQL Server Manager.
  2. Select Management.
  3. Select Resource Governor.
  4. Right-click on Resource Governor, select Properties.
  5. Set Classifier Function Name to None.

Uninstall the SQL Server Resource Governor

In a production environment, wait for all sessions that are using low-priority connections to complete before attempting to uninstall the Resource Governor. Alternatively, kill the sessions. If this is not done, the drop will fail.

Locate session IDs

SELECT s.group_id, CAST(g.name as nvarchar(20)), s.session_id, s.login_time, CAST(s.host_name as nvarchar(20)), CAST(s.program_name AS nvarchar(20))

FROM sys.dm_exec_sessions s
INNER JOIN sys.dm_resource_governor_workload_groups g
ON g.group_id = s.group_id
ORDER BY g.name
Use management GUI or
kill session_id, e.g., if session_id =67
kill 67
go

Remove the Resource Governor

  1. Delete the low priority resource group.
  2. Disable the resource classifier.
  3. Delete the resource classifier function.

    DROP WORKLOAD GROUP groupLowPriority;
    GO
    -- Update the Resource Governor in-memory configuration
    ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION=null);
    GO
    ALTER RESOURCE GOVERNOR RECONFIGURE;
    GO
    DROP FUNCTION dbo.get_priority_workgroup;
    GO

For Window MSSQL users, please diagnose SQL Server problems with the SQL Server management Studio UI.


Uninstaller known issue

The uninstaller does not remove the Resource Governors. This is an issue which will be addressed in future service packs.

Database artifacts

Oracle

  • A resource plan, called BB_PLAN.
  • Two consumer groups: OLTP, and BATCH.
  • The database's RESOURCE_MANAGER_PLAN will be set to BB_PLAN.

SQL Server

  • A workload group, called groupLowPriority
  • A classifier function, called get_priority_workgroup
  • The resource governor is updated to point to the get_priority_workgroup function

It will be necessary to remove the Resource Governor manually.