我想问一个研究技术或框架的起点。
我需要完成的工作如下:
我们有一个使用JPA的Java EE 6应用程序用于持久性;我们希望将主数据库用作某种暂存器,用户可以根据给定的任务插入/删除记录。然后,在一天结束时,管理员将对他们批准或不批准的工作进行某种检查。如果他批准了这项工作,所有更改都将永久完成,主数据库将同步 - 复制到另一个(出于安全原因)。否则,如果管理员不批准更改,则会回滚它们。
现在我有两个问题要弄明白:
首先 - 是否有可能在一段时间内回滚一堆JPA操作?
Second.-按代码触发复制(这可以由RDBMS引擎完成)。 现在,如果无法进行RDBMS复制(可能是因为客户端要求),我们需要JPA的同步框架作为备份。我正在研究一些JMS解决方案,但不清楚确切的过程或如何使它们在JPA上工作。
任何帮助将不胜感激, 感谢。
答案 0 :(得分:1)
我认为,您的设计步骤在丢失数据方面存在太大的风险。我的理解是你在谈论在内存中保存数据,直到管理员批准/拒绝它。在这种情况下,您必须考虑灾难情况并保存数据。
相反,这个问题陈述更倾向于工作流设计,其中
- 数据由一个实体输入,它是持久的。
- 其他实体批准/>拒绝数据。
- 所有已批准的数据将进一步复制到下一个数据库。
醇>
所有这三个步骤都可以在3个模块中实现,并以持久存储/ JMS技术为后盾。根据实时情况,每个步骤都需要;你可以想到一个优雅的设计,以经济有效的方式实现这一目标。
答案 1 :(得分:1)
至于复制
无论如何,我建议使用具有同步复制的普通RDBMS群集。在这种情况下,您不必开发自制的复制方案,并且始终拥有数据的副本。您始终拥有工作流程状态。