Configuring the BPM event emitter

To configure the BPM event emitter, you run the EnableBAI.py script with a properties file. This file generates the configuration files that are used by the emitter to send events from BPMN processes, BPEL processes, and BPEL human tasks to a Kafka server. If you installed IBM Business Automation Insights on a single node, the Kafka truststores are retrieved differently.

Kubernetes cluster

About this task

You can create a copy of the BAIConfigure.properties template file, which you then edit to match your needs, or you can start from a new file. You can find the BAIConfigure.properties template in the <Workflow_Install_Root>\BPM\Lombardi\tools\def directory.

Procedure

  1. Set the following mandatory properties.
    bpmCellName
    The name of the IBM Business Automation Workflow server cell. This name is used in IBM Business Automation Insights to identify the source of the events.
    DeploymentEnvironmentName
    The Workflow target deployment environment (DE) name. If only one deployment environment is available, set this property to None.
    bootstrapServers
    A comma-separated list of Kafka bootstrap and brokers IP and PORT.
    topicName
    The name of IBM Business Automation Insights ingress topic. For more information, see Creating Kafka topics.
    type
    The type of security configuration to use with Kafka. For available types and specific configuration requirements, see Securing communications from event emitters to Kafka.
  2. Run the following command.
    <Dmgr_profile_root>\bin\wsadmin.[bat|sh] -f <Workflow_Install_Root>\BPM\Lombardi\tools\def\EnableBAI.py --update=connection --property="<full path to property file>"
    <Dmgr_profile_root>\bin\wsadmin.bat -f <Workflow_Install_Root>\BPM\Lombardi\tools\def\EnableBAI.py --enable
    
    This command has the following effects.
    1. The script generates the BPMEventEmitter configuration file to the <profile_root>\config\cells\<cell_name>\nodes\<node_name>\servers\<server_name>\analytics\config directory or to the <profile_root>\config\cells\<cell_name>\clusters\<cluster_name>\analytics\config directory, or to both.
    2. If necessary, the script distributes the SSL- and Kerberos- related configuration files to each server instance under <profile_root>\config\cells\<cell_name>\nodes\<node_name>\servers\<server_name>\analytics\config.
    3. The script updates the configuration and synchronizes the nodes.
  3. Restart the BPMEventEmitter application in the WebSphere® Application Server administration console for the new configuration to take effect.

Single node deployment

About this task

Important: In the context of a single node deployment, the only security protocol you can use is SSL with username and password. For example, to configure the BPM event emitter, see Connecting to Kafka over SSL with username and password authentication.

Procedure

  1. Set the following mandatory properties.
    bpmCellName
    The name of the IBM Business Automation Workflow server cell. This name is used in IBM Business Automation Insights to identify the source of the events.
    DeploymentEnvironmentName
    The Workflow target deployment environment (DE) name. If only one deployment environment is available, set this property to None.
    bootstrapServers
    A comma-separated list of Kafka bootstrap and brokers IP and PORT.
    topicName
    The name of IBM Business Automation Insights ingress topic. For more information, see Creating Kafka topics.
    type
    The type of security configuration to use with Kafka. For available types and specific configuration requirements, see Securing communications from event emitters to Kafka.
  2. Run the EnableBAI.py script to enable subscription to event emission.
    <Dmgr_profile_root>\bin\wsadmin.bat -f <Workflow_Install_Root>\BPM\Lombardi\tools\def\EnableBAI.py --enable
    

    This command configures the Dynamic Event Framework (DEF) to subscribe to IBM BPM events and installs the BPMEventEmitter application to emit IBM BPM events with the configuration in the BPMEventEmitter.yml or from the command line.

  3. Restart your IBM Business Automation Workflow deployment environment (Dmgr, Node, and servers).
  4. Edit the BAIConfigure.properties file to use with the EnableBAI.py script.
    For a secure SASL_SSL communication to the Kafka server, you can use the following settings.
    type=sasl_ssl
    trustStore=<full-path-to-truststore.jks>
    trustStore.password=<truststore-password>
    keyPassword=<truststore-password>
    username=<kafka-server-username>
    password=<kafka-server-password>
    trustStore
    The truststore is retrieved from the <bai_sn_installdir>/certs/kafka/truststore.jks file.
    trustStore.password
    The trustStore.password parameter is retrieved from the <bai_sn_installdir>/certs/kafka/store-password.txt file.
    username
    The username parameter is retrieved from the KAFKA_USERNAME variable in the <bai_sn_installdir>/.env file.
    password
    The password parameter is retrieved from the KAFKA_PASSWORD variable in the <bai_sn_installdir>/.env file.
    keyStore, keyStore.password, keyPassword
    Optionally, you can add these parameters to your configuration for mutual authentication.
  5. Run the EnableBAI.py script again to update the connection.
    <Dmgr_profile_root>\bin\wsadmin.bat -f <Workflow_Install_Root>\BPM\Lombardi\tools\def\EnableBAI.py --update=connection --property="<full_path_to_full_path_to_BAIConfigure.properties>"
    
    This command updates the application connection information by using the value from the BAIConfigure.properties file.
  6. Enable the state observer DEF.
    wsadmin.bat -conntype none -profileName %PROFILE_NAME% -f %WAS_HOME%\ProcessChoreographer\admin\setStateObserver.py -cluster <AppCluster> -enable DEF
    
    This command enables the state observer DEF for Business Flow Manager and Human Task Manager.
  7. Restart your IBM Business Automation Workflow deployment environment (Dmgr, Node, and servers).

What to do next