Конфигурация распределенной транзакции Spring IBM Liberty - PullRequest
0 голосов
/ 26 ноября 2018

Я должен сконфигурировать Spring Batch для работы в IBM Liberty AS.Основным вопросом является конфигурация транзакции.Некоторые части моей конфигурации.

Внутри файла server.xml Liberty:

<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 (update, query ...): мне нужно, чтобы Spring Batch управлял транзакциями в соответствии со своими значениями по умолчанию, например, метод execute Tasklet должен бытьтранзакционный!В то же время мне нужно использовать распределенные транзакции, использующие класс org.springframework.transaction.jta.WebSphereUowTransactionManager .

Возможно, я что-то упускаю: я работал с Spring Batch дляочень мало времени.

Заранее спасибо.

...