修改AM使其钝化到文件

最近对ADF项目进行了一次压力测试,发现频繁的对PS_TXN表进行读写操作,消耗了很大的性能。经过查询官方资料,AM的钝化可以不存入数据库,而是磁盘目录下。

具体办法:

1.linux服务器 建出目录:/home/oracle/ADFAMCache/

2.修改bc4j.xcfg文件 在<AppModuleConfig>标签下增加属性

jbo.passivationstore="file"

jbo.tmpdir="/home/oracle/ADFAMCache/"

 

补充:对AM的钝化机制不是很清楚,在反复压力测试过程中:

1.目录ADFAMCache下会生产很多的文件,每个文件应该就是一个AM实例的钝化内容,大小在几K 到几十K不等,同时ps_txn表一直空着,也不会有任何操作。

2.ADF架构应该会清理ADFAMCache文件,并不是一味的增长,但不知是什么原因(或是改设置哪里),文件总不能完全清除,及时隔一天时间不做任何操作文件也存在,为了不让磁盘写满,做了个linux脚本,定时清理改目录下的文件。具体写法如下——

       2.1写一个sh脚本,起名/home/oracle/delADFAMCache.sh。 

扫描二维码关注公众号,回复: 562861 查看本文章

#!/bin/bash

FILE_PATH="/home/oracle/ADFAMCache/"

SIZE=$(du -sb $FILE_PATH | cut -f1)    

# 10GB = 10737418240 bytes

if [ $SIZE -gt 10737418240 ]; then

    echo 'Condition returned True'

    find  $FILE_PATH/* -daystart -mmin +300 -exec rm -rf {} \; 

 

fi

意思是 当该文件达到10G的时候,删除5个小时前创建的文件

       2.2打开/etc/crontab文件 增加如下语句——

05 * * * * root /bin/bash /home/oracle/delADFAMCache.sh

意思是每小时执行一次

 

可以通过以下命令查看目录下文件个数,以确定设置是否生效

 

cd /home/oracle/ADFAMCache/

ls -l |grep "^-"|wc -l

猜你喜欢

转载自best0247.iteye.com/blog/2333252
am