应用程序缓存

任何具有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. springmvc常用注解标签详解
  2. Android实现RecyclerView侧滑删除和长按拖拽-ItemTouchHelper
  3. list转torch tensor
  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1095:数1的个数
  5. 项目启动QRTZ_LOCKS‘ doesn‘t exist
  6. vs2019创建android,Visual Studio 2019编写的安卓程序,生成失败
  7. Python工作笔记-使用Py遍历文件夹及其子文件夹内容
  8. php修改隐藏域非法提交,PHP get、post变量放在表单隐藏域示例
  9. start.bat怎么启动java项目_部署java项目为服务,设置开机自启动
  10. 一个简单的定时任务小例子
  11. java代码格式_java 代码的基本格式
  12. AD按键扫描中串联电阻转换值的计算方法
  13. matlab窄带水平集,窄带水平集方法
  14. 黑客帝国角色 之 先知的另类解读
  15. FQDN是什么?DNS又是什么?NNTP又是什么
  16. springboot整合全文搜索引擎Elasticsearch | Spring Boot 28
  17. Android 10适配要点,作用域存储
  18. 2B互联网市场:春江水暖谁先知,正是拐点发力时
  19. 鱼骨图和甘特图图表合集PPT模板-优页文档
  20. Linux命令取别名 | alias

热门文章

  1. P5371-[SNOI2019]纸牌【矩阵乘法】
  2. P2050-[NOI2012]美食节【费用流,动态连边】
  3. 51nod-猴猴吃苹果【线段树】
  4. 【2018.4.14】模拟赛之三-ssl2393 单元格
  5. 【做题记录】图论杂题
  6. AtCoder Beginner Contest 183 总结
  7. 纪中A组模拟赛总结(2021.7.12)
  8. 2016陕西省ACM省赛 HE 字符串处理 删除注释
  9. 25、sql分析命令explain和desc
  10. 面试必考的网络协议相关题目应该如何回答