ActiveMQ is used in Blackboard Learn as an asynchronous message queue service to provide a distributed, fault-tolerant mechanism for sending messages between load-balance application servers to be processed in the background of the application. ActiveMQ is bundled in Learn and is automatically installed when Learn is installed.

ActiveMQ installs with the default communications port 61616. All application servers within the given installation must have the same communication port open. If this port is not open, the servers are not able to connect to the ActiveMQ broker. This causes some application functions (for example, manual integration feeds through the user interface or command-line) to work incorrectly.


Change the ActiveMQ default communications port

If the default communications port for ActiveMQ is not compatible with your installation, you may change it. Change the communications port by editing bbconfig.messagequeue.transport.port in the bb-config.properties file. If you change the port on one application server, you must make the same change on all application servers within the given installation. To save your changes you must update the configuration by running the PushConfigUpdates command. This action restarts services.

Since this change must be made on all appservers at the same time, use your scheduled maintenance window and not a rolling restart.

More on bb-config.properties File


Resolve host names

Each application server must be able to resolve the unique hostname configured by the other application servers to communicate with them. This host name is configured in bbconfig.appserver.fullhostname in the bb-config.properties file.

Hosts much be reachable not only on the ActiveMQ port, but they must also communicate on a non-configurable, randomly assigned port for proper cache notification. Ensure that ports 1024 and higher are open for inter-node communication over TCP. Otherwise, cached data updates will take effect only on other servers, and there will be a significant delay (cache timeout period).


Log events

Events related to this message queue are appended to the tomcat log files.

The logs for Service Pack 9 and above:

/logs/tomcat/activemq.txt

The logs for Service Pack 8 and older:

/logs/tomcat/catalina-log.txt


Verify ActiveMQ database tables

  1. Open up the latest application logs:
    • /logs/tomcat/activemq.txt
    • /logs/tomcat/catalina-log.txt
    • blackboard/logs/tomcat/stdout-stderr-TIMESTAMP.log
  2. Verify that they do not contain error entries indicating ActiveMQ datastore corruption, such as:

    org.apache.kahadb.journal.Journal - Corrupt journal records found

  3. If corruption is evident, proceed with the following steps.
    1. Stop services on all application servers, including the collab-server and any stand alone JVMs such as the snapshot tool, batch archive, and background system tasks.
    2. Remove (or rename) the /content/vi/bb_bb60/activemq/messageQueueService/kaha folder to trigger the recreation of ActiveMQ's tablespaces.

    3. Start services on all application servers.