【问题标题】:Configure jbpm (version 7.28.0) server start with Mssql配置jbpm(版本7.28.0)服务器启动Mssql
【发布时间】:2019-10-28 14:42:49
【问题描述】:

我正在使用 jbpm 版本 7.28.0。我需要用 Mssql 配置它,除了连接到默认数据库 H2。我正在关注DB_Configuration_Note 并编辑了 \standalone\configuration\standalone.xml <datasources> 元素,如下所示;

<subsystem xmlns="urn:jboss:domain:datasources:5.0">
    <datasources>
        <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
            <connection-url>jdbc:mssql:mem:test.DB_CLOSE_DELAY=-1.DB_CLOSE_ON_EXIT=FALSE</connection-url>
            <driver>mssql</driver>
            <security>
                <user-name>jbpm</user-name>
                <password>Jbpm@123</password>
            </security>
        </datasource>
        <xa-datasource jndi-name="java:jboss/datasources/jBPMDS" pool-name="jBPMXADS" enabled="true">
            <xa-datasource-property name="URL">jdbc:mssql:file:${jboss.server.data.dir}/jbpm-db;MVCC=TRUE</xa-datasource-property>
            <xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerDataSource</xa-datasource-class>
            <driver>mssql</driver>
            <security>
                <user-name>jbpm</user-name>
                <password>Jbpm@123</password>
            </security>
        </xa-datasource>
        <drivers>
            <driver name="h2" module="com.h2database.h2">
                <xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerDataSource</xa-datasource-class>
            </driver>
        </drivers>
    </datasources>
</subsystem>

但我收到以下错误。

16:16:35,776 错误 [org.jboss.as.controller.management-operation] (控制器引导线程)​​WFLYCTL0013:操作(“添加”)失败 - 地址: ([ (“子系统”=>“数据源”), ("data-source" => "ExampleDS") ]) - 失败描述:{ "WFLYCTL0412: 未安装的所需服务:" => ["jboss.jdbc-driver.mssql"], “WFLYCTL0180:缺少/不可用依赖项的服务”=> [ “jboss.driver-demander.java:jboss/datasources/ExampleDS 丢失 [jboss.jdbc-driver.mssql]”, “org.wildfly.data-source.ExampleDS 丢失 [jboss.jdbc-driver.mssql]” ] }

我不确定我所做的配置是否正确。如何解决这个问题并将 JBPM 与 MSSQL 连接起来?

【问题讨论】:

    标签: sql-server-2005 jbpm mssql-jdbc


    【解决方案1】:

    两个数据源都使用“mssql”驱动程序。但是这个驱动程序不可用。我会建议为 H2 数据库和 mssql 数据库创建两个不同的驱动程序。

    【讨论】:

      【解决方案2】:

      H2 数据库的ExampleDS 包含一些流程示例。 需要 javax.xml.bind.api。 我为 jbpm(7.54.0) 编写了 jbpm-sqlserver-config.cli。 像下面这样试试。(上面的jdk11,sqlserver2012)

      jbpm-sqlserver-config.cli

      embed-server --server-config=standalone.xml
      
      try
          module add --name=com.microsoft.sqlserver --resources=drivers/mssql-jdbc-9.2.1.jre11.jar --dependencies=javax.api,javax.transaction.api,javax.xml.bind.api
      catch
          echo "SQLServer module exists"
      end-try
      
      if (outcome != success) of /subsystem=datasources/jdbc-driver=sqlserver:read-resource
          /subsystem=datasources/jdbc-driver=sqlserver:add(driver-name=sqlserver,driver-module-name=com.microsoft.sqlserver,driver-xa-datasource-class-name=com.microsoft.sqlserver.jdbc.SQLServerXADataSource)
      end-if
      
      if (outcome == success) of /subsystem=datasources/xa-data-source=jBPMXADS:read-resource
          /subsystem=datasources/xa-data-source=jBPMXADS:remove
      end-if
      
      xa-data-source add --name=jBPMXADS --jndi-name="java:/MSSQLXADS" --driver-name=sqlserver --user-name=jbpm --password=jbpm --xa-datasource-class=com.microsoft.sqlserver.jdbc.SQLServerXADataSource --xa-datasource-properties=[ServerName=10.255.255.88, PortNumber=1433, DatabaseName=jbpm] --background-validation=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker
      
      
      if (outcome != success) of /system-property=org.kie.server.persistence.ds:read-resource
          /system-property=org.kie.server.persistence.ds:add(value="java:/MSSQLXADS")
      else
          /system-property=org.kie.server.persistence.ds:write-attribute(name=value,value="java:/MSSQLXADS")
      end-if  
      
      if (outcome != success) of /system-property=org.kie.server.persistence.dialect:read-resource
          /system-property=org.kie.server.persistence.dialect:add(value="org.hibernate.dialect.SQLServer2012Dialect")
      else
          /system-property=org.kie.server.persistence.dialect:write-attribute(name=value,value="org.hibernate.dialect.SQLServer2012Dialect")
      end-if
      
      
      
      if (outcome != success) of /system-property=org.kie.server.id:read-resource
          /system-property=org.kie.server.id:add(value="sample-server")
      else
          /system-property=org.kie.server.id:write-attribute(name=value,value="sample-server")
      end-if
      
      if (outcome != success) of /system-property=org.kie.server.controller:read-resource
          /system-property=org.kie.server.controller:add(value="http://localhost:8080/business-central/rest/controller")
      else
          /system-property=org.kie.server.controller:write-attribute(name=value,value="http://localhost:8080/business-central/rest/controller")
      end-if
      
      if (outcome != success) of /system-property=org.kie.server.location:read-resource
          /system-property=org.kie.server.location:add(value="http://localhost:8080/kie-server/services/rest/server")
      else
          /system-property=org.kie.server.location:write-attribute(name=value,value="http://localhost:8080/kie-server/services/rest/server")
      end-if
      
      if (outcome != success) of /system-property=org.jbpm.casemgmt.showcase.url:read-resource
          /system-property=org.jbpm.casemgmt.showcase.url:add(value="/jbpm-casemgmt")
      else
          /system-property=org.jbpm.casemgmt.showcase.url:write-attribute(name=value,value="/jbpm-casemgmt")
      end-if
          
      stop-embedded-server

      ./jboss-cli.sh --file=jbpm-sqlserver-config.cli

      您必须在您的 sqlserver 上创建 jbpm 数据库并提供适当的访问权限。 仔细阅读 ms 网站上的“了解 XA 事务”。

      【讨论】:

        猜你喜欢
        • 2014-03-13
        • 1970-01-01
        • 2021-09-30
        • 2016-03-31
        • 2013-05-31
        • 2018-04-14
        • 1970-01-01
        • 2012-12-06
        • 2017-07-21
        相关资源
        最近更新 更多