如何从jBPM的默认H2数据库切换到另一个数据库,如MariaDB?

lkaoscv7  于 2022-11-08  发布在  其他
关注(0)|答案(2)|浏览(188)

我已经在jBPM 7.53 Final中安装了MariaDB连接器和.jar文件,并在本地配置了MariaDB数据库。在管理控制台中检查,发现数据源和JDBC连接器看起来不错(MariaDBDS已启用),但在运行时显示错误“启动服务器时出现 Boot 错误”。
故障描述:{“WFLYCTL0412:未安装的必需服务:“=〉[“jboss. jdbc-驱动程序.mariadb-java-客户端-2_7_1_jar”],“WFLYCTL 0180:具有缺失/不可用依赖项的服务”=〉[”jboss.driver-demander.java:jboss/MariaDBDS缺失[jboss.jdbc-driver.mariadb-java-client-2_7_1_jar]",“org.wildfly.数据源.MariaDBDS缺失[jboss.jdbc-driver.mariadb-java-client-2_7_1_jar]"]}
缺少依赖项:jboss.driver-demander.java名称:jboss/mariaDBDS是丢失的[jboss.jdbc-driver.mariadb-java-client-2_7_1_jar].
我已经在jBPM standalone.xml中配置了MariaDB Java连接器

<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:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
            <driver>h2</driver>
            <security>
                <user-name>sa</user-name>
                <password>sa</password>
            </security>
        </datasource>
        <datasource jta="true" jndi-name="java:jboss/MariaDBDS" pool-name="MariaDBDS" enabled="true" use-java-context="true" use-ccm="true">
            <connection-url>jdbc:mariadb://localhost:3306/mysql</connection-url>
            <driver-class>org.mariadb.jdbc.Driver</driver-class>
            <driver>mariadb-java-client-2.7.1.jar</driver>
            <security>
                <user-name>root</user-name>
                <password>admin</password>
            </security>
            <validation>
                <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
                <validate-on-match>true</validate-on-match>
                <background-validation>false</background-validation>
                <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
            </validation>
        </datasource>
        <drivers>
            <driver name="mariadb" module="org.mariadb">
                <xa-datasource-class>org.mariadb.jdbc.MariaDbDataSource</xa-datasource-class>
            </driver>
            <driver name="h2" module="com.h2database.h2">
                <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
            </driver>
        </drivers>
    </datasources>
</subsystem>

并且我已经将MariaDB Java连接器复制到JBPM_HOME/modules/com/mariadb/main/mariadb-java-client-2.7.1.jar,并按如下方式配置module.xml:

<module xmlns="urn:jboss:module:1.1" name="org.mariadb">
    <resources>
        <resource-root path="mariadb-java-client-2.7.1.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

同样,在Business-Central中,对新流程示例出现了这样的关注:enter image description here
在这些步骤中我遗漏了什么或改变了什么?你知道jBPM是否可以与外部数据库一起工作吗?

6ovsh4lw

6ovsh4lw1#

@KrenarR您是否也在系统属性下设置了这些属性?

<property name="org.kie.server.persistence.ds" value="java:jboss/MariaDBDS"/>
<property name="org.kie.server.persistence.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>

您还可以通过jboss_cli将驱动程序添加为核心模块:

module add --name=org.mariadb --resources=mariadb-java-client-2.7.1.jar --dependencies=javax.api,javax.transaction.api

同时检查数据源中的此行:

<driver>mariadb-java-client-2.7.1.jar</driver>

我认为它应该只是您定义的驱动程序名称:

<driver>mariadb</driver>
yc0p9oo0

yc0p9oo02#

有关详细步骤,请参阅www.example.com上的文档Switch to another databasejbpm.org。

相关问题