春季批处理分布式事务配置IBM Liberty

时间:2018-11-26 10:11:20

标签: spring spring-batch websphere-liberty

我必须配置spring batch才能在IBM Liberty AS中工作。 主要问题是事务的配置。我的一些配置。

内部Liberty server.xml文件:

<dataSource id="ectxDS"
            jndiName="jdbc/ectxDS"
            isolationLevel="TRANSACTION_SERIALIZABLE"
            transactional="true">
        <jdbcDriver libraryRef="OracleLib"/>
        <properties.oracle URL="jdbc:oracle:thin:..."
            password="..."
            user="..."/>
    </dataSource>

在Spring context.xml中

<!-- *** DATASOURCE *** -->
<jee:jndi-lookup id="dataSource"
    jndi-name="jdbc/ectxDS"
    expected-type="javax.sql.DataSource" />

<!-- *** JDBC TEMPLATE *** -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <constructor-arg name="dataSource" ref="dataSource" />
</bean>

<!-- *** TX MANAGER *** -->
<bean id="transactionManager" class="org.springframework.transaction.jta.WebSphereUowTransactionManager">
</bean>

在这种配置下,提交发生在调用JdbcTemplate类的方法(更新,查询...)的地方:我需要Spring Batch根据其默认值来管理事务,例如方法 execute Tasklet 的代码必须具有事务性!同时,我需要利用 org.springframework.transaction.jta.WebSphereUowTransactionManager 类上的分布式事务。

也许我遗漏了一些东西:我在Spring Batch上工作了很短的时间。

谢谢。

0 个答案:

没有答案