如果数据源不能通过JDBC调用,是否可以实现以前的事务管理器之一?
被修改
我想为现有应用程序创建一个插件。我的插件应负责记录长期工作流事务的读写访问。我的addin应该另外负责缓存变量,以防需要它们 - 这样每次访问变量时都不应该是读/写操作。
应用程序在Tomcat6环境中运行,我通过调用插件管理器(它保存从不同数据源获取数据)来获取数据。
您是否知道我可以阅读的任何链接 - 或者可能知道某些现有解决方案?
答案 0 :(得分:2)
听起来你还没有完全掌握事务管理器和资源管理器之间的区别。像JBossTS这样的事务管理器通过RM驱动程序提供的XAResource驱动Oracle,MSSQL等资源管理器。
您没有实施事务管理器 - 它已经实现了。您正在实施新的资源管理器并使用现有的事务管理器来驱动它。阅读XA规范,然后实现XAResource并使用事务管理器登记您的资源。只要你的impl符合规范,事务管理器就会像使用数据库驱动程序或消息队列提供的实现一样使用它。
请注意,在ACID事务范围内对外部(即非事务性)系统执行I / O基本上是不可能的。您可以期待的最好的是某种形式的基于补偿的模型或具有最后资源提交优化的1PC行为。