应用程序缓存

任何具有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

应用程序缓存

应用程序缓存_应用程序模块和实体缓存相关推荐

  1. 应用程序模块和实体缓存

    任何具有ADF业务组件基础知识的ADF开发人员都应该熟悉下图: 它代表运行时ADF业务组件的核心构建块. 有一个包含视图对象实例的根应用程序模块实例. 视图对象实例可能由存储在实体集合或换句话说就是实 ...

  2. linux mysql 查看缓存_详解MySQL查询缓存

    查询缓存是指存储使用SELECT语法查询到的返回到客户端的文本.当相同的请求再次发生时,会从查询缓存中获取数据,而非再执行一遍查询.查询缓存是共享Session会话的,所以一个客户端的请求可能与另一个 ...

  3. 京东java多级缓存_京东技术:多级缓存设计详解 | 给数据库减负

    来这里找志同道合的小伙伴! 作 者 简 介 王梓晨 自古兵家多谋,<谋攻篇>,"故上兵伐谋,其次伐交,其次伐兵,其下攻城.攻城之法,为不得已",可见攻城之计有很多种,而 ...

  4. ehcache 清除缓存_如何设计一个本地缓存

    作者:ksfzhaohuihttp://my.oschina.net/OutOfMemory/blog/3133013 前言 最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级 ...

  5. mysql 预加载缓存_预加载与缓存

    最近的项目中为了能够提升那么一丢丢性能,尝试了一下对 chunks 进行预加载处理.虽然做了异步加载的处理,但是项目大小决定了还是有多个异步的 chunk.js 需要进行预加载,这里我指的是 prel ...

  6. php mysql sqlite缓存_使用sqlite作为数据缓存

    在M系统里,使用的数据库是sql server或者mysql. 整个框架类似于事件驱动,根据当前的硬件信号+数据库状态,判断事件是否满足触发条件,有的话,触发事件执行动作. 这样的框架,需要对每个事件 ...

  7. 离线缓存占内存吗_彻底弄懂浏览器缓存策略

    浏览器缓存策略对于前端开发同学来说不陌生,大家都有一定的了解,但如果没有系统的归纳总结,可能三言两语很难说明白,甚至说错,尤其在面试过程中感触颇深,很多候选人对这类基础知识竟然都是一知半解,说出几个概 ...

  8. 清理yum源缓存_缓存是万恶之源

    清理yum源缓存 The practice of caching is about as effective at lowering latencies and load as it is at in ...

  9. 黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结

    黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日  day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合 ...

最新文章

  1. 打印html5中Canvas的方法
  2. 百战百胜:人生10个成功秘诀
  3. iOS开展——全球应对MotionEvent
  4. javascript写贪吃蛇
  5. 中国美丽乡村建设投融资及十四五发展规划分析报告2022-2028年版
  6. java 浏览器信息吗_java获取浏览器信息
  7. php选中文本区域,php – 将新行更改为文本区域
  8. DOM节点的属性和方法
  9. unity 2d文字跟随主角移动_时间回溯——用Unity实现时空幻境(Braid)中的控制时间效果...
  10. 表白公式计算机,理科生公式表白大全
  11. 成为JavaGC专家Part II — 如何监控Java垃圾回收机制
  12. VS 2010 与 VS 2008的区别
  13. 生鲜电商纷纷传上市,但赛道并不性感
  14. 解决ES Data too large问题
  15. 如何将word一键导入PPT并对内容格式批量修改
  16. LD、CD、VCD、SVCD、DVD、DVCD、HDCD
  17. python求三角形面积步骤_Python3计算三角形的面积代码
  18. 前端开发的workers——web workers、share workers和service workers
  19. 希腊字母常用指代意义及其中英文读音
  20. SDNU-ACM第一次月赛地大武汉选拔赛

热门文章

  1. CF819E:Mister B and Flight to the Moon(构造、归纳法)
  2. AT4996-[AGC034F]RNG and XOR【FWT,生成函数】
  3. P4091-[HEOI2016/TJOI2016]求和【斯特林数,NTT】
  4. ATcoder-Replace Digits【线段树】
  5. nssl1230-序列【位运算】
  6. 【线段树】Frog Traveler(CF751D)
  7. 【bfs】WJ的逃离
  8. 20、mysql中触发器的使用
  9. 五分钟轻松了解Hbase面向列的存储
  10. MySQL coalesce()函数