可以是自主交易危险吗?如果是,在哪些情况下?何时需要自主交易?AUTONOMOUS_TRANSACTION:优点和缺点
5
A
回答
15
是的,自主交易可能是危险的。
考虑你有你的主要交易的情况。它已插入/更新/删除行。如果你在那之后建立一个自治的交易,那么要么
(1)它根本不会查询任何数据。这是'安全'的情况。独立于主事务记录信息可以很有用,以便在不影响主事务的情况下提交它(当您期望主事务回滚时记录错误信息可能很有用)。
(2)它只会查询尚未被主事务更新的数据。这是安全的,但是多余的。自主交易没有意义。
(3)。它将查询由主事务更新的数据。由于你重写了某些东西,然后需要回头看看它是否覆盖它之前的情况,这种设计思路很糟糕。有时候人们认为自主交易仍然会看到主要交易的未经承诺的变化,而不会。它读取数据库的当前已提交状态,以及自治事务中所做的任何更改。有些人(通常尝试自主事务以响应突变的触发错误)不关心数据在尝试读取时的状态,而且这些人根本不应该被允许访问数据库。
(4)。它会尝试更新/删除主事务未更新的数据。再次,这是糟糕的设计。无论主事务是成功还是失败,这些更改都将被提交(或回滚)。更糟糕的是,您有风险问题(5),因为在自主交易中很难确定数据是否由主要交易更新。
(5)。您尝试更新/删除已经由主事务更新的数据,在这种情况下,它会死锁并最终陷入丑陋的混乱中。
10
可以自主交易危险吗?
是的。
如果是,在哪种情况下?
当他们被滥用。例如,用于更改在回滚父事务的其余部分时应该回滚的数据。滥用它们可能会导致数据损坏,因为更改的某些部分已提交,而其他部分则不会。
何时需要自主交易?
无论父事务是提交还是回滚,它们在一个事务的影响必须存活时都是必需的。一个很好的例子是将进程和进程的活动记录到数据库表的过程。
相关问题
- 1. Three20的优点和缺点
- 2. smartGWT的缺点和优点
- 3. N2CMS的优点和缺点
- 4. 优点和缺点mapquest android
- 5. gwt + grail ..优点和缺点
- 6. Memcached - 优点和缺点
- 7. Oracle Traces优点和缺点
- 8. Glassfish - 优点和缺点
- 9. MDI优点和缺点
- 10. WCF - 优点和缺点
- 11. Axis2优于WCF的优点和缺点
- 12. flux vs redux优点和缺点亮点
- 13. StyleCop,优点/缺点
- 14. Haxe和Kivy的优点和缺点
- 15. CPU亲和力的优点和缺点
- 16. Scala + IDEA:sbt和fsc的优点和缺点
- 17. DFC和DFS的优点和缺点?
- 18. int和Int32的优缺点
- 19. OpenShift 3 - FileSystem选项优点和缺点
- 20. JUnit - 它的优点和缺点
- 21. Castle Windsor或Spring.NET - 优点和缺点
- 22. URL末尾的ID优点和缺点
- 23. 优点和缺点:Jetbrains IntelliJ/Sublime Text
- 24. 命名查询优点和缺点
- 25. has_many和has_one,有什么优点/缺点?
- 26. 版本控制优点和缺点javadoc
- 27. Cassandra UUID与TimeUUID的优点和缺点
- 28. 天青安全的优点和缺点
- 29. Web服务vs DLL;优点和缺点?
- 30. GoogleApps数据存储缺点和优点
+1 Autonmous Transactions的唯一铸铁用例是日志记录/审计。其他一切都是危险的或彻头彻尾的危险。 – APC 2010-06-16 11:10:31