EngageOne™ Notifications

EngageOne Notifications is a mechanism for real-time communication of business-related events. By default it makes use of an instance of Apache ActiveMQ embedded in the Notification bundle, although it can be configured to use a different JMS-compliant message queue. A number of factors should be considered regarding the performance and resource utilization of the Notifications mechanism.
  • Notifications should only be enabled if a message consumer is present. If there is no consumer the notification messages have no value and should not be produced.

    The Notification mechanism is turned off by default and can be enabled by setting notification.publisher.enabled=true in deploy.properties at installation or re-configuration time.

  • If Notifications are not enabled or if the Notifications mechanism is configured to use an external message queue the Notification bundle should not be started up.

    Starting this bundle will use system resources unnecessarily.

  • Specific Notification types can be suppressed if they are not required by any consumer.

    Suppressing messages reduces the system resources required by the message queue and also reduces the number of messages that a consumer has to process.

    Individual Notification messages types can be suppressed using notification.type.communication.omitted.actions, notification.type.batch.omitted.actions and notification.type.workflow.omitted.actions properties in deploy.properties.

    For example, the "StatusChanged" action for "Communication" notifications could be suppressed.

  • The JMS implementation persists messages until they are consumed by a client application.

    The persistence mechanism requires disk space and this is by default located on a drive on the Notification bundle's server.

    The amount of space required can be minimized by ensuring that at least one message consumer is consuming each type of message. Otherwise messages are left in the queue indefinitely unless a non-zero value is specified for notification.message.timeToLive in deploy.properties.

    This property can be set to a specific value (for example one hour), so that unprocessed messages are automatically purged from the queue after that time.

    Note that the number is in milliseconds, and therefore an hour would be 360000.