并发管理器opp错误举例2

简介: 报错日志:[6/25/14 12:44:43 PM] [main] Starting GSF service with concurrent process id = 521892.

报错日志:

[6/25/14 12:44:43 PM] [main] Starting GSF service with concurrent process id = 521892.
[6/25/14 12:44:43 PM] [main] Initialization Parameters: oracle.apps.fnd.cp.opp.OPPServiceThread:2:0:max_threads=5
[6/25/14 12:44:43 PM] [Thread-31] Service thread starting up.
[6/25/14 12:44:43 PM] [Thread-32] Service thread starting up.
[6/25/14 12:44:45 PM] [OPPServiceThread0] Post-processing request 19365616.
[6/25/14 12:44:45 PM] [521892:RT19365616] Executing post-processing actions for request 19365616.
[6/25/14 12:44:45 PM] [521892:RT19365616] Starting XML Publisher post-processing action.
[6/25/14 12:44:45 PM] [521892:RT19365616] 
Template code: CSTCRACC
Template app:  BOM
Language:      zh

Territory:     CN
Output type:   RTF
[6/25/14 12:44:45 PM] [UNEXPECTED] [521892:RT19365616] java.sql.SQLException: Exhausted Resultset
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1224)
at oracle.apps.fnd.cp.util.CpUtil.getCanonicalLocalNode(CpUtil.java:127)
at oracle.apps.fnd.cp.opp.XMLPublisherProcessor.process(XMLPublisherProcessor.java:244)
at oracle.apps.fnd.cp.opp.OPPRequestThread.run(OPPRequestThread.java:176)


可以看到是一个java异常,参考oracle文档:

Output Post Processor Fails Due to java.sql.SQLException: Exhausted Resultset (文档 ID 740529.1)

In this Document
Symptoms
Cause
Solution
References
APPLIES TO:

BI Publisher (formerly XML Publisher) - Version 12.0 to 12.1 [Release 12.0 to 12.1]
Information in this document applies to any platform.
Oracle XML Publisher - Version: 11.5.0 to 11.5.10.2
Oracle XML Publisher - Version: 12.0.0 to 12.0.4
EXECUTABLE:XDOREPPB - Generate PDF from XML output and given template

Checked for relevance on 10-MAR-2013


SYMPTOMS

XML Publisher related concurrent request are failing with the following error in the request log file:

...
+------------- 1) PUBLISH -------------+
Beginning post-processing of request 661465 on node AS31 at 29-SEP-2008 17:17:42.
Post-processing of request 661465 failed at 29-SEP-2008 17:17:42 with the error message:
One or more post-processing actions failed. Consult the OPP service log for details.
+--------------------------------------+
...
 
The Output Post Processor (OPP) log file can be determine as per the instructions from Note 364547.1 Troubleshooting Oracle XML Publisher for Oracle Applications. Within this log file the following error is found:

...
[9/29/08 5:17:42 PM] [107442:RT661465] Executing post-processing actions for request 661465.
[9/29/08 5:17:42 PM] [107442:RT661465] Starting XML Publisher post-processing action.
[9/29/08 5:17:42 PM] [107442:RT661465] 
Template code: ARXUNAJR
Template app:  AR
Language:      en
Territory:     US
Output type:   PDF
[9/29/08 5:17:42 PM] [UNEXPECTED] [107442:RT661465] java.sql.SQLException: Exhausted Resultset
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:382)
at oracle.apps.fnd.cp.util.CpUtil.getCanonicalLocalNode(CpUtil.java:127)
at oracle.apps.fnd.cp.opp.XMLPublisherProcessor.process(XMLPublisherProcessor.java:210)
at oracle.apps.fnd.cp.opp.OPPRequestThread.run(OPPRequestThread.java:172)

[9/29/08 5:17:42 PM] [107442:RT661465] Completed post-processing actions for request 661465.
...
It can occur on any XML Publisher related report that makes use of the Output Post Processor and it does reproduce at will by simply running such a concurrent request.

CAUSE

The root cause of the problem is an incorrect network setup on the concurrent processing tier. The java stack shows that an unexpected error occurred within the getCanonicalLocalNode() method, part of the CpUtil.java source file. This method is responsible for returning the node name from FND_NODES that matches the local node name which is determined by the following java code:


93  ...
94  try {
95 
96  localNode = InetAddress.getLocalHost().getHostName().toUpperCase();
97 
98  ...


Subsequently, the localNode variable is part of the conditional clause of a SELECT statement on the FND_NODES table.

In some cases, the IP address of the server is resolved to two different hostnames due to the DNS server configuration.

myhost.oracle.com which is returned by the command line utility 'hostname' and myhost as shown by 'uname -a'
myotherhost.oracle.com which is returned by requesting the hostname from the DNS server based upon the server IP address (e.g. nslookup)
The hostname named myhost is registered in FND_NODES whereas myotherhost is not registered within the application.

SOLUTION

The network configuration needs to be corrected in such a way that the Oracle E-Business Suite and more in specific, the Output Post Processor is capable of resolving the correct hostname of the server on which it is running on. A network administrator my need to be consulted in order to resolve the issue.

NOTE:

It's found that there is a difference in the nodename returned by Java program & OS tools (uname-a/hostname).  Please perform the following to validate this:

1. cd $JAVA_TOP

2. Create PrintHostName.java and save below content
-------------save as PrintHostName.java --------------
import java.net.*;
import java.util.*;

public class PrintHostName
{
        public static void main(String[] args) throws Exception
        {
                System.out.println("OPP Host addr: " + InetAddress.getLocalHost().getHostName().toUpperCase());  //
}
}

-------------save as PrintHostName.java --------------

3. javac PrintHostName.java

4. java PrintHostName

5. The output in step 4 should match below:

$hostname

$uname -a

SQL> select UPPER(SUBSTR(node_name,1,DECODE(INSTR(node_name,'.'), 0, LENGTH(node_name), INSTR(node_name,'.') -1 ))),node_name from fnd_nodes  
where NVL(node_mode, 'O') = 'O'  ;


相关文章
你的应用进入了中断状态,但无任何代码显示,因为所有线程之前都在执行外部代码
你的应用进入了中断状态,但无任何代码显示,因为所有线程之前都在执行外部代码
2772 0
你的应用进入了中断状态,但无任何代码显示,因为所有线程之前都在执行外部代码
|
7月前
|
程序员
项目中的全局异常是如何处理的
项目中的全局异常处理通常包括对预期异常(程序员手动抛出)和运行时异常的管理。项目已提供`BaseException`作为基础异常类,用于手动抛出异常,并通过`GlobalExceptionHandler`进行全局处理。`
63 4
避免list的并发修改异常的几种方式
避免list的并发修改异常的几种方式
|
API C#
C#多线程(14):任务基础②
C#多线程(14):任务基础②
204 0
C#多线程(14):任务基础②
|
存储 API C#
C#多线程(15):任务基础③
任务基础一共三篇,本篇是第三篇,之后开始学习异步编程、并发、异步I/O的知识。 本篇会继续讲述 Task 的一些 API 和常用的操作。
175 0
在线程异步的场合下,如何将线程信息传递到调用处(2)
在线程异步的场合下,如何将线程信息传递到调用处
154 0
|
小程序 JavaScript DataX
小程序 — 实现左滑删除效果②
前言:这章我们为movable-view添加点击事件,完善左滑效果。 GitHub:https://github.com/Ewall1106/miniProgramDemo 1、 拖动事件 (1)在上一章中,我们给movable-view绑定了一个...
1248 0
|
数据库 网络架构