可以是自主交易危險嗎?如果是,在哪些情況下?何時需要自主交易?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