1.1.1 Loadrunner JAVA脚本 唯一参数问题
最初采用JNI 调用delphi的DLL,JAVA脚本中未使用static synchronized关键字时只能2个并发用户就报错
private static native synchronized String getUrl();
static{
// System.loadLibrary("PairConn");
System.loadLibrary("AppServerDll");
}
加上static synchronized对于复杂DLL在高并发时还是出现错误,在DLL中加共享内存互斥信号量问题依然存在,网上有提到JNI对于多线程支持不是很好,最后放弃JNI接口,采用调用服务器端的EJB来获取参数。
最初DLL用ADO直接从数据库临时表中读参数数据,测试过程中发现读取参数占用大量数据库资源,最后改为将临时表中的数据生成数据文件,DLL和EJB都直接读取数据文件,由于数据文件比较大,读取参数时不能一次性把所有参数数据加载,多线程之间共享文件指针。
1.1.2 Weblogic 部署问题
1.1.2.1 创建domain
创建domain时用产品模式
1.1.2.2 更新包
通过删除 包的cache 然后重启实例彻底更新
停止实例
#!/bin/sh
cd /app/bea/user_projects/domains/rms7002/bin
./stopWebLogic.sh &
删除cache脚本
#!/bin/sh
rm -r /app/bea/user_projects/domains/rms7001/servers/AdminServer
重启实例脚本
#!/bin/sh
cd /app/bea/user_projects/domains/rms7001
rm nohup.out
nohup ./startWebLogic.sh &
查看控制台输出
#!/bin/sh
tail -f /app/bea/user_projects/domains/rms7002/nohup.out
1.1.2.3 java虚拟机配置
-Xms1024m –Xmx1024m 最大不超过2G
永久域太小导致EJB无法部署 –XX:MaxPermSize=256m
1.1.2.4 连接池
初始连接和最大连接数都设置成一样,目前设置为80
1.1.2.5 EJB配置
高并的EJB需加大 ,需修改xdoclet的EJB注释
<pool>
<max-beans-in-free-pool>1000</max-beans-in-free-pool>
<initial-beans-in-free-pool>20</initial-beans-in-free-pool>
</pool>
1.1.3 数据库
1.1.3.1 大数据量表分区
按500万条记录分一个区,pair_conn 13个分区、connector表34个分区,分别进行了分区
1.1.3.2 大并发操作表
n 删除无用的索引和所有外键
n 增加表和索引的initrans 参数,connector表改到了24,其它高并发表改到16
n 增加表和索引的FREELIST参数FREELISTS 10
n 所有索引和主键都放入索引表空间
n 所有表和索引都改成NOLOGGING
1.1.3.3 数据导入
1.1.3.3.1 重建用户的脚本
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/