我正在申请银行业务,但无法决定哪一种方法能更好地处理资金转移交易。如果数据库更改,使用SQL可能需要重写代码。使用纯Java来处理将使其在锁定事务帐户方面稍微复杂一些。这个场景的最佳实践是什么?
PS --在这种情况下,请考虑一个分布式应用服务器。
发布于 2014-10-12 16:21:07
任何使DB在硬着陆时处于不协和状态的应用程序都不适合用于银行业务。应用程序,即所谓的"Java事务“,是这个组的一部分。
任何严肃的银行应用程序都会将所有写入过程封装在服务器端封装(read:存储过程),并且不允许对任何表进行任何写入访问。读取访问将由存储过程和视图混合提供。
与抗崩溃的关系数据库管理系统,这保证了所有或不处理工作.
发布于 2014-10-12 16:38:17
所有参与的资源(包括您的数据库以及任何其他端点或中间件)也必须加入相同的事务。事务不是以组件的边界结束的事务,它跨越系统中所有涉及的组件。否则,就不是交易了。应该有一个驱动组件,通常是您自己的代码或一些中间件,它启动并提交/回滚事务。其他人也会加入。他们对事务的想法是,如果某件事情失败了,就反转所有相关组件的操作(并将已经发生的操作隐藏到事务之外的任何人,直到事务成功提交为止)。我的回答是:您需要数据库和应用程序级别的事务,因为事务涉及所有参与的组件。
https://stackoverflow.com/questions/26327065
复制相似问题