马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
1.1.1. 状态保持模型(“Passivation”)
OA Framework应用程序是面向事务处理的。许多业务跨越了多个页面,并且这些多页面事务在用户未完成全部工作之前需要将中间工作的一系列状态保持下来。
HTTP协议是无状态保持协议。它不会保留任何状态信息。如果JVM实例提供的servlet会话失效或超时,则应用程序的状态一定就会丢失,并且未完成的事务也不能被恢复。
OA Framework拥有显式存储客户端状态的能力,当用户在进行工作时,即使servlet会话已经超时,客户端状态仍可恢复。当然,此部分能力需要JVM的故障保护的支持。
ü 将应用程序状态保存到中间媒介(在OA Framework中,中间媒介使用的数据库中的表)的过程称为钝化(passivation)。
ü 将应用程序状态从中间媒介进行恢复的过程称为激活(activation)。
特别的,OA Framework提供了一下的状态管理特性:
l 可量化的应用程序(?)-当资源的使用率很高时,此时,OA Framework将不为每个服务器线程新分配重要资源的实例,而是保存应用程序中空闲线程的状态并且将它们所节省出来的资源分配给其他资源使用。当空闲的用户线程被唤醒时,再为其恢复应用状态。简单来说,内存将为空闲的JDBC连接、AM和与用户经验相符的会话而被重新分配。
l Servlet会话超时恢复-servlet会话在不强制要求用户重新开始未决事务的情况下实现会话超时,意味着超时会话仍旧可以恢复未决事务。(在以后,该特性将会扩展到中间件的故障服务中)
在系统中建立/配置钝化的更多信息,包括对什么数据是或不是被钝化的详细解释,请参见OAF开发课程第六章中的OA Framework State Persistence Model(Passivation)的内容。
1.1.2. AM池
为了改善执行性能,OA Framework池化(缓冲并且重用)了AM。
重用要比重新创建必要的多。
ü 每个Java虚拟机(JVM)都有应用模块(Application Module)管理器,其包含并管理独立的AM池。
ü 每个AM池包含多个相同的AM的实例。比如,如果一个应用使用两个rootAM(oracle.apps.fnd.framework.toolbox.tutorial.server.Lesson3AM和oracle.apps.fnd.framework.toolbox.tutorial.server.Lesson4AM),这将会有两个AM池。换句话说,在应用产品中每个rootAM类型都会对应生成一个AM池。
ü AM在池内的实例被指定为有效可用的和无效的(当前是“检出”(checked out)状态)。
ü 只有一个rootAM被池化;内嵌的AM做为rootAM的子AM而被池化。
要了解更多关于AM与数据库连接是如何进行工作的细节,包括如何配置、监控和优化OAF应用部署中的池化执行性能,请参见OAF开发课程第六章的高级主题“AM和连接池”。特别注意该主题中的“结构概述”和“AM池”部分。
附件:
|