30.2. 为 KIE 服务器配置并运行 Red Hat JBoss EAP 7.3 集群

为 KIE 服务器配置 Red Hat JBoss EAP 集群,然后启动集群。

流程

  1. 在所有属于此群集的红帽 JBoss EAP 实例上安装 JDBC 驱动程序。有关更多信息,请参阅 Red Hat JBoss EAP 7.3 配置指南中的 "恢复驱动程序 "部分
  2. 在文本编辑器中打开 EAP_HOME/standalone/configuration/standalone-full.xml 文件。
  3. 编辑 data-stores 属性和以上的 timer-service thread-pool-name

    • datasource-jndi-name 是此流程开始时指定的数据库的 JNDI 名称。
    • 您可以为 partition 属性的值输入任何名称。但是,节点只会看到具有相同分区名称的其他节点的计时器。通过分配分区名称将节点分组到分区中,您可以将大型集群分成几个较小的集群。这样做提高了性能。例如,除了具有 100 个节点的集群外,所有 100 个节点都试图执行并刷新同一计时器,您可以通过为每个包括 5 个节点的组指定一个不同的分区名称来创建 20 个每个包括 5 个节点的集群。
    • default-data-store 属性值替换为 ejb_timer_ds
    • 以毫秒为单位设置 refresh-interval 的值,以指定 EJB 计时器连接到数据库的频率,以同步和加载要处理的任务。

      <timer-service thread-pool-name="default" default-data-store="ejb_timer_ds">
      <data-stores>
          <database-data-store name="ejb_timer_ds" datasource-jndi-name="java:jboss/datasources/ejb_timer" database="postgresql" partition="ejb_timer_part" refresh-interval="30000"/>
      </data-stores>
      </timer-service>

      下表列出了支持的数据库和对应的 数据库 属性值:

      表 30.1. 支持的数据库

      数据库属性值

      Hyper SQL (仅用于演示目的,不支持)

      hsql

      PostgreSQL

      postgresql

      Oracle

      oracle

      IBM DB2

      db2

      Microsoft SQL Server

      mssql

      MySQL and MariaDB

      mysql

  4. 将 KIE 服务器和 EJB 计时器数据源添加到 standalone-full.xml 文件中。在这些示例中,&lt ;DATABASE& gt; 是数据库的名称,< SERVER_NAME&gt; 是 JNDI 数据库的主机名,< USER_NAME> 和 & lt;USER_PWD > 是该数据库的凭证。

    • 添加数据源以允许 KIE 服务器连接到数据库,例如:

      <xa-datasource jndi-name="java:/jboss/datasources/rhpam" pool-name="rhpam-RHPAM" use-java-context="true" enabled="true">
        <xa-datasource-property name="DatabaseName"><DATABASE></xa-datasource-property>
        <xa-datasource-property name="PortNumber">5432</xa-datasource-property>
        <xa-datasource-property name="ServerName"><SERVER_NAME></xa-datasource-property>
        <driver>postgresql</driver>
        <security>
          <user-name><USER_NAME></user-name>
          <password><USER_PWD></password>
      </security>
      </xa-datasource>
    • 添加数据源以启用 EJB 计时器,例如:

      <xa-datasource jndi-name="java:jboss/datasources/ejb_timer" pool-name="ejb_timer" use-java-context="true" enabled="true">
          <xa-datasource-property name="DatabaseName"><DATABASE></xa-datasource-property>
          <xa-datasource-property name="PortNumber">5432</xa-datasource-property>
          <xa-datasource-property name="ServerName"><SERVER_NAME></xa-datasource-property>
          <driver>postgresql</driver>
          <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
          <security>
              <user-name><USER_NAME></user-name>
              <password><USER_PWD></password>
          </security>
      </xa-datasource>
      警告

      您必须将两个不同的数据库用于 KIE 服务器运行时数据和 EJB 计时器数据。

  5. 在 < system-properties > 元素中添加以下属性,并替换以下占位符:

    • <JNDI_NAME > 是数据源的 JNDI 名称。对于 Red Hat Process Automation Manager,这是 java:/jboss/datasources/rhpam
    • <DIALECT> 是数据库的休眠位置。

      支持以下 dialects:

      • DB2: org.hibernate.dialect.DB2Dialect
      • MSSQL: org.hibernate.dialect.SQLServer2012Dialect
      • MySQL: org.hibernate.dialect.MySQL5InnoDBDialect
      • MariaDB: org.hibernate.dialect.MySQL5InnoDBDialect
      • Oracle: org.hibernate.dialect.Oracle10gDialect
      • PostgreSQL: org.hibernate.dialect.PostgreSQL82Dialect
      • PostgreSQL 加上: org.hibernate.dialect.PostgresPlusDialect

        <system-properties>
          <property name="org.kie.server.persistence.ds" value="<JNDI_NAME>"/>
          <property name="org.kie.server.persistence.dialect" value="<DIALECT>"/>
          <property name="org.jbpm.ejb.timer.tx" value="true"/>
        </system-properties>
  6. 保存 standalone-full.xml 文件。
  7. 要启动集群,请导航到 EAP_HOME/bin 并输入以下命令之一:

    • 在 Linux 或基于 UNIX 的系统上:

      $ ./standalone.sh -c standalone-full.xml
    • 对于 Windows:

      standalone.bat -c standalone-full.xml