应用程序缓存_应用程序模块和实体缓存
應用程序緩存
任何具有ADF業務組件基礎知識的ADF開發人員都應該熟悉下圖:
它代表運行時ADF業務組件的核心構建塊。 有一個包含視圖對象實例的根應用程序模塊實例。 視圖對象實例可能由存儲在實體集合或換句話說就是實體緩存中的實體對象備份。 根應用程序模塊可能還包含嵌套的應用程序模塊,而這些模塊又包含它們自己的視圖對象實例。 單個根AM中的所有視圖對象實例和嵌套應用程序模塊共享同一實體緩存,這一點非常重要。 問題是如何?
上圖代表一個非常簡單的情況。 只有一個用戶會話,并且假定該應用程序中只有一個根應用程序模塊。 但是,ADF BC假定每個用戶會話都有其自己的實體緩存。 那么,是什么將我的應用程序模塊鏈接到我的并且只有我的實體緩存?
這是DB Transaction對象出現的地方:
它是一個內部框架對象,實際上包含實體緩存,并將其提供給在此DB Transaction對象中注冊的所有應用程序模塊。 此外 數據庫事務對象包含一個數據庫連接 ,它提供所有與jdbc相關的服務,例如創建和執行可調用語句。 許多開發人員認為實際的應用程序模塊負責包含實體緩存,保持數據庫連接以及與數據庫進行交互。 這不是真的。 一個應用程序模塊只是附加到使用實體高速緩存的DB事務對象上,并從中獲取數據庫連接。 “附加”一詞意味著可能有許多根應用程序模塊引用同一數據庫事務對象。
在那種情況下,交易稱為“共享” 。 附加到它的每個應用程序模塊都使用相同的數據庫連接和相同的實體緩存。 有一個普遍的神話,一個根應用程序模塊的任何實例總是需要一個專用的數據庫連接。 顯然,并非總是如此。
此功能基于jbo.shared.txn AM屬性。 這意味著具有該屬性值的所有根應用程序模塊將共享相同的數據庫事務對象,因此也將共享相同的數據庫連接和實體緩存。 共享應用程序模塊通常使用“共享事務”功能,因此,通過為其jbo.shared.txn屬性設置相同的字符串值,我們可以強制它們共享相同的數據庫連接。
而已!
翻譯自: https://www.javacodegeeks.com/2016/05/application-modules-entity-cache.html
應用程序緩存
總結
以上是生活随笔為你收集整理的应用程序缓存_应用程序模块和实体缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tgp电脑版在线登陆(TGP网页)
- 下一篇: 润唇膏哪个牌子好用又健康(精选6款润唇膏