Deploying the Case event emitter automatically

You can set parameters in the EnableCaseBAI.py script for automated deployment of the Case event emitter application.

Before you begin

  1. Install IBM® Business Automation Workflow and make sure that the WebSphere® Application Server instance is up and running.
  2. Make sure that the <Workflow_Install_Root>/CaseManagement/analytics directory contains the CaseEventEmitter.war and EnableCaseBAI.py files.
Restriction: Kafka Kerberos configuration is not supported.

About this task

You must use the EnableCaseBAI.py script in the specific profile in which the Case event emitter needs to be deployed. If the target environment is a standard environment, use the specific profile root directory. If the target environment is a clustered environment, use the Deployment Manager node. The script can handle all kinds of topologies for the IBM Business Automation Workflow installation.

The EnableCaseBAI.py script is described in EnableCaseBAI.py script syntax.

Procedure

  1. Create the CaseEventEmitter.json file from the sample-CaseEventEmitter.json file.

    This file is in the <Workflow_Install_Root>/CaseManagement/analytics directory.

  2. Edit the CaseEventEmitter.json file to match the configuration of your Content Engine server to retrieve events.
  3. Run the EnableCaseBAI.py script with the JSON configuration file.
    1. Use the wsadmin command to start the EnableCaseBAI.py script from the specific profile to which the Case event emitter needs to be deployed.
      <specific_target_profile_root>/bin/wsadmin.sh|bat -lang jython 
      -f <Workflow_Install_Root>/CaseManagement/analytics/EnableCaseBAI.py 
      --war=<location_of_CaseEventEmitter.war> 
      --config=<location_of_CaseEventEmitter.json> 
      --operation=install [--appName=CaseEmitter_CCDM.war] [--type=<installation_type>] [--cell=<cell_name>] [--cluster=<cluster_name>] [--node=<node_name>] [--server=<server_name>] [--virtualHost=<virtualhost_name>] [--kerbConf=<krb5.conf_location>]
    2. Set the parameters as follows.
      --operation
      Make sure that this parameter is set to install.
      --type, --cell, --cluster, --virtualHost or --type, --cell, --node, --server, --virtualHost
      To identify the target environment where the event emitter must be deployed, pass either of these sets of mandatory parameters. If any is missing, the user is prompted to set them at run time from the available list of values.
      --appName
      This optional parameter sets the name of the application and of the resulting WAR file. If you do not specify any name, the default name is CaseEventEmitter.war.
      --kerbConf
      This optional parameter depends on the Kafka configuration. Specify the path to the krb5.conf file so that the script can create or modify the java.security.krb5.conf JVM property on each of the target servers.
    Examples:
    C:\Program Files (x86)\IBM\WebSphere\AppServer\profiles\Dmgr01\bin>wsadmin.bat -lang jython 
    -f C:/Workflow/CaseManagement/analytics/EnableCaseBAI.py 
    --war=C:/Workflow/CaseManagement/analytics/CaseEventEmitter.war 
    --config=C:/Workflow/CaseManagement/analytics/CaseEventEmitter.json 
    --operation=install
    C:\Program Files (x86)\IBM\WebSphere\AppServer\profiles\Dmgr01\bin>wsadmin.bat -lang jython 
    -f C:/Workflow/CaseManagement/analytics/EnableCaseBAI.py 
    --war=C:/Workflow/CaseManagement/analytics/CaseEventEmitter.war 
    --config=C:/Workflow/CaseManagement/analytics/CaseEventEmitter.json 
    --appName=CaseEmitter_CCDM.war 
    --operation=install
    C:\Program Files (x86)\IBM\WebSphere\AppServer\profiles\Dmgr01\bin>wsadmin.bat -lang jython -f C:/Workflow/CaseManagement/analytics/EnableCaseBAI.py 
    --war=C:/Workflow/CaseManagement/analytics/CaseEventEmitter.war 
    --config=C:/Workflow/CaseManagement/analytics/CaseEventEmitter.json 
    --appName=CaseEmitter_CCDM.war 
    --operation=install --type=Cluster --cell=CaseEmitter2e21Cell01 --cluster=Custer1
    C:\Program Files (x86)\IBM\WebSphere\AppServer\profiles\Dmgr01\bin>wsadmin.bat -lang jython 
    -f C:/Workflow/CaseManagement/analytics/EnableCaseBAI.py 
    --war=C:/Workflow/CaseManagement/analytics/CaseEventEmitter.war 
    --config=C:/Workflow/CaseManagement/analytics/CaseEventEmitter.json 
    --appName=CaseEmitter_CCDM.war --operation=install --type=Standard --cell=CaseEmitter2e21Cell01 --node=CaseEmitter2e21Node03 --server=server1 -krbConf=C:/krb5.conf
  4. If you use the --kerbConf parameter to pass a Kerberos configuration file, restart the target deployment environment for the configuration to take effect.

Results

The script creates a new application WAR file with the name you specified and installs the new Case event emitter application.
  1. You are prompted to pass administration credentials to the WebSphere Application Server cell, and any mandatory parameters that you have not specified on the command line.
  2. The CaseEventEmitter.json configuration is pushed to the WAR file to create a new emitter application WAR file and sends it to a new folder named CaseEventEmitter_<timestamp>. The name of the new event emitter application is the value that you passed to the --appName parameter or the CaseEventEmitter.war default name.
  3. Before the script deploys the new event emitter application, it checks for any existing application with the same name.
    • If the script does not find any application with the same name, it installs the new application to the selected profile of the WebSphere Application Server environment.
    • If the script finds an existing application with the same name, a message warns the user and the script exits. You must change the --appName value and run the script again.
  4. If you specified the --kerbConf parameter, the value is set to the server and, for a cluster, to each server member. If the java.security.krb5.conf JVM property already exists, you are asked whether to overwrite or not.
  5. If the target environment is a clustered environment, the configuration is updated and synchronized with each node.

Optional: Configuring Case event emitter with multiple target object stores

Procedure

  1. To process events from multiple target object stores, prepare CaseEventEmitter configuration file for each of the target object stores and name the files appropriately.
  2. Once the configuration files are prepared, pass the path of these configuration files through --config parameter while running EnableCaseBAI.py script. Each path should be separated by a comma (“,”).
    Example:
    C:\Program Files (x86)\IBM\WebSphere\AppServer\profiles\Dmgr01\bin>wsadmin.bat -lang jython 
    -f C:/Workflow/CaseManagement/analytics/EnableCaseBAI.py 
    --war=C:/Workflow/CaseManagement/analytics/CaseEventEmitter.war 
    --config=C:/Workflow/CaseManagement/analytics/CaseEventEmitter_TOS1.json,C:/Workflow/CaseManagement/analytics/CaseEventEmitter_TOS2.json
    --operation=install