如何解决客户服务器方法中的持久事务
在我的应用程序(客户端服务器)中,我需要编辑一些行(来自数据库),并且只要它们被编辑,就不需要任何人也可以进行编辑。当然,这是通过交易完成的。问题在于,在客户端环境中,事务是在服务器端进行管理的,因此,编辑行的客户端无法直接访问事务。 (在这种情况下,我正在使用PHP,但认为其他技术也采用相同的方法)。因此,我需要保持事务打开状态(用于锁定行以进行编辑),直到客户端完成编辑为止。 在PHP中,持久连接无济于事,因为它们可能与上述客户端位于同一主机中的其他客户端断开连接。您对我的情况有想法吗? 谢谢。解决方法
通常,这些情况是通过直接在对象或对象父对象上设置的业务锁来处理的。
添加一列“ inedition”,当用户声明要进行编辑时将其设置为true,而当用户确认/取消其编辑时将其设置为false。
请注意,在解锁行之前,某些用户交易可能会丢失,因此您可能需要:
进行定期处理以解锁行
用户或管理员可以从功能屏幕上解锁保持锁定状态的行。
编辑:
每当您不想依赖于数据库的特定功能(例如Oracle \“ Select for update \”)时,都会使用这种解决方案。在Java中,EJB有状态的bean可以保留对从UI到数据库的事务的引用。可能存在使用PHP for Oracle或其他有关事务的数据库特定功能的解决方案,具体取决于数据库。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。