0

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

1) 3 次使用 myBatis 插入数据库

2) 3 个刀片的 solr DIH 索引

3)二进制文件的solr索引

我猜我需要使用 JTA,因为我有多个数据源,但我不知道如何在混合中使用 Solr 进行配置。如何才能做到这一点?任何演示如何完成此操作的在线参考资料也很棒。谢谢。

4

2 回答 2

1

我之前问过一个类似的 Solr 事务管理问题。以下链接会有所帮助。

使用 solrj 进行 solr 事务管理

SolrJ 线程安全

希望这可以帮助。祝你好运!

于 2012-12-08T13:46:36.233 回答
0

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

if (TransactionSynchronizationManager.isSynchronizationActive()) {
  TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
    //... 
  });
}
于 2012-12-13T08:44:45.753 回答