1

我正在重构 ORACLE Web 应用程序中的一个非常古老的报告生成功能。它使用 JavaScript 构建 URL,发送到报告服务器以运行报告。我想要做的是在数据库中处理它,在 PL/SQL 过程中(通过调用mod_pl/SQL)。我尝试使用utl_http.begin_request这样做,但有时当输出文件很大(PDF 格式,大约 20 页,1.5M)时,我收到一个错误:

ORA-29259: end-of-input reached. 

发送请求的测试代码非常简单:

--------升级2013/08/27------------------------------------ ----------------------

 UTL_HTTP.set_transfer_timeout(1000);
 --some params setting....
 myIdent := SRW.RUN_REPORT(myPlist);  --here raise the exception(ORA-29273:request_failed; ORA-29259: end-of-input reached.) and procedure stoped.
 r_stat := SRW.report_status(myIdent,myPlist);

@ThinkJet,感谢您的帮助。我登录报表服务器,发现我程序中出现这个异常后报表还在运行,终于成功结束。我测试了很多次,发现每次启动请求后5分钟就出现异常,无论如何我正在运行的报告类型及其大小(当然,都是大尺寸,运行超过 5 分钟)。我想知道这是否与 Oracle 应用程序服务器上的配置有关?

有人对此有想法吗?非常感谢。

4

2 回答 2

1

ORA-29259 当 SRW.RUN_REPORT 是 ias 10g 时,这是由 httpd.conf 超时参数配置引起的 1.edit $ORACLE_HOME /Apache/Apache/conf/httpd.conf 更改“超时”大于您的报告运行时间 2.restart http服务器并对其进行测试。

opmnctl restartproc ias-component=HTTP_Server

于 2020-04-10T23:43:39.303 回答
0

Oracle Reports 需要一段时间来生成大型报告,因此有时可能会发生超时。尝试在发起请求之前通过utl_http.set_ransfer_timeout过程增加超时,并查看是否有帮助。

于 2013-08-13T07:32:19.403 回答