WebSphere--连接管理器
连接管理器使您可以控制并减少由 Web 应用程序使用的资源。相对于非 Web 应用程序,基于 Web 的应用程序对数据服务器的访问会导致更高的和不可预料的系统开销,这是由于 Web 用户更为频繁的连接和断开。通常连接与断开连接所用的资源大于交互所用的资源。由于 Internet 的“冲浪”性质,用户的交互过程一般都较短。通常,公司外(Internet,而非 intranet)的用户会将使用卷变得很大,并难以预料。连接管理器通过建立用户
Servlet 可用的连接缓冲池将连接的系统开销分摊给多个用户请求。换言之,每个用户请求仅占用连接/断开连接所用系统开销成本的一小部分。在使用初始资源建立缓冲池中的连接后,其余连接/断开连接所用的系统开销就不大了,因为这只是重复使用已有的连接而已。
Servlet 以如下方式使用连接缓冲池:当一个用户通过 Web 向 Servlet 请求时, Servlet 从缓冲池使用一个已有的连接,这意味着用户请求不会引起数据服务器的连接系统开销。当满足请求时,Servlet 将连接返回至连接管理器缓冲池供其它 Servlet 使用。因而用户请求不会引起数据服务器的断开连接的系统开销。
连接管理器还使您能控制到数据服务器产品的并发连接数。当数据服务器的许可证协议限定用户数量时,这一特性是非常有用的。可以为数据服务器创建一个缓冲池,并将连接管理器缓冲池的“最多连接数”参数设成数据服务器产品许可证中限定的最大用户数。如果用其它程序而不用连接管理器连接到数据服务器,则不能保证该方法有效。
- 1. 连接管理器结构
连接管理器维护一个连接到特定数据服务器产品处于打开状态的数据服务器缓冲池。每个数据服务器可以有一个或多个等同的或非等同的缓冲池。连接管理器的一个运行实例可以支持多个数据服务器。图6-1说明了在连接管理器与一个正在连接管理器的连接缓冲池中寻找可使用的连接的 Servlet 之间的典型交互作用。
(1) 当第一个 Servlet 试图与连接管理器通信时,由WebSphere应用服务器装入运行在WebSphere应用服务器下的连接管理器。只要WebSphere应用服务器在运行,连接管理器就一直被装入。
(2) WebSphere应用服务器将用户请求传递给一个 Servlet。
(3) Servlet 用连接管理器使用的方法从缓冲池中请求一个连接。
(4) 缓冲池给 Servlet 分配一个连接。
(5) Servlet 使用连接与数据服务器直接对话,这一过程中使用的是特定数据服务器的标准 API。
(6) 数据服务器通过与 Servlet 的连接返回数据。
(7) 当 Servlet 结束与数据服务器通信时,Servlet 把连接归还给连接管理器缓冲池,以供其它
Servlet 使用。
(8) Servlet 通过WebSphere应用服务器向用户发回响应。
在 Servlet 请求一个连接时,缓冲池中不一定有可用的连接。在这种情况下,连接管理器直接与数据服务器通信。连接管理器将:
l 请求一个新的连接
l 将连接添加到缓冲池中。如果缓冲池中的连接数达到了规定的上限,连接服务器将不会把新的连接加入缓冲池中。
l 将新的连接交给 Servlet。
- 2.性能特性
为缓冲池创建一个新的连接是一项系统开销很高的任务,新的连接将使用数据服务器上的资源。因此连接管理器尽量用缓冲池中的现有连接来满足 Servlet 的请求。 同时,连接管理器必须尽可能地最小化缓冲池中的空闲连接,因为这是对系统资源的极大浪费。连接管理器与 Servlet 一同执行这些最小化和最大化任务。对于可选的性能,请适当地设置连接管理器参数。
连接管理器维护每个连接的验证时间标记、最近使用时间标记和正在使用标志。当某个 Servlet 第一次获得连接时,连接的验证时间标记和最近使用时间标记被设置为当前时间,连接的正在使用标志则被设置为真。
可将连接服务器配置成从某个 Servlet 中移走一个长时间未使用的连接。这个时间长度是由连接管理器的 “最长周期”参数指定的。如果 Servlet 准备在较长一段时期内使用连接与数据服务器多次通信,可能希望将代码加入 Servlet 中,以便在每次使用连接之前,确认它仍占有这个连接。连接管理器从缓冲池中除去空闲的连接,因为它们会浪费资源。为了确定哪个连接是空闲的,连接管理器将检查连接标志和时间标记,这个操作是通过周期性地获取连接缓冲池信息来实现的:
(1) 连接管理器查看正在使用连接的最近使用时间标记。如果最近使用时间和当前时间之间的时间差大于“最长周期” 配置参数,则本连接将被认为是一个残留连接,这就表明占有它的 Servlet 已终止或者没有响应。残留连接将被归还给缓冲池以供其它 Servlet 使用,它的正在使用标志被设置为假,且验证和最近使用时间标记被设置为当前时间。
(2) 连接管理器检查未被任何 Servlet 使用的连接(这些连接的正在使用标志为假)。如果最近使用时间与当前时间的时间差超过了“最长空闲时间”配置参数,将认为本连接是空闲的。空闲连接将被从缓冲池中除去,降至“最少连接数”配置参数指定的较低限定值。
- 3.监控连接管理器
WebSphere应用服务器管理器为名为数据库缓冲池连接的连接管理器提供了一个监控程序。可以使用这些信息来查看如何执行连接缓冲池,并建议对连接缓冲池参数进行可能的更改。可以在更改参数之后对缓冲池执行监控,从而查看缓冲池特性的更改并帮助进一步对缓冲池参数进行调整。可以选择特定缓冲池,以从选择列表中对其进行监控。
WebSphere--连接管理器的更多相关文章
- 在SSIS 的 64 位版本中不支持 Excel 连接管理器
Microsoft sql server 2008 R2——> SQL SERVER Business Intelligence Development Studio 使用EXCEL数据源或目标 ...
- SOFA 源码分析 — 连接管理器
前言 RPC 框架需要维护客户端和服务端的连接,通常是一个客户端对应多个服务端,而客户端看到的是接口,并不是服务端的地址,服务端地址对于客户端来讲是透明的. 那么,如何实现这样一个 RPC 框架的网络 ...
- httpclient 连接管理器
连接操作器 连接操作是客户端的底层套接字或可以通过外部实体,通常称为连接操作的被操作的状态的连接. OperatedClientConnection接口扩展了HttpClientConnection接 ...
- SSIS包的组建之连接管理器
上一篇我们通过一个示例来介绍一下SSIS 包的开发.接下来的内容我们将学习一下包中各个选项卡的使用.如:连接管理器选项卡.控制流选项卡.数据流选项卡和事件处理选项卡等等.这一篇将介绍一下连接管理器作用 ...
- 在SSIS 的 64 位版本中不支持 Excel 连接管理器[转]
Microsoft sql server 2008 R2——> SQL SERVER Business Intelligence Development Studio 使用EXCEL数据源或目标 ...
- openfire研究之部署连接管理器(connection manager)
http://blog.sina.com.cn/s/blog_7325f5150101bafh.html 一. Openfire Connection Manager 简介 Openfire Conn ...
- 转-HttpClient4.3 连接管理
转 http://www.yeetrack.com/?p=782 2.1.持久连接 两个主机建立连接的过程是很复杂的一个过程,涉及到多个数据包的交换,并且也很耗时间.Http连接需要的三次握手开销很大 ...
- HttpClient4.3教程 第二章 连接管理
2.1.持久连接 两个主机建立连接的过程是很复杂的一个过程,涉及到多个数据包的交换,并且也很耗时间.Http连接需要的三次握手开销很大,这一开销对于比较小的http消息来说更大.但是如果我们直接使用已 ...
- HttpClient-02连接管理
2.1.持久连接 两个主机建立连接的过程是很复杂的一个过程,涉及到多个数据包的交换,并且也很耗时间.Http连接需要的三次握手开销很大,这一开销对于比较小的http消息来说更大.但是如果我们直接使用已 ...
随机推荐
- 新手OTCBTC注册前一定要看的几个步骤!【安全性相关】
纽波特市一位名叫詹姆斯·豪威尔的32岁男子,筹集740万英镑给政府,希望政府同意他挖掘当地的一座垃圾填埋场,因为他有一块保存有7500枚比特币(价值人民币8.3亿)的钱包文件的硬盘,就被埋在这座垃圾填 ...
- 使用CJSON库实现XML与JSON格式的相互转化
之前完成了一个两个平台对接的项目.由于这两个平台一个是使用json格式的数据,一个是使用xml格式的数据,要实现它们二者的对接就涉及到这两个数据格式的转化,在查阅相关资料的时候发现了这个CJSON库, ...
- Django-基础之web框架
http协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送 ...
- js 循环 常用方法
$(function () { var num = ["1","2","3","4","5",&qu ...
- JavaScript基础知识(if、if else、else if、while、switch...case语句)
13.语句 概念:就是分号(:) 代表一条语句的结束 习惯:一行只编写一条语句:一行编写多条语句(代码可读性较差) 语句块:可以包含多条语句 "{ }"将多条语句包裹 u ...
- 软件161A 张慧敏
一.PTA实验作业 题目1:7-11 单向链表3:编程实现:输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:输入一个正整数 n(0<n< ...
- HDU 1711 Number Sequence(KMP裸题,板子题,有坑点)
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- FineReport父子格实现动态参数注入
"深入学习FineReport后发现其功能及其强大,之前使用存储过程实现的报表完全可以使用FineReport本身的功能实现. 当你需要的表名,查询条件等均未知的时候,使用"动态参 ...
- js第一课总结
一. 当引用了一个src="demo.js"后,scrpit中间不能有js类的任何方法,都不会被执行. <!DOCTYPE html PUBLIC "-//W3C/ ...
- 创建jedis对象
1.先在taotao-parent的pom.xml中复制 以下内容到rest的pom.xml中 <!-- Redis客户端 --> <dependency> <group ...