代码之家  ›  专栏  ›  技术社区  ›  Edward Dale

内存中是否有支持XA分布式事务的JDBC数据库?

  •  2
  • Edward Dale  · 技术社区  · 14 年前

    我想使用内存中的数据库来测试我的应用程序,但它需要支持 XA distributed transactions . 我对内存数据库的第一个想法是 HSQLDB ,但它似乎不支持XA。有吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Jon Freedman    14 年前

    看起来像 H2 支持这一点。

        2
  •  1
  •   Oliv    5 年前

    两者 HSQLDB公司

    在XA代码中 is unmaintained

    如果您想要一个支持XA的数据库来进行测试,那么可以使用Postgres TestContainers 项目:

    @ClassRule
    public static PostgreSQLContainer container = new PostgreSQLContainer<>("postgres:12.1")
            .withCommand("postgres -c max_prepared_transactions=10");
    

    然后创建如下数据源:

    PGXADataSource dataSource = new PGXADataSource();
    dataSource.setURL(container.getJdbcUrl());
    dataSource.setUser(container.getUsername());
    dataSource.setPassword(container.getPassword());
    dataSource.setDatabaseName(container.getDatabaseName());