接近年关,最近年结忙的飞起,此为背景,今天运维那边反应日记账凭证打印报错,看了下后台请求发现请求有警告。

查看日志发现报了“并发:OPP响应超时”的警告,这个地方响应超时可能是配置文件中“并发:OPP超时响应”等相关参数的影响,在参数规定的时间内OPP 服务没有及时响应造成的,当然问题的起因可能有深层次的原因,这里我们需要去找一下OPP服务日志。

那么,怎么去找OPP服务日志呢,我们通过请求号 查询OPP服务日志的位置:

SELECT FCPP.CONCURRENT_REQUEST_ID REQ_ID,FCP.NODE_NAME,FCP.LOGFILE_NAMEFROM FND_CONC_PP_ACTIONS      FCPP,FND_CONCURRENT_PROCESSES FCPWHERE FCPP.PROCESSOR_ID = FCP.CONCURRENT_PROCESS_IDAND FCPP.ACTION_TYPE = 6AND FCPP.CONCURRENT_REQUEST_ID = 25168707

查询到服务日志之后,我们查看服务日志的内容发现,有如下的错误:

/18/06 5:00:14 PM] [UNEXPECTED] [128085:RT1585526] java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at oracle.apps.xdo.common.xml.XSLT10gR1.invokeProcessXSL(XSLT10gR1.java:580)
at oracle.apps.xdo.common.xml.XSLT10gR1.transform(XSLT10gR1.java:378)
at oracle.apps.xdo.common.xml.XSLT10gR1.transform(XSLT10gR1.java:197)
at oracle.apps.xdo.common.xml.XSLTWrapper.transform(XSLTWrapper.java:156)
at oracle.apps.xdo.template.fo.util.FOUtility.generateFO(FOUtility.java:916)
at oracle.apps.xdo.template.fo.util.FOUtility.generateFO(FOUtility.java:178)
at oracle.apps.xdo.template.FOProcessor.createFO(FOProcessor.java:1507)
at oracle.apps.xdo.template.FOProcessor.generate(FOProcessor.java:913)
at oracle.apps.xdo.oa.schema.server.TemplateHelper.runProcessTemplate(TemplateHelper.java:1766)
at oracle.apps.xdo.oa.schema.server.TemplateHelper.processTemplate(TemplateHelper.java:1277)
at oracle.apps.fnd.cp.opp.XMLPublisherProcessor.process(XMLPublisherProcessor.java:229)
at oracle.apps.fnd.cp.opp.OPPRequestThread.run(OPPRequestThread.java:153)
Caused by: java.lang.OutOfMemoryError
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java(Compiled Code))
at oracle.xdo.parser.v2.XMLOutputStream.flush(XMLOutputStream.java(Inlined Compiled Code))
at oracle.xdo.parser.v2.XMLOutputStream.write(XMLOutputStream.java(Compiled Code))
at oracle.xdo.parser.v2.XMLOutputStream.writeChars(XMLOutputStream.java(Compiled Code))
...

那么到这里我们很明显能够看出具体产生问题的原因,是因为在输入较大文件情况下,服务器没有足够的内存来分配,可能是因为在业务高峰期,OPP没有足够的堆栈大小,这个有可能是内存参数过小产生,也有可能是模板文件中的编码导致内存泄露。

这里可以参考官方文档:Output Post Processor (OPP) Log Contains Error "java.lang.OutOfMemoryError" (文档 ID 1266368.1)

根据官方文档,有以下几种方法来解决这个问题(这几种方法可以选择执行):

  • 1.登录XML Publisher Administrator职责。
    2.导航到主页 - 管理 - 配置。
    3.在“常规属性”下,选择“临时目录”。
    4.在并发处理节点上选择临时文件位置。这应该比您生成的最大XML数据文件至少大5Gb或20倍。

  • 1.登录XML Publisher Administrator职责。
    2.导航到主页 - 管理 - 配置。
    3.在FO处理属性集下:
    a)使用XML Publisher的XSLT处理器为True。
    b)使XSLT处理器的可扩展功能为False。
    c)将XSLT运行时优化启用为True。

  • 1.作为系统管理员:导航到Concurrent-> Program-> Define。
    2.查询报告:帐户分析报告(例如)。
    3.添加名为ScalableFlag的参数:
    值集:yes_no 
    默认值:是
    选中复选框启用安全性和必需
    不选中复选框显示,或者用户可以在运行时将其关闭。
    令牌需要是ScalableFlag(这是区分大小写的值)。
    注意:对于应用程序总帐和子分类帐会计并发程序定义,请完成以下步骤。

  • 1.确定当前每个OPP进程的堆大小:
select DEVELOPER_PARAMETERS from FND_CP_SERVICES
where SERVICE_ID = (select MANAGER_TYPE from FND_CONCURRENT_QUEUES
where CONCURRENT_QUEUE_NAME = 'FNDCPOPP');

2.默认值应该是:

J:oracle.apps.fnd.cp.gsf.GSMServiceController:-mx512m

3.增大每个进程的堆空间到1024

update FND_CP_SERVICES
set DEVELOPER_PARAMETERS =
'J:oracle.apps.fnd.cp.gsf.GSMServiceController:-mx1024m'
where SERVICE_ID = (select MANAGER_TYPE from FND_CONCURRENT_QUEUES
where CONCURRENT_QUEUE_NAME = 'FNDCPOPP');

4.重启并发管理器

  • 1.导航至系统管理员职责。
    2.导航到Concurrent - Program - Define。
    3.查询XDOTMGEN可执行文件的短名称。
    4.在“选项”字段中,添加诸如-Xmx512m或-Xmx1024m之类的值或其他相关数字以增加堆大小。
    5.保存更改。
    6.重新提交请求。

End.

当然官方是希望我们能够按时应用最新的ATG RUP和XDO补丁集,这个就是后话了。

EBS R12中FND凭证打印警告:OPP响应超时相关推荐

  1. EBS R12中如何使用CGI登录Form

    虽然听说在R12中没有CGI这个说法,但是搜了半天都是这么用的(CGI),姑且用这个词吧. 默认情况下R12中$CONTEXT_FILE中的 s_appserverid_authentication ...

  2. 并发:OPP响应超时

    并发:OPP响应超时 请求 19851708 的后期处理于 失败,并显示错误消息: 输出提交处理程序正在运行,但尚未获得此请求. 将不再尝试进行此请求的后期处理,并且将该请求标记 为"警告& ...

  3. 用友U8如何调整凭证打印模板

    用友U8如何调整凭证打印模板 用友公司UFERPU8系统总帐系统中的凭证打印格式(包括套打和非套打的凭证打印格式)如果不能满足用户需要,可以进行适当调整.方法如下: 1.首先,必须在您的系统中安装用友 ...

  4. 用友u8凭证打印模板调整方法

    用友公司UFERPU8系统总帐系统中的凭证打印格式(包括套打和非套打的凭证打印格式)如果不能满足用户需要,可以进行适当调整.方法如下: 1.首先,必须在您的系统中安装用友公司的UFO电子表,建立调整工 ...

  5. Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处理

    介绍Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处. Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断或关机后,重新开机,运行数据库 ...

  6. EBS R12: 通过FND_PRODUCT_INSTALLATIONS中字段STATUS确认安装使用了哪些产品(或模块)

    EBS R12.1.3 我们可以通过表  FND_PRODUCT_INSTALLATIONS 中的  STATUS 字段来确认产品是否有安装并使用 (其实在rapid install的时候产品都会 被 ...

  7. 水晶报表A4纸打印两张中一刀凭证

    现在很多时候都会遇到 水晶报表A4纸打印两张中一刀凭证 单头如下: numbervar firstRecordOfGroup; //numbervar lastRecordOfGroup; //将每组 ...

  8. oracle ERP凭证打印样式,Oracle ERP二次开发中特色鲜明的Web打印模式设计与实现

    0背景随着宽带网络的普及和推广,基于浏览器的B/S结构的应用程序越来越多,客户端免安装.免配置.免维护.免升级;服务器端则采用多层模式,将表示层.商业逻辑层和数据层分开,极大的提髙了开发的效率和数据的 ...

  9. Delphi中票据凭证的精确打印

    Delphi中票据凭证的精确打印 2001-11-08· ·陈立平··yesky 一.概述 在银行,税务,邮政等行业的实际工作中,经常涉及到在印刷好具有固定格式的汇款单,储蓄凭证,税票等单据上的确定位 ...

最新文章

  1. Ionic中自定义公共模块以及在自定义模块中使用ionic内置模块
  2. 安装keras and theano于google colab上
  3. Python3字符串复制
  4. 第六章:系统困境之 你的努力与时代进程相逆
  5. aspose 生成word 简单的文档操作
  6. opengl 如何加阴影_动漫嘴唇厚涂如何绘制?厚涂嘴唇正确画法
  7. 回溯算法之布罗夫卫队(最大团问题)
  8. 舒尔特注意力训练表格_舒尔特注意力训练,舒尔特方格练习入口
  9. 使用effect的注意事项
  10. java jettison_java – 使用Jettison进行JSON解析
  11. 连锁药店计算机系统权限审批表,GSP认证药店管理系统
  12. 恩智浦智能车摄像头循迹部分
  13. 思科九年(转载自Internet)
  14. diy家庭文件服务器,DIY家庭云服务器
  15. 智能红外遥控器(四):手机蓝牙控制格力风扇康佳加湿器
  16. 一文搞懂tf.function
  17. Mixly 数码管时钟
  18. 元宇宙到底是什么?让我们来看看科技达人们是怎么讲的。
  19. 关于“前台根据后台值,操作字段、显示或select选中状态”的几种做法
  20. 史上最全WindowsMac系统各种快捷键大全(1000余个)

热门文章

  1. ArcEngine编辑模块——批量删除要素
  2. KDD CUP 99利用决策分类树进行网络异常检测
  3. 读《深入浅出Nodejs-朴灵》笔记
  4. 点线面的特点_设计三神器!点线面的基本特点与表现
  5. 成为阿里云大使的笔记
  6. Android手机应用CTA认证自测
  7. android 后台运行清理,【Android】App在后台被清理后的终极应对手段——重启应用...
  8. Python中的数据序列(元组、集合、字典)
  9. 啤酒与尿布的蝴蝶效应——关联分析
  10. 中医针灸学综合练习题库【9】