2013-08-09 6 views
1

오라클 웹 애플리케이션에서 매우 오래된 보고서 생성 함수를 리팩토링하고 있습니다. JavaScript를 사용하여 URL을 구성하고 보고서를 실행하여 보고서를 실행했습니다. PL/SQL 프로 시저 (mod_pl/SQL을 통해 호출)에서 데이터베이스에서 처리하려고합니다. 나는 그렇게 utl_http.begin_request을 사용하려고하지만, 출력 파일 (PDF 형식 약 20 페이지, 1.5M) 큰 가끔 때, 나는 오류 접수 : 요청은 매우 간단 보내는pl/sql 프로 시저에서 oracle 리포트를 실행하십시오.

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, 도움을 주셔서 감사합니다. 보고서 서버에 로그온하여 프로그램에서이 예외가 발생한 후에도 보고서가 계속 실행되고 있으며 마지막으로 succefully을 완료했습니다. 여러 번 테스트 한 결과 요청을 시작한 후 5 분이 지나면 예외가 발생했습니다. 어떤 종류의 보고서를 실행하고 어떤 크기 (물론, 모든 큰 크기, 5 분 이상 실행)이었습니다. 오라클 응용 프로그램 서버의 구성과 관련이 있는지 궁금합니다.

누구에게이 아이디어가 있습니까? 많은 감사.

+0

'SRW'은 Oracle Reports와 함께 설치된 [이벤트 기반 게시 API] (http://docs.oracle.com/cd/E21764_01/bi.1111/b32121/pbr_evnt001.htm#i1007523 :) 패키지입니다. – ThinkJet

+0

보고 할 매개 변수를 게시하려면 [utl_http.write_text] (http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_http.htm#i1027870)를 사용하고 [utl_http.read_raw] (http : //docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_http.htm#i1026963) 데이터를 읽으시겠습니까? 보고서를 호출하는 데 사용 된 정확한 코드를 게시 할 수 있습니까? – ThinkJet

+0

안녕하세요, @ ThinkJet, 매개 변수가 이미 URL에 위의 코드에서 'rpt_url'문자열은 "http : // localhost/reports/rwservlet? report = test_report.rdf&[email protected]_ID&destype=FILE&desformat=PDF&desname=/apps/입니다. app/test/lreports/test_report.pdf & p_name = tester & p_start_date = 042013 & p_code = L "로 변경하십시오. 난 그냥 요청을 보내, 다음 보고서 서버는 PDF를 생성, 읽기 또는 쓰기 또는 아무것도 다운로드 할 필요가 없습니다. 그래서 테스트 코드는 정확히 위와 동일합니다. –

답변

0

오라클 리포트 측에서는 큰 리포트를 생성하는 데 시간이 걸리므로 언젠가 타임 아웃이 발생할 수 있습니다. 요청을하기 전에 utl_http.set_ransfer_timeout procedure으로 시간 초과를 늘려보고 도움이되는지 확인하십시오.

+0

안녕하세요 @ ThinkJet, 답변 해 주셔서 감사합니다. 나는 utl_http.set_ransfer_timeout (1000)을 설정하기 전에 request.Now를 시작하기 전에 SRW 패키지를 설치하고 SRW.run_report를 사용하여 여전히 예외가 발생했습니다. "ORA-29259 : end-of-input reached", 10 개의 보고서를 처리했습니다. 한 번만, 그 중 9 명은 정상이었고, 가장 많은 데이터가 실패한 사람 만 실패했습니다. 실제로, 예외를 반환 한 후 몇 분 만에 보고서가 성공적으로 생성되었습니다. 많은 감사합니다 .. –

+0

@LuLiu이 오류가 발생하면 구체적 순간을 더 구체적으로 설명해 주실 수 있습니까 (예 : SRW 패키지를 사용하여 새 코드로 질문을 업데이트하고 ORA-29259를 생성하는 함수 호출을 표시하십시오)? 보고서 생성이 완료되었는지 확인하기 위해'SRW.REPORT_STATUS'를 사용 했습니까? 특정 정보는 귀하의 질문에 답변하는 데 도움이됩니다. – ThinkJet

관련 문제