Camunda 不使用 MySql 作为数据库

Posted

技术标签:

【中文标题】Camunda 不使用 MySql 作为数据库【英文标题】:Camunda doesnt use MySql as Database 【发布时间】:2019-01-09 13:25:07 【问题描述】:

我正在使用 Camunda BPM 7.9.0 设置 Wildfly 11 应用服务器。 部署工作正常。我还部署了 mysql Connector for Java 并为我的数据库创建了一个数据源。但是 Camunda 不会使用该数据源。我已经查阅了很多教程,但我已经根据这些正确设置了。

我曾尝试手动添加 mysql 连接器,现在我使用了运行良好的部署方法。我还尝试了包括操作系统在内的所有内容的全新安装。我在 Ubuntu Server 18.04 LTS 上(如果这是一个问题,我认为不是,请告诉我)。我还删除了默认数据源,结果 Camunda 无法再部署,但 Wildfly 服务器在线。这表明它仍然连接到 H2 数据库。

   <datasource jta="true" jndi-name="java:/camunda" pool-name="MySqlDS" enabled="true" use-ccm="false" statistics-enabled="true">
                <connection-url>jdbc:mysql://localhost:3306/camunda</connection-url>
                <driver-class>com.mysql.jdbc.Driver</driver-class>
                <driver>mysql</driver>
                <security>
                    <user-name>MyUser</user-name>
                    <password>MyPass</password>
                </security>
                <validation>
                    <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
                    <background-validation>true</background-validation>
                    <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
                </validation>
            </datasource>
            <drivers>
                <driver name="h2" module="com.h2database.h2">
                    <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                </driver>
                <driver name="mysql" module="com.mysql.driver">
                    <driver-class>com.mysql.jdbc.Driver</driver-class>
                </driver>
            </drivers>

使用此配置,我希望它连接到 MySQL 数据库,但它仍然使用 H2 数据库。这是我唯一需要做的事情还是我需要在 .war 文件中编辑某些内容?

最好的问候

【问题讨论】:

【参考方案1】:

我只能猜测,但是您是否还配置了 camunda 以选择 mysql DB? 您复制的部分只是数据源的设置(它存在),但您需要转到告诉 camunda 使用哪个数据库的部分。

查看:https://docs.camunda.org/manual/7.4/user-guide/runtime-container-integration/jboss/ 示例。

<subsystem xmlns="urn:org.camunda.bpm.jboss:1.1">
    <process-engines>
      <process-engine name="default" default="true">
        <datasource>java:jboss/datasources/ProcessEngine</datasource> <--- HERE!
        <history-level>full</history-level>
        ....

【讨论】:

【参考方案2】:

感谢您的回答! 我发现您需要在 camunda.war 文件的 ApplicationContext.xml 中更改它。 需要更改的值为:

<property name="driverClassName" value="java.sql.Driver" />


<bean id="dataSource" class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
<property name="targetDataSource">
 <bean class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="java.sql.Driver" />
  <property name="url" value="jdbc:mysql://localhost:3306/dbname" />
  <property name="username" value="user" />
  <property name="password" value="pass" />
</bean>
</property>

我希望这对其他人有帮助!

【讨论】:

以上是关于Camunda 不使用 MySql 作为数据库的主要内容,如果未能解决你的问题,请参考以下文章

Camunda 创建springboot项目

如何安装使用camunda

开源流程引擎Camunda BPM如何扩展数据库表

如何更改 Camunda 数据库以接受长字符串变量?

camunda-webapp 和 JAAS 身份验证

camunda开源流程引擎的数据库表结构介绍