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