Я должен сконфигурировать 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 дляочень мало времени.
Заранее спасибо.