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

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

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

SELECT FCPP.CONCURRENT_REQUEST_ID REQ_ID,
FCP.NODE_NAME,
FCP.LOGFILE_NAME
FROM FND_CONC_PP_ACTIONS FCPP,
FND_CONCURRENT_PROCESSES FCP
WHERE FCPP.PROCESSOR_ID = FCP.CONCURRENT_PROCESS_ID
AND FCPP.ACTION_TYPE = 6
AND 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. MO_GLOBAL - EBS R12 中 Multi Org 设计的深入研究 (3)

    这是多组织访问的第三篇文章,翻译自Anil Passi的MO_GLOBAL-Dive into R12 Multi Org Design 我希望你已经读了文章 EBS R12 中的 Multi Org ...

  2. MO_GLOBAL - EBS R12 中 Multi Org 设计的深入研究 (2)

    这是多组织访问的第二篇文章,翻译自Anil Passi的Multi Org R12 我们都知道,在Oracle Release 12中多组织模型(Multi Org)会被改变, 它被叫作多组织访问控制 ...

  3. 更改EBS R12中forms的模式Servlet/Socket

    EBS R12中forms的模式有:Servlet mode 和 Forms Socket mode 当我们完成Oracle EBS R12套件的快速安装后,forms的默认配置是Servlet mo ...

  4. 并发:OPP 响应超并发:OPP 响应超时

    用户提交报表,无法正常结束,报表日志中有如下消息: “正在执行请求完成选项... +------------- 1) PUBLISH -------------+ 节点 FIN1 上的请求 29884 ...

  5. MO_GLOBAL - EBS R12 中 Multi Org 设计的深入研究(1)

    在改EBS的BUG过程中,会在网上查找很多资料,这次是碰到一个多组织(Multi Org)的问题,发现Anil Passi写的几篇文章不错,慢慢的会陆续翻译过来,这次翻译的是http://getapp ...

  6. EBS R12中重新enable失效用户之后,丢失职责

    以下请求跑完不能立即生效,需要等上一段时间! oracle support说这并不是一个bug,是一个问题,呵呵,bug和问题,都是你的错,oracle! 工 作中将某个用户失效之后,有可能又需要重新 ...

  7. R12中注册客户化应用为多组织应用

    Oralce EBS R12中引入了MOAC的控制,所有多OU的表对象都添加了数据库VPD的控制策略,需要访问这些对象中的数据,首先需要进行多组织环境的初始化,但是如果客户化的应用中也需要具备多OU的 ...

  8. Oracle EBS R12 XML数据表格的Excel脚本报表

    http://www.cnblogs.com/quanweiru/archive/2012/07/28/2612680.html 一.概述 在EBS系统中,报表是一个非常重要的客户化开发内容,也是系统 ...

  9. Oracle EBS R12经验谈(二)

    作者: jianping.ni    时间: 2009-2-13 12:52     标题: Oracle EBS R12经验谈(二) OAF页面:银行帐户开户人LOV值列表无值    在输入 应付超 ...

随机推荐

  1. C# 判断字符串为空(长度为0),或者是null(没有new)

    string str = null; if (string.IsNullOrWhiteSpace(str)) { MessageBox.Show("字符串为null"); } ) ...

  2. Fedora14 mount出现错误时解决办法【亲测有效】

    挂载时出现了如上图所示问题,看第一条英语提示,我刚开始以为是文件权限不够,改了权限之后,依旧存在这样的问题, 于是,我上网查阅了一些资料: 在解决之前,先让我们一起来了解一下nfs: NFS最大功能就 ...

  3. 021-动态生成验证码jsp代码模板

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  4. script脚本中写不写$(document).ready(function() {});的区别

    $(document).ready() 里的代码是在页面内容都加载完才执行的,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,此时如果你标签里执行的代码调用 ...

  5. 【转】Android实现伸缩弹力分布菜单效果

    本文介绍下在Android中实现伸缩弹力分布菜单效果.关于这种菜单效果在IPhone中比较常见,效果比较酷.那么在Android中实现只是一种简单的模仿. 这两天无意间看到一园友的博文实现Path2. ...

  6. OPEN(SAP) UI5 学习入门系列之二: 最佳实践练习(下)

    上期我们完成了一个简单的主从页面,但是页面是静态的,不能交互,功能也很简单,只有一个销售订单的列表. 我们今天就一鼓作气把代码全都写完,由于本次的代码量较大,所以只对重点代码部分进行讲解. 具体每个文 ...

  7. C#用委托实现异步,异步与多线程的异同

    异步与多线程的区别(转) 一.异步和多线程有什么区别?其实,异步是目的,而多线程是实现这个目的的方法.异步是说,A发起一个操作后(一般都是比较耗时的操作,如果不耗时的操作就没有必要异步了),可以继续自 ...

  8. Hibernate课程 初探一对多映射5-1 课程总结

    1 单方一对多 xml one-to-many 配置 实体类   一方添加保存多方集合 2 单方多对一 xml many-to-one 配置 实体类   多方添加保存一方引用 3 常用属性 inver ...

  9. Redis入门--(二)Redis的概述

    1.Redis的由来 创始人觉得Mysql不好用,就自己写了: 国内使用Redis的网站有新浪微博,知乎: 国外GitHub: VMWare也支持redis的开发 2.Redis的概述 官方提供的测试 ...

  10. wamp环境初步使用

    在wamp的www目录下部署页面,localhost/目录/index.html