URL:jdbc:oracle:thin:@192.168.1.16:1521:ora9i
一 WebSphere中设置编码
而应用程序是以GBK作为默认编码会导致一系列的乱码问题。
在这个情况下,我们可以通过webSphere的控制台设置来修正该问题。
以下webSphere简称WS,WS有WS5和WS6,两个有些不同。
WS5:
点开“服务器”节点-->应用程序服务器,找到自己应用使用的服务器。
进入,在“其他属性”中找到“进程定义”,
然后在其下的“其他属性”中找到Java虚拟机。
然后找到“一般 JVM 自变量 ”将其值设置为:-Dfile.encoding=GBK
然后保存,重新启动WS服务。注意是将WS重启。
telnet 连到服务器,stopServer.sh server1
WS6:
“服务器”-->应用程序服务器,找到自己应用使用的服务器。
WS6有不同,注意。
找到“服务器基础结构”,展开其下的“Java 和进程管理”,然后进入“进程定义”。
进入后找到“其它属性”-->“Java 虚拟机”:
将“Java 虚拟机”设置为:-Dfile.encoding=GBK
二 WEBSPHERE配置数据库连接池
基本介绍:
通过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.确定,保存