2

这是使用Bitronix事务管理器的Spring Boot 应用程序的Derby EmbeddedXADataSource配置

package org.chorke.init.entity.config;

import javax.sql.DataSource;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import bitronix.tm.resource.jdbc.PoolingDataSource;

@Configuration
@EnableTransactionManagement
public class BitronixConfiguration {

    @Bean(initMethod = "init", destroyMethod = "close")
    public DataSource dataSource() {
        PoolingDataSource dataSource = new PoolingDataSource();
        dataSource.setMaxPoolSize(10);
        dataSource.setUniqueName("java:jboss/datasources/CKDerby_initDS");
        dataSource.setClassName("org.apache.derby.jdbc.EmbeddedXADataSource");
        dataSource.setAllowLocalTransactions(true);
        dataSource.getDriverProperties().setProperty("user", "chorke_init");
        dataSource.getDriverProperties().setProperty("password", "pa55w0rd");
        dataSource.getDriverProperties().setProperty("createDatabase", "create");
        dataSource.getDriverProperties().setProperty("databaseName", "/tmp/chorke_osuser/var/derby/init/chorke_init;shutdown=false");
        return dataSource;
    }
}

Spring Boot 应用程序的Liquibase配置

################################################################################
# application.properties
################################################################################
liquibase.change-log=classpath:/META-INF/migrations/db.changelog-master.xml
spring.main.show-banner: false
spring.profiles.active: test

启动Spring Boot 应用程序后,Liquibase成功执行更新操作,其中LiquibaseDerby本身关闭了 Derby 连接,如下所示:

INFO 11/15/17 10:55 PM: liquibase: Successfully released change log lock
INFO 11/15/17 10:55 PM: liquibase: Shutting down derby connection: jdbc:derby:/tmp/chorke_osuser/var/derby/init/chorke_init;shutdown=true

由于 Derby 连接关闭而导致应用程序失败。您对此问题有任何解决方案吗?

4

1 回答 1

0

尝试添加:

 <property name="shutdownEmbeddedDerby" value="false" dbms="derby"/>

对于变更集,这似乎可以防止在使用 Spring 上下文时关闭。

看:

于 2021-02-12T17:34:12.230 回答