问题:使用XML Publish方式进行报表输出,输出的结果为Excel或者PDF格式,使用中遇到的主要问题是,当要生成的报表文件太大时,EBS无法形成所需的文件,并且会导致其他请求也都出现无法输出,查看java日志可见出现outofmemory错误。
方案:
安装补丁patch 7306874。
同时为了避免XML输出文件太大导致FNDCPOPP内存溢出,建议减小输出文件大小:
1、 建议缩短XML TAG的大小(按经验,通常XML文件中TAG占其中三分之二内容左右)。
2、 将报表拆解多个,然后压缩成zip文件,提供给用户下载。
1) 创建Shell脚本
#!/bin/ksh
header_string="$Header: zip_conc_out.sh_V1.0 by ACS SC 2013-8-14 $"
prog_version=`echo "$header_string" | awk '{print $2}'`
program=`basename $0`
usage="\t$program <OutputFile> <ConcReqID1[:ConcReqID2]>"
if [ $# -lt 2 ];
then
printf "\n$program: too few arguments specified.\n\n"
printf "$usage\n\n"
exit 1;
fi
#
# arguments appear in the order: <output file name> <ConcRequestID1[:ConcRequestID2]>
#
RETURN_FILE=$5
ARG=$6
EXT=$7
# 1.Delete files 7 days ago
find $OA_HTML/out -name "*" -ctime +7 | xargs r