(转)Consult the OPP service log for details.

问题现象:

CUX:应付原始单据归档报表(XXX.rdf + XXX.rtf  组合类型报表)  请求报警告,输出为XML代码而非PDF文件。

   

错误信息如下:

节点 EBSDEMO 上的请求 3588993 于 18-01-2013 10:06:05 开始进行后期处理。
请求 3588993 的后期处理于 18-01-2013 10:08:07 失败,并显示错误消息:
One or more post-processing actions failed. Consult the OPP service log for details.

 

定位错误:

 

Sql代码
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 = '&id'
--请求编号; 

 

 通过上面代码可以查看报错请求的日志文件路径,在日志文件中可以看到很多类似如下错误提示:

  1. java.lang.StackOverflowError  
  2. oracle.xdo.parser.v2.XSLSort.quicksortObjects(XSLSort.java:466)  

从而可以肯定是由于排序导致内存溢出的问题。

 

解决方法:

1、查看该报表的排序代码是如何写的,发现该报表的排序居然是写在XXX.rtf 模版文件中的,代码如下:

  1. <?sort:ORDER_SEQUENCE_NUMBER;'ascending';data-type='number'?>  
  2. <?sort:JE_NUMBER;'ascending';data-type='text'?>  

2、将模版中的排序代码去掉,然后在XXX.rdf程序中添加排序代码。

3、运行测试OK.

==============================================

One or more post-processing actions failed. Consult the OPP service log for

请复查您的并发请求日志和(或)报表输出文件。

 

The actual error returned by the XML Publisher Core engine is captured in the OPP log file. There are three possible ways to obtain the OPP log file:

 

1.Directly from the file system based after identifying the corresponding OPP log file name using the following SQL statement:

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 = 11464425

 

/u01/perp/perpcomn/admin/log/perp_pebs1/FNDOPP814664.txt

 

2.Via the Forms application:

  1. Login to the application as SYSADMIN
  2. Responsibility: System Administrator
  3. Function: Concurrent --> Manager --> Administration
  4. Select the Output Post Processor
  5. Click on the Processes button
  6. Select the Concurrent Process which was active during the time that the request ran
  7. Click on the Manager Log button to open the Output Post Processor log file

 

3.Via the Oracle Application Manager (OAM)

  1. Login to the application as SYSADMIN
  2. Responsibility: System Administration
  3. Function: Oracle Applications Manager --> Concurrent Managers
  4. Select the Output Post Processor Service and click on View Details
  5. Click on View Processes
  6. Select the Concurrent Process which was active during the time that the request ran
  7. Click on the Log button to open the Output Post Processor log file

 

因为管理员启动参数来限制使用内存:-XX:-UseGCOverheadLimit,故导致数据量达到一定程度会报警告。

 

今天的并发阻塞的原因:

 并发输出提交处理程序报错:java.lang.reflect.InvocationTargetException Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded

        

解决方法:添加JVM的启动参数来限制使用内存:-XX:-UseGCOverheadLimit

 

XX:+UseGCOverheadLimit  默认启用  限制GC的运行时间。如果GC耗时过长,就抛OOM。

 

 

[3/21/16 3:13:12 PM] [OPPServiceThread0] Post-processing request 14563121.
[3/21/16 3:13:12 PM] [275321:RT14563121] Executing post-processing actions for request 14563121.
[3/21/16 3:13:12 PM] [275321:RT14563121] Starting XML Publisher post-processing action.
[3/21/16 3:13:12 PM] [275321:RT14563121]
Template code: CUXINVPHY
Template app:  CUX
Language:      zh
Territory:     00
Output type:   PDF
[3/21/16 3:13:13 PM] [UNEXPECTED] [275321:RT14563121] java.lang.OutOfMemoryError
        at java.lang.Class.getDeclaredFieldImpl(Native Method)
        at java.lang.Class.getDeclaredField(Class.java:510)
        at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1621)
        at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:63)
        at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:436)
        at java.security.AccessController.doPrivileged(AccessController.java:202)
        at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:424)
        at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:321)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1117)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1520)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1485)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1403)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1161)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1520)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1485)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1403)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1161)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:337)
        at oracle.ias.cache.group.HttpPacket.<init>(Unknown Source)
        at oracle.ias.cache.group.StreamHandler.write(Unknown Source)
        at oracle.ias.cache.group.EndPoint.write(Unknown Source)
        at oracle.ias.cache.group.Transport.syncSend(Unknown Source)
        at oracle.ias.cache.group.Sender.execute(Unknown Source)
        at oracle.ias.cache.group.Sender.run(Unknown Source)
 
[3/21/16 3:13:13 PM] [275321:RT14563121] Completed post-processing actions for request 14563121.

posted on 2017-03-26 22:03  清风易明月  阅读(437)  评论(0)    收藏  举报

导航