如何在Spring(Java)中使用Solr和myBatis配置事务?

时间:2012-12-06 20:53:15

标签: solr transactions mybatis jta

我有一个Java Spring 3.0应用程序,它通过myBatis 3.1在数据库中插入数据,并使用DataImportHandler(DIH)使Solr 3.6.1索引数据库数据以及索引二进制文件附件。所以,如果以下任何一个失败,我希望有回滚更改的事务:

1)使用myBatis

将3个插入数据库

2)3个插入物的solr DIH指数

3)二进制文件的solr索引

我猜我需要使用JTA,因为我有多个数据源,但我不知道如何在混合中配置Solr。如何才能做到这一点?任何演示如何实现这一目标的在线参考文献也会很棒。感谢。

2 个答案:

答案 0 :(得分:1)

之前我曾问过类似的Solr交易管理问题。以下链接会有所帮助。

solr transaction management using solrj

SolrJ Thread Safety

希望这会有所帮助。祝你好运!

答案 1 :(得分:0)

您还可以尝试使用HttpSolrServer将DIH更新替换为索引,以便您可以使用弹簧TransactionSynchronizationManager

if (TransactionSynchronizationManager.isSynchronizationActive()) {
  TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
    //... 
  });
}