我有一个Java Spring 3.0应用程序,它通过myBatis 3.1将数据插入数据库,并且还使用DataImportHandler(DIH)使Solr 3.6.1索引数据库数据以及索引二进制文件附件。因此,我希望在以下任何一项失败时让回滚更改的事务:
1) 使用 myBatis 插入数据库 3 次
2) 溶胶 DIH 指数的 3 个插入件
3) 二进制文件的 solr 索引
我猜我需要使用 JTA,因为我有多个数据源,但我不知道如何在混合中使用 Solr 进行配置。如何做到这一点?任何演示如何实现这一目标的在线参考资料也很棒。谢谢。
我之前问过一个类似的Solr事务管理问题。 以下链接将有所帮助。
使用 Solrj 进行 SOLR 事务管理
SolrJ 线程安全
希望这有帮助。 祝你好运!
尝试使用HttpSolrServer
替换索引的DIH更新,以便可以使用弹簧TransactionSynchronizationManager
if (TransactionSynchronizationManager.isSynchronizationActive()) {
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
//...
});
}