`
huraky
  • 浏览: 31723 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

ADF中AM实例池参数介绍

    博客分类:
  • ADF
阅读更多

 

A Application Module Pooling Summary

An application module pool is a collection application module instances of the same type.

Application Module Pool 是一个存放有同一类型的 AM 实例的集合。

This pool of application module instances is shared by multiple

browser clients whose typical "think time" between submitting web pages allows

optimizing the number of application module components to be effectively smaller

than the total number of active users working on the system. That is, twenty users

visiting the web site from their browser might be able to be serviced by 5 or 10

application module instances instead of having as many application module instances

as you have browser users.

  多客户端浏览器的典型的 "think time" 型页面内容的提交就可以共享使用池中的 AM 实例,通过优化 AM 组件的数量就可以达到实际的 AM 数量小于活动的用户数量。也就是我们可以实现 5 10 AM 的实例来服务 20 个用户,而不是对每一个用户创建一个 AM 的实例。

 

Application module components can be used to support Fusion web application

scenarios that are completely stateless, or they can be used to support a unit of work

that spans multiple browser pages. As a performance optimization, when an instance

of an application module is returned to the pool in "managed state" mode, the pool

keeps track that the application module is referenced by that particular session. The

application module instance is still in the pool and available for use, but it would prefer

to be used by the same session that was using it last time because maintaining this

so-called "session affinity" improves performance.

AM 组件可以做为一个完全无状态 (stateless) 的组件来服务 Fusion Web Application ,或者是做为有状态 (stateful) 的组件用来支持一系列的多页面的场景。

 

AM 组件在池中的状态 (state) 有三种:

a) 无条件的可用

b) 可用,但是只能被活动的用户 Session 使用的 Session Affinity 实例

c) 不可用,因为他当前正在被使用中

 

B Type of Pools

There are two kinds of pools in use when running a typical Fusion web application, Application Module pools and database connection pools.

  当我们运行一个典型的 Fusion web application 时会产生两种不同类型池, AM 实例池和数据库连接池!

 

A)AM 实例池

运行时访问 AM 组件有两种方式:

   . 做为一个 AM 允许客户端直接访问

   . 做为一个可重用的组件聚合(或内嵌)到另一个 AM 实例中。

需要指出的是 ADF 只为 Root AM 来创建 AM 实例池,基本的 rule ADF 为每个 Controller 层使用到的 Root 级的 AM 在每一个 JVM 中创建一个实例池。

下面会详细介绍各个参数的含义。

B) 数据库连接池

数据库连接池也有两种方式:

   . 通过 JDBC URL 来使用

   . 通过 JNDI NAME

当使用 JDBC URL ADF 会通过 AM 的配置文件的参数来管理数据库连接池,而使用 JNDI NAME 时会使用服务器中数据源的配置。

数据库连接池中的参数在这里不会被介绍到!

 

 

C The parameters of the AM pool

 

1) Pool Behavior Parameters

Parameter

Description

Failover Transaction State Upon Managed Release

Jbo.dofailover

"Managed State" 模式下,每次当处于pending transaction stateAM 实例被释放到池中时执行" 钝化"[eager passivation].

ADF Fusion web applications 应该打开这个选项(设置为True )来允许任何其它的AM 在任何时间都可以" 激活"[activate] 它的状态。

这个选项默认为False

Row-Level Locking Behavior Upon Release

Jbo.locking.mode

使用了行级锁[row-level lock]AM 实例每次在释放到池中时强制AM 实例池不去在数据库中创建一个pending transaction state

ADF Fusion web application 应该设置锁定模式为“乐观锁”去避免创建一个行级锁。

这个选项默认为False!

Disconnect Application Module Upon Release

Jbo.doconnectionpooling

强制AM 实例池在AM 实例每次释放时池中时释放掉他对应的JDBC 连接。

这个选项默认是False

Enable Application Module pooling

Jbo.ampool.doampooling

使用AM 实例池,当你发布你的应用到生产环境时,默认就会设置为True 。但是在测试的时候可以设置为False ,从而可以发现更多的问题。

这个选项默认为False!

Support Dynamic JDBC Credentials

Jbo.ampool.dynamicjdbccredentials

允许程序在新的用户Session 开始的时候通过代码来修改数据库的连接凭证(用户名/ 密码)

这个选项默认为True !但是要实现这个特性必须要额外的添加代码。

Reset Non-Transactional State Upon Unmanaged Release

Jbo.ampool.resetnontransactionalstate

强制AM 重置所有的Non-Transactional State ,比如VO 的运行时设置,JDBCPrepared Statements ,绑定变量等。这时AM 实例会做为一个未管理的或是无状态“Stateless ”的形式被放回到池中。

这个选项默认是True ,关闭这个选项会提高性能,但是这样就不会清除绑定变量的值,你的应用必须确保绑定变量的值设置是正确的,如果你无法保证的话,就有可能会出现一个用户看到另外一个用户设置的绑定变量的值。

 

2 Pool Sizing Parameters

 

Pool Configuration Parameter

Description

Initial Pool Size

Jbo.ampool.initpoolsize

AM 实例池初始化时AM 实例的个数。

默认值是0 ,一个基本是思路是设置他的数值为你的系统预期的并发量的10%

这个参数的主要功能是在初始化时花费一定的CPU 时间来生成指定个AM 的实例,而不是在需要的时候再去创建AM 的实例。

Maximum Pool Size

Jbo.ampool.maxpoolsize

AM 实例池最大可以容纳的个AM 实例的个数,当超过这个值时就不会再创建任何的AM 实例了。

默认值是5000

Referenced Pool Size

Jbo.recyclethreshold

当一个用户Session 使用的AM 实例以Managed-State 模式放回到池中后再被与这个Session 相关的下一次请求取出的AM 的最大实例数

这个值总是应该小于等于最大的Size 。默认为10.

设置这个值的最大好处是可以节省切换AM 实例从这个用户的Session 到另外一个用户的Session 上面去。也可以理解为为一个用户的Session 指定了特定的AM 实例,节省了切换的时间消耗。

Maximum Instance Time to Live

Jbo.ampool.timetolive

AM 实例有池中存活的最大毫秒值,当AM 池现存的实例数大于设置的最小可用值时,这个实例就会从池中移除出去。

默认值是 3600000 毫秒,这个默认值适用与大部分程序。

 

3 Pool Cleanup Parameters

 

Pool Configuration Parameter

Description

Pool Polling Interval

jbo.ampool.monitorsleepinterval

池中的资源被清除的时间间隔,以毫秒为单位。

当池中的实例始终小于设置的最大实例数时,任何一个 AM 实例都不会被清除掉

默认值是 600000 毫秒,设置的值更小时就会引起更频繁的移除操作,从而减少内存的占用量,设置更大值就会更少的去清除。

Maximum Available Size

jbo.ampool.maxavailablesize

正常情况下 AM 池中最大可用的 AM 实例个数。

当清除操作发生时,就会将清除可用的 AM 实例,直到达到低于这个水平。

默认值为 25.

Minimum Available Size

jbo.ampool.minavailablesize

正常情况下 AM 池中最小可用的 AM 实例个数。

当清除操作发生时,就会将超过这个设置的可用的实例清除掉,直到达到这个水平为止。

设置为 0 时清除操作就会清空整个 AM 实例池。

默认值为 5

Idle Instance Timeout

jbo.ampool.maxinactiveage

AM 池中达到这个毫秒值不活动的 AM 的实例将做为候选人在下一次清除操作执行时被清除掉。

默认值是 600000 毫秒。

 

 

 

分享到:
评论

相关推荐

    Oracle ADF AM常用配置参数参考

    Oracle ADF AM常用配置参数参考 1、AM 常用参数 2、AM 压力测试报告 3、AM 参数配置原则 4、AM 参数配置详细说明

    ADF4106实例代码

    1. **初始化**:设置ADF4106的工作模式、频率设定值、参考时钟等参数。 2. **编程序列**:通过SPI或I2C接口向ADF4106发送配置命令,完成频率合成器的设置。 3. **相位累加器管理**:设置相位累加器的初始值,影响...

    ADF4350控制实例

    ADF4350实例。

    ADF4360实例程序

    ADF4360实例程序,有需要的可以参考参考,呵呵

    Oracle JDeveloper ADF 框架实例

    Oracle JDeveloper ADF 框架实例 Oracle JDeveloper ADF 框架实例是一个基于 Java 的 SOA 应用程序和用户界面的开发框架,通过提供现成的基础架构服务以及可视的、声明式开发功能简化 Java EE 程序开发的复杂性。 ...

    adf4351的驱动代码、中文数据手册、相关论文讲解_论文讲解_adf4351中文手册_ADF4351驱动代码_ADF4351_

    8. **应用实例**:论文讲解可能包含具体的应用实例,如雷达系统、卫星通信或物联网设备,这些实例有助于开发者了解ADF4351在不同场景下的最佳实践。 综上所述,通过结合中文数据手册、驱动代码和相关论文讲解,...

    ADF7021 程序

    ADF7021是一款高性能的单片微波射频收发器,常用于无线通信系统,特别是那些要求高频率精度和灵活性的应用中。这款芯片由Analog Devices公司制造,提供了全面的数字接口,允许用户通过微控制器进行配置和控制。在本...

    adf4351的驱动代码、中文数据手册、相关论文讲解,adf4350中文手册,C,C++

    在C或C++语言中编写驱动代码,开发者可以精确地设置ADF4351的参数,如输出频率、参考频率、分频比等。驱动通常包括初始化、配置、读写寄存器以及错误处理等功能。理解并能够修改驱动代码对于调试硬件问题、优化性能...

    ADF4351配置程序.zip_ADF4351_ADF4351程式_adf4350配置_adf4351 程序_adf4351配置

    ADF4351是一款高性能、高精度的频率合成器,广泛应用于无线通信、测试设备、卫星接收等系统中。它具有宽范围的频率输出能力,可编程的分频器和倍频器设计,使得在不同应用中能够灵活调整输出频率。ADF4351的配置主要...

    adf BEAN传参数

    adf manage bean 如何传递参数,大约有4种方式。

    AD公司的锁相环芯片ADF4350例程

    下面我们将详细探讨ADF4350的主要特点、工作原理、应用以及开发过程中需要注意的关键点。 ### ADF4350主要特点 1. **宽频率范围**:ADF4350能够提供从1 MHz到6.4 GHz的频率输出,覆盖了大部分射频和微波应用的需求...

    宽带PLL ADF41513(1)_ADF_acceptwcc_adf4360_ADF41513_ADf4360-7_

    标题中的“宽带PLL ADF41513(1)_ADF_acceptwcc_adf4360_ADF41513_ADf4360-7_”提及了两个关键器件:ADF41513和ADF4360-7。这两个都是高性能的频率合成器,在无线通信、测试设备以及各种信号处理应用中广泛使用。 ...

    ADF检验MATLAB程序.zip_ADF单位根检验_ADF检测_MATLAB adf_adftest matlab_adf检验

    压缩包中的“ADF检验MATLAB程序.doc”文档可能详细介绍了如何使用MATLAB代码实现这些步骤,包括如何调用`adftest`函数,如何处理结果以及可能遇到的问题和解决方案。阅读这份文档将有助于深入理解和应用ADF检验。 ...

    ADF TaskFlow间通信实例(1)

    在这个"ADF TaskFlow间通信实例(1)"中,我们将深入探讨如何在不同的TaskFlow之间传递参数,以便实现更复杂的业务逻辑。 首先,了解ADF TaskFlow的基本概念至关重要。TaskFlow本质上是定义了一组页面或组件的流程...

    ADF Taskflow传参例子

    1. 创建参数:在ADF的Taskflow定义中,你可以创建参数。参数可以是任何JSON兼容的数据类型,如字符串、数字、布尔值或复杂对象。 2. 分配值:在Taskflow的启动时,你可以为输入参数提供值。这些值可以是静态的,也...

    arcims9.2 adf java 开发简单实例图解

    arcims9.2 adf java 开发简单实例图解 arcgis server adf简单实例--类似都基于adf开发

    ADF简单开发案例

    在创建一个简单的增删改查应用时,首先你需要**创建实体对象(Entity Object)**,这基于数据库中的表或视图,ADF会自动生成对应的JavaBean。接着,**定义数据控件(Data Control)**,它是业务服务的集合,可以包含...

    ADF4106器件资料

    ADF4106 应用资料,详细的描述了该器件应用中的一些注意事项。

    adf demo page

    在“adf demo page”中,我们看到的是一个关于ADF实践的介绍,特别是如何创建一个基于JSF(JavaServer Faces)的页面来展示数据分页功能。 首先,让我们详细了解一下`testPaging.jsp`的创建过程。这个页面是ADF应用...

    ADF41513中文手册

    ADF41513 的技术参数包括: * 频率合成范围:1 GHz 至 26.5 GHz * 相位噪声:235 dBc/Hz (整数 N 分频模式),231 dBc/Hz (小数 N 分频模式) * PFD 频率:250 MHz (整数 N 分频模式),125 MHz (小数 N 分频模式) * ...

Global site tag (gtag.js) - Google Analytics