基本介绍:
通过WebSphere配置数据库连接池一共需要三项:
1.配置连接驱动,在这里叫:JDBC提供程序;
2.配置数据库连接池,在这里叫:配置数据源;
3.配置数据库登录帐号,密码,在这里叫:J2C认证别名;
具体操作:
一.创建JDBC提供程序
1.进入 资源->JDBC->JDBC提供程序;
2.选择配置的节点;
3.进入新建;
4.创建新的JDBC提供程序:
4.1 选择数据库类型(使用的数据库名称);
4.2 选择提供程序类型;
4.3选择实施类型;
5.下一步,输入数据库类路径信息:
5.1输入数据库驱动文件的完整路径(注意:不要使用末尾斜杠文件分隔符);
6.显示配置总结信息,完成配置JDBC提供程序,保存到主配置中;
二.配置数据源
1.进入 资源->JDBC->数据源;
2.选择配置的节点;
3.进入新建;
4.输入基本数据源信息:
4.1输入数据源名,任意名称即可;
4.2输入JNDI名称路径(如:jdbc/dataSource);
4.3选择已有的组件管理的认证别名和XA恢复认证别名,如果需要新建选项,点击新建J2C认证别名,查看方法"新建J2C认证别名";
5.选择JDBC提供程序,选择现有的JDBC提供程序(如果没有JDBC提供程序,可以选择创建新的JDBC提供程序)
6.JDBC提供程序,方法参照创建JDBC提供程序);
6.1输入数据源的特定于数据库的属性;
6.2输入数据库名;
6.3指定数据源的 JDBC 连接类型.此属性与数据源类中的驱动程序类型属性相对应.如果要使用类型4 JDBC 驱动程序,则将值设置为4.如果要使用类型2 JDBC 驱动程序,则将值设置为 2(在z/OS(R)平台上,类型2 驱动程序使用 RRS 并支持两阶段落实处理);
输入服务器名称(比如输入TCP/IP:172.16.6.170),注意:此属性与数据源类中的服务器名称属性相对应.如果驱动程序类型属性设置为4,则此属性是必需的;
6.4输入端口号,注意:此属性与数据源类中的端口号属性相对应.如果驱动程序类型属性设置为4,则此属性是必需的;
6.5选择将此数据源用于容器管理的持久化(CMP),指定此数据源用于Enterprise bean的容器管理的持久性(CMP).此选项将导致为关系资源适配器创建与此数据源对应的CMP 连接工厂.
7.显示配置总结信息,完成配置数据源,保存到主配置中;
三.新建J2C认证别名
1.进入资源->JDBC->数据源->新建->创建新的J2C认证别名 或者进入 资源->JDBC->数据源->进入已有的数据源->点击:JAAS-J2C 认证数据->新建J2C认证数据;
2.配置常规属性:
2.1输入别名,任意名称即可;
2.2输入用户标识,输入数据库用户名即可;
2.3输入密码,输入数据库密码即可;
3.保存,添加到使用的的组件管理的认证别名和XA恢复认证别名即可.
三 websphere参数配置
1、更改http server的配置文件参数KeepAlive。 原因:这个值说明是否保持客户与HTTP SERVER的连接,如果设置为ON,则请求数到达MaxKeepAliveRequests设定值时请求将排队,导致响应变慢。 方法:打开ibm http server安装目录,打开文件夹conf,打开文件httpd.conf,查找KeepAlive值,改ON为OFF,其默认为ON
2、更改http server的配置文件参数ThreadsPerChild值到更大数目,默认为50 原因:服务器响应线程的数量 方法:打开ibm http server安装目录,打开文件夹conf,打开文件httpd.conf,查找ThreadsPerChild值,默认为50,改到更大数目,视用户数多少而定,一般改到客户机数量的1.1倍,如200台,则设为220。
3、关闭http server日志纪录 原因:http server的日志IO影响性能 方法:打开ibm http server安装目录,打开文件夹conf,打开文件httpd.conf,查找CustomLog值,找到没有注释的那行(行的开头没有符号"#"),将那行用符号"#"注释掉,以关闭日志纪录,提高处理性能。
4、更改Websphere的服务器处理线程数 原因:线程的数量影响同时并发的请求数量 方法:打开管理控制台,依次打开目录树,服务器->server1->web容器->线程池,修改"最大大小"的值,默认是50,改到更大数目,具体视总用户数量和机器的配置而定,一般设置其等于或小于http server设置的MaxKeepAliveRequests的值。
服务器->应用程序服务器->server1->进程定义->Java 虚拟机 初始堆大小 128 最大堆大小 512 线程池:服务器->应用程序服务器->server1->进程定义->Web 容器->线程池 最小大小 20 最大大小 100 最小/最大=1/5 数据源连接池: 资源->JDBC 提供程序->(作用域选择服务器,应用)Sybase JDBC Driver->数据源->sybase->连接池 最大连接数 30 最小连接数 10
下配置仅供参考,实际中还需要根据项目情况和硬件环境而定! 以下调整在 WebSphere Application Server 的管理控制台进行。
进程定义 - Java 虚拟机:
-- 将“初始堆大小”和“最大堆大小”设为相同的值。在有 2GB 内存的系统中,建议设为 512MB。在有 4GB 内存的系统中,建议设为 768MB。
-- 垃圾回收:在“Java 虚拟机”设置中,“一般 JVM 自变量”中设置“-Xnoclassgc”参数。
Web 容器:
-- 将进程优先级从20改为0,这样 会比应用程序服务器有更高的优先级。进程优先级可以在 “server1”-“进程定义”-“进程执行”中修改。
-- 将 “Web 容器”-“线程池”的大小设为 100,并选中“允许线程分配超过最大线程大小”
-- 在“会话管理”中将“会话超时”时间从 30 分钟改为 15 分钟
JDBC 数据源:
-- 将每个数据源的“语句缓存大小”设置为 0
JDBC 连接池:
-- JDBC 连接池大小设置为 100 -- 在数据库服务器上做相应的修改(在 DB2 中是 MAXAPPLS)
针对数据库服务器的调整:
-- 数据库的磁盘空间应无限制 字符编码 --默认为gb2312,复杂的中文不支持“犇”,“暟” 在JVM配置-Dfile.encoding=GBK
WS优化的经验:
1.Java 虚拟机初始堆大小和最大堆大小(位置: server1 > 进程定义>java虚拟机 )
WS通常默认是256,可以适当调整最大堆为512。不过也不要调的过大,小心WS启不启来,有一次我把初始堆调成768最大堆调成了2048,当我startserver -server1 时就提示WS无法初始化,原因是内存不足,所以一定要根据机子的性能来调整
2.web容器的线程池最小大小和最大大小
3.Jdbc连接池属性
这个最难把握,因为最大连接数、最小连接数、连结超时、获得时间等等都要依据数据库及网张络的性能来调整。而且获得时间、不使用超时、时效超时是互相联系的一组参数,一般来说:获得时间要小于不使用超时及时效超时,且三个不能为零,是最好的!
4.启用servlet高速缓存
5.语句高速缓存大小
四 异常
1)sun.io.MalformedInputException 错误
1.打开管理控制台,找到并选择运行这个JSP的应用服务器 2.依次选择进程定义,java虚拟机,一般JVM自变量 3.添加-Dibm.stream.nio=true 4.确定,保存