Oracle® Fusion Middleware Publishing Reports to the Web with Oracle Reports Services 11g Release 1 (11.1.1) B32121-02 |
|
![]() Previous |
![]() Next |
This section describes common problems and solutions. It contains the following topics:
Errors When Running Reports from Oracle Forms Using RUN_REPORT_OBJECT
Printing and Font Errors When Using In-process Reports Server
When running report requests with Reports Server, the report request may "hang" for various reasons. This can lead to stability issues if not noticed in time. This section highlights such scenarios, explains the issues, how you can identify such patterns, take corrective measures, and gather sufficient information to raise such issues with Oracle Support Services.
To begin with, it is important to understand how Reports Server identifies duplicate jobs. When a job is submitted to Reports Server, it checks whether a similar job exists in its job queue. If it finds a currently running job that is the same as the submitted job, then Reports Server considers the submitted job a duplicate job and the currently running job as the master job. Reports Server does not execute the duplicate job; instead, it waits for the master job to finish and passes the same output to the duplicate job. Although an idle engine is available, the duplicate job is not submitted to the engine. This is expected behavior and does not mean that the request is hanging.
In addition to the Solutions provided in this section, refer to Section 24.4, "Tuning Reports Server Configuration".
Note: Scalability improvements in Oracle Reports 10g Release 2 (10.1.2) and 11g Release 1 (11.1.1) improve the stability of Reports Server to ensure report requests complete successfully. |
Problem 1
Master job "hangs" before finishing.
Solution 1
If a master job hangs for some reason, then the next duplicate job in line is made the master job.
Check the engineResponseTimeOut
attribute in the engine
element of the rwserver
.conf
file (see Section 8.2.1.9, "engine"). Set this attribute judiciously to avoid server instability. This enables Reports Server to automatically detect and recover from this type of hanging situation. You can also use the showjobs
command to end the hanging job and allow Reports Server to continue processing other requests. For information about the showjobs
command, see Section A.8.9, "SHOWJOBS".
For example, consider a scenario where you have a set of reports. The largest report takes a maximum of 5 minutes to run. In this case, you can set engineResponseTimeOut
to 5 minutes.
Notes:
|
Despite setting the engineResponseTimeOut
attribute (or ENGINERESPONSETIMEOUT
keyword on the command line) judiciously, if you still encounter instability and crashes, perform the following steps to report the problem to Oracle Support Services:
Enable server tracing and logging (see Section 24.3.7, "Tracing Report Execution"). If it is not possible to enable tracing, enable logging alone by setting the log
element's option
attribute to failedJobs
in the rwserver
.conf
file (see Section 8.2.1.13, "log"). When you enable logging, you can see the failed job reports in the reports.log
file. Identify the report that is failing or causing the engine to hang.
Enable engine diagnostic logging by modifying the engine
element to include the diagnosis
property in the rwserver
.conf
file (see "Properties" in Section 8.2.1.9, "engine"), then run the report that you identified in Step 1 to reproduce the hang.
Report the hang to Oracle Support Services with the following information:
rwserver
.conf
file.
reports.log
file.
Engine diagnostic output when the hang is reproduced.
Report definition file so that Oracle Support Services can reproduce the problem.
Problem 2
Reports Server stops responding or crashes when running report requests, exhibited by any of the following:
When a job is submitted through a browser, the browser seems to hang (no response).
A job is not submitted to an engine although the engine is idle.
Web commands do not work and the browser times out after some time.
Scheduled jobs are not run.
Solution 2
Restart Reports Server to attempt to recover from this problem. If the problem persists, report it to Oracle Support Services with the following information:
rwserver
.conf
file.
Approximate load on Reports Server at the time of the hang.
Thread dump of Reports Server, which you can obtain as follows:
On Solaris, use the kill -3
server_pid
command when Reports Server hangs. This command writes the thread information to the console output. To redirect the thread information and error streams from the console to a file, modify the rwserver.sh
file in the $ORACLE_INSTANCE/config/reports/bin
directory. For example:
exec $ORACLE_INSTANCE/config/reports/bin/rwserver "$@" > threaddump.txt 2>&1
Note: This example is for the UNIX k shell. The code may be slightly different if you are using some other shell. |
If you are using the in-process Reports Server, use the Give kill -3
to WLS_REPORTS
managed server process. The thread dump will be in FMW_HOME/user_projects/domains/domain_name/servers/WLS_REPORTS/logs/WLS_REPORTS.out
On Windows, the kill -3
command does not work. Instead, at a command prompt, type the command specified in Table D-1 to start Reports Server; when the issue is reproduced, shift focus to the command prompt window, then press Control+Break
to get the thread dump.
Table D-1 Commands to Obtain Thread Dump on Windows
Reports Server Version | Command |
---|---|
11.1.1.1.0 |
Set the environment variable ORACLE_HOME/jdk/bin/java –Xmx256M –classpath %REPORTS_CLASSPATH% oracle.reports.server.RWServer oracle_home=ORACLE_HOME server=server_name showui=yes|nobatch=yes|no |
10.1.2.0.2 |
ORACLE_HOME/jdk/bin/java –Xmx256M –classpath %REPORTS_ CLASSPATH% oracle.reports.server.RWServer oracle_ home=ORACLE_HOME server=server_name showui=yes|no batch=yes|no |
9.0.4 |
ORACLE_HOME/jdk/bin/java -Xbootclasspath/p:$OH/vbroker4/lib/vbjboot.jar –Xmx256M –classpath %REPORTS_CLASSPATH% oracle.reports.server.RWServer oracle_home=ORACLE_HOME server=server_name showui=yes|no batch=yes|no |
9.0.2 |
ORACLE_HOME/jdk/bin/java –Xmx256M –classpath %REPORTS_ CLASSPATH% oracle.reports.server.RWServer oracle_ home=ORACLE_HOME server=server_name showui=yes|no batch=yes|no |
Problem 3
The in-process Reports Server fails to start and the browser displays the following message while trying to run a report with the in-process Reports Server:
REP-52266: The in-process Reports Server failed to start.
When the standalone server is started, it shuts down immediately.
Solution 3
Enable tracing (see Section 24.3.7, "Tracing Report Execution") and start the in-process Reports Server. The default Reports Server rwserver_diagnostic.log
file should capture the actual cause of the problem:
Reports Server has failed to initialize one of the pluggable data sources or destinations. Correct the configuration for the pluggable data source (PDS) or destination and restart Reports Server. For general information about PDSs, see the Pluggable Data Sources section of the Oracle Reports online Help. For information about the Pluggable Data Sources, see Chapter 14, "Configuring and Using the Pluggable Data sources".
The engine has failed to start. Check the rwEng_{engNo}_diagnostic.log
file in the $DOMAIN_HOME/servers/WLS_REPORTS/logs/reports
directory. This file must contain the following lines:
Debug 50103 (EngineImpl:EngineImpl): CInitEngine returns 0
Info 55003 (RWEngine:init): Register this engine to Oracle Reports Server server_name
If the rwEng_{engNo}_diagnostic.log
file does not contain these lines, it means that the engine has failed to start.
If the CinitEngine
return value in the file is negative, then it represents an error in initializing the Reports Engine.If the CinitEngine
return value is not equal to zero, check the System environment variable PATH if you are using Windows and the LD_LIBRARY_PATH
environment variable in setdomainenv.sh
file which is located in DOMAIN_HOME/bin
if you are using Solaris. For the in-process Reports Server, the values of PATH
and LD_LIBRARY_PATH
are taken from the System environment variable PATH for windows and LD_LIBRARY_PATH
in setdomainenv.sh
file which is located in DOMAIN_HOME/bin
for Solaris.
Problem 4
Reports Engine crashes or hangs when running report requests.
Solution 4
Case 1: Consider the scenario where Reports Server is running thousands of reports every day, printing reports, and publishing them to the Web. In this scenario, the browser may wait for the response and eventually time out. Even Web commands to see the job queue may not work.
Turn on tracing (see Section 24.3.7, "Tracing Report Execution") and when this problem occurs, take a thread dump by running the kill -3
server_pid
command on Solaris (as described under Solution 2. The following lines of code are the result of running the kill -3
server_pid
command. These lines indicate a hang when Reports Server is trying to write the report to a network drive:
"RequestProcessor[7]" daemon prio=5 tid=0x1835f210 nid=0x181c waiting on condition [224cf000..224cfd88] at java.io.FileOutputStream.write (Native Code) at oracle.reports.utility.copyFile (Utility.java:424) at oracle.reports.server.DesFile.sendFile(DesFile.java:74) at oracle.reports.server.Destination.send(Destination.java:484) at oracle.reports.server.JobObject.distribute(JobObject.java:1582) at oracle.reports.server.JobManager.updateJobStatus(JobManager.java:2231) at oracle.reports.server.EngineCommImpl.updateEngineJobStatus( EngineCommImpl.java:134) at oracle.reports.server._EngineCommImplBase._invoke( _EngineCommImplBase.java:94) at com.sun.corba.se.internal.corba.ServerDelegate.dispatch (ServerDelegate.java:353) at com.sun.corba.se.internal.iiop.ORB.process(ORB.java:280) at com.sun.corba.se.internal.iiop.RequestProcessor.process (RequestProcessor.java:81) at com.sun.corba.se.internal.orbutil.ThreadPool$PooledThread.run (ThreadPool.java:106)
The trace file for this scenario is as follows:
[2005/5/31 6:26:47:321] Info 50132 (JobObject:reset): jobid = 15 Get command line: server=vin report=c:\backup\reps\emp.rdf destype=file desformat=html desname=c:\test.html userid=scott@ora9i authid=vnhegde [2005/5/31 6:26:48:92] Debug 50103 (JobManager:firstToRun): job 15 is first to run [2005/5/31 6:26:48:212] Debug 50103 (ConnectionImpl:runJob): Job queue for jobid = 15 is 0 [2005/5/31 6:26:48:212] Debug 50103 (ConnectionImpl:runJob): jobid = 15 is in current queue [2005/5/31 6:26:48:212] Debug 50103 (ConnectionImpl:runJob): Calling findDuplicatedJob for jobid = 15 [2005/5/31 6:26:48:212] Debug 50103 (JobManager:findDuplicatedJob): Found no duplicated job for job 15 [2005/5/31 6:26:48:212] Debug 50103 (ConnectionImpl:runJob): No Duplicate jobs for jobid = 15 [2005/5/31 6:26:48:212] Debug 50103 (ConnectionImpl:runJob): Job 15 is Enqueued [2005/5/31 6:26:48:212] Debug 50103 (JobManager:firstToRun): job 15 is first to run [2005/5/31 6:26:48:212] Debug 50103 (JobManager.runJobLocal): Trying to get engine for Job 15 [2005/5/31 6:26:48:212] Debug 50103 (EngineManager:getIdleEngine): Target max engines = 1 [2005/5/31 6:26:48:222] Debug 50103 (EngineManager:getIdleEngine): rwEng-0 is used = true [2005/5/31 6:26:48:222] Debug 50103 (EngineManager:getIdleEngine): rwEng-0 state is 1 [2005/5/31 6:26:48:222] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Reserved [2005/5/31 6:26:48:222] Debug 50103 (JobManager.runJobLocal): Job 15 got Engine rwEng-0 [2005/5/31 6:26:48:222] Debug 50103 (JobManager:runJobInEngine): Job 15 calling setCommand on engine rwEng-0 [2005/5/31 6:26:48:222] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 3 [2005/5/31 6:26:48:222] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Running [2005/5/31 6:26:48:222] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 5 [2005/5/31 6:26:48:222] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Idle [2005/5/31 6:26:48:232] Debug 50103 (JobManager:runJobInEngine): Send job 15 to engine rwEng-0 [2005/5/31 6:26:48:232] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 3 [2005/5/31 6:26:48:232] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Running [2005/5/31 6:26:48:482] State 56016 (JobManager:updateJobStatus): Job 15 status is: Running the report Initializing report [2005/5/31 6:26:48:482] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 15 [2005/5/31 6:26:50:856] State 56016 (JobManager:updateJobStatus): Job 15 status is: Running the report Formatting page 1 [2005/5/31 6:26:50:856] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 15 [2005/5/31 6:26:52:468] Debug 50103 (RWCacheItem:addFile): add file 'test33347112.htm' for job 15 [2005/5/31 6:26:52:468] Debug 50103 (RWCache:updateCurrentCapacity): Current cache capacity is 197239
In this trace file, note the following:
A job with ID 15
is submitted at 6:26:47:321
A duplicate job is checked for at 6:26:48:212
rwEng-0
is obtained at 6:26:48:222
The engine started running at 6:26:48:222
The first page is formatted at 6:26:50:856
After this there is no update on the job. The Finished successfully
line is not present. This indicates that there is a problem with the job.
The following example shows a trace file for a job that finished successfully:
[2005/5/31 6:25:57:198] Info 50132 (JobObject:reset): jobid = 14 Get command line: server=vin report=c:\backup\reps\emp.rdf destype=file desformat=html desname=c:\test.html userid=scott@ora9i authid=vphegde [2005/5/31 6:25:58:80] Debug 50103 (ConnectionImpl:runJob): Job queue for jobid = 14 is 0 [2005/5/31 6:25:58:90] Debug 50103 (ConnectionImpl:runJob): jobid = 14 is in current queue [2005/5/31 6:25:58:90] Debug 50103 (ConnectionImpl:runJob): Calling findDuplicatedJob for jobid = 14 [2005/5/31 6:25:58:90] Debug 50103 (JobManager:findDuplicatedJob): Found no duplicated job for job 14 [2005/5/31 6:25:58:90] Debug 50103 (ConnectionImpl:runJob): No Duplicate jobs for jobid = 14 [2005/5/31 6:25:58:90] Debug 50103 (ConnectionImpl:runJob): Job 14 is Enqueued [2005/5/31 6:25:58:90] Debug 50103 (JobManager:firstToRun): job 14 is first to run [2005/5/31 6:25:58:90] Debug 50103 (JobManager.runJobLocal): Trying to get engine for Job 14 [2005/5/31 6:25:58:90] Debug 50103 (EngineManager:getIdleEngine): Target max engines = 1 [2005/5/31 6:25:58:90] Debug 50103 (EngineManager:getIdleEngine): rwEng-0 is used = true [2005/5/31 6:25:58:90] Debug 50103 (EngineManager:getIdleEngine): rwEng-0 state is 1 [2005/5/31 6:25:58:90] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Reserved [2005/5/31 6:25:58:90] Debug 50103 (JobManager.runJobLocal): Job 14 got Engine rwEng-0 [2005/5/31 6:25:58:90] Debug 50103 (JobManager:runJobInEngine): Job 14 calling setCommand on engine rwEng-0 [2005/5/31 6:25:58:100] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 3 [2005/5/31 6:25:58:100] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Running [2005/5/31 6:25:58:100] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 5 [2005/5/31 6:25:58:100] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Idle [2005/5/31 6:25:58:100] Debug 50103 (JobManager:runJobInEngine): Send job 14 to engine rwEng-0 [2005/5/31 6:25:58:110] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 3 [2005/5/31 6:25:58:110] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Running [2005/5/31 6:25:58:350] State 56016 (JobManager:updateJobStatus): Job 14 status is: Running the report Initializing report [2005/5/31 6:25:58:350] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 14 [2005/5/31 6:26:0:663] State 56016 (JobManager:updateJobStatus): Job 14 status is: Running the report Formatting page 1 [2005/5/31 6:26:0:663] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 14 [2005/5/31 6:26:2:256] Debug 50103 (RWCacheItem:addFile): add file 'test54106877.htm' for job 14 [2005/5/31 6:26:2:256] Debug 50103 (RWCache:updateCurrentCapacity): Current cache capacity is 182329 [2005/5/31 6:26:2:286] State 56016 (JobManager:updateJobStatus): Job 14 status is: Finished successfully [2005/5/31 6:26:3:7] Debug 50103 (JobManager:notifyWaitingJobs): Master job 14 notify its duplicated jobs. [2005/5/31 6:26:3:7] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 14 [2005/5/31 6:26:3:7] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 1 [2005/5/31 6:26:3:7] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Ready [2005/5/31 6:26:3:57] Info 56013 (ConnectionManager:release): Connection 1 is released
In this trace file, after formatting the page 1, note the following:
The job finished successfully at 6:26:2:286
Duplicate jobs are notified at 6:26:3:7
Connection is released at 6:26:3:57
These lines were not present in the first example. All jobs must contain these lines in the Reports Server trace files. A missing event or abrupt end means that the job has not finished successfully and is a potential cause for the hang.
Case 2: Consider the scenario where the following error displays:
REP-56048: Engine rwEng-0 crashed, job Id: 17
In this scenario, check the Reports Server and engine trace files. A typical crash resembles the following in the Reports Server trace file:
[2005/6/1 3:38:35:156] Exception 50125 (org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe at com.sun.corba.se.internal.iiop.IIOPConnection.purge_ calls(IIOPConnection.java:438) at com.sun.corba.se.internal.iiop.ReaderThread.run(ReaderThread.java:70) ): Internal error org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe [2005/6/1 3:38:35:156] Info 56029 (EngineManager:shutdownEngine): Shutting down engine rwEng-0 [2005/6/1 3:38:36:137] Exception 50125 (org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No at com.sun.corba.se.internal.iiop.ConnectionTable.getConnection (ConnectionTable.java:148) at com.sun.corba.se.internal.iiop.ConnectionTable.getConnection (ConnectionTable.java:65) at com.sun.corba.se.internal.iiop.GIOPImpl.getConnection(GIOPImpl.java:67) at com.sun.corba.se.internal.corba.ClientDelegate.createRequest (ClientDelegate.java:652) at com.sun.corba.se.internal.corba.ClientDelegate.createRequest (ClientDelegate.java:594) at com.sun.corba.se.internal.corba.ClientDelegate.request (ClientDelegate.java:886) at org.omg.CORBA.portable.ObjectImpl._request(ObjectImpl.java:431) at oracle.reports.engine._EngineClassStub.shutdown(_EngineClassStub.java:173) at oracle.reports.server.EngineManager.shutdownEngine(EngineManager.java:1354) at oracle.reports.server.JobManager.runJobInEngine(JobManager.java:974) at oracle.reports.server.JobManager.runJobLocal(JobManager.java:1779) at oracle.reports.server.JobManager.dispatch(JobManager.java:1045) at oracle.reports.server.ConnectionImpl.runJob(ConnectionImpl.java:1274) at oracle.reports.server._ConnectionImplBase._invoke (_ConnectionImplBase.java:401) at com.sun.corba.se.internal.corba.ServerDelegate.dispatch (ServerDelegate.java:353) at com.sun.corba.se.internal.iiop.ORB.process (ORB.java:280) at com.sun.corba.se.internal.iiop.RequestProcessor.process (RequestProcessor.java:81) at com.sun.corba.se.internal.orbutil.ThreadPool$PooledThread.run (ThreadPool.java:106) ): Internal error org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No [2005/6/1 3:38:36:147] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Shutdown [2005/6/1 3:38:36:147] Info 56047 (EngineManager:remove): Reports Server shut down engine rwEng-0 [2005/6/1 3:38:36:147] State 56016 (JobManager:updateJobStatus): Job 17 status is: Terminated with error: REP-56048: Engine rwEng-0 crashed, job Id: 17 [2005/6/1 3:38:36:157] Debug 50103 (JobManager:notifyWaitingJobs): Master job 17 notify its duplicated jobs. [2005/6/1 3:38:36:157] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 17 [2005/6/1 3:38:36:157] Exception 56048 (): Engine rwEng-0 crashed, job Id: 17 oracle.reports.RWException: IDL:oracle/reports/RWException:1.0 at oracle.reports.server.JobManager.runJobInEngine(JobManager.java:1009) at oracle.reports.server.JobManager.runJobLocal(JobManager.java:1779) at oracle.reports.server.JobManager.dispatch(JobManager.java:1045) at oracle.reports.server.ConnectionImpl.runJob(ConnectionImpl.java:1274) at oracle.reports.server._ConnectionImplBase._invoke (_ConnectionImplBase.java:401) at com.sun.corba.se.internal.corba.ServerDelegate.dispatch (ServerDelegate.java:353) at com.sun.corba.se.internal.iiop.ORB.process (ORB.java:280) at com.sun.corba.se.internal.iiop.RequestProcessor.process (RequestProcessor.java:81) at com.sun.corba.se.internal.orbutil.ThreadPool$PooledThread.run (ThreadPool.java:106)
In the engine trace file, the last few lines of the crash trace resemble the following:
[2005/6/1 3:38:34:575] (rwfdt:rwfdtprint) Distributing the report [2005/6/1 3:38:34:585] (rwfdt:rwfdtpredo) running [2005/6/1 3:38:34:585] (rwfdt:rwfdtpredo) no preformat of pages requested, quit [2005/6/1 3:38:34:585] (rwfdt:rwfdtni_NextInstance) running [2005/6/1 3:38:34:595] (rwfdt:rwfdtni_NextInstance) quit [2005/6/1 3:38:34:595] (rwfdt:rwfdtgcf_GenCachefile) running [2005/6/1 3:38:34:615] (rwfdt:rwfdtgcf_GenCachefile) Cache file is D:\orawin\reports\cache\03564661.htm [2005/6/1 3:38:34:615] (rwfdt:rwfdtgcf_GenCachefile) quit [2005/6/1 3:38:34:615] (rwfdt:rwfdtprint) caching output from backend drivers [2005/6/1 3:38:34:755] (C Engine)
Note: The engine trace file ends abruptly whenever the engine crashes. |
Action: Identify the report that is causing the engine crash. You can do this by identifying the job ID. In the preceding examples, the engine crashed while running jobid 17
. In the server trace file, search for the jobid = 17 Get command line
string. This line contains the complete command line that includes the report name also. Enable tracing and engine diagnosis. Run the problematic report multiple times to reproduce the crash. When the crash is reproduced, pass on the trace files and diagnosis output to Oracle Support Services for analysis.
REP-50125
is a common error message issued in multiple situations involving Reports Server:
REP-50125: Caught exception: {0}
Cause: Oracle Reports has caught an internal exception.
Action: Contact Oracle Support Services for additional assistance.
Problem 1
The Cause and Action in the help topic for REP-50125
do not contain enough information to effectively identify and diagnose the problem.
Solution 1
With Oracle Reports 10g Release 2 (10.1.2), the following new error messages addressed specific scenarios to provide focused troubleshooting assistance in the Cause and Action exposed in the help topics:
REP-56126: Failed to parse server config file {0}
Cause: Failed to parse server config file. XML syntax is wrong.
Action: Correct the server config file and start the server.
REP-56127: Failed to decrypt <{0}> element
Cause: Decrypt call failed on the element.
Action: Please make sure encrypted attribute is set properly for the element.
REP-56128: Failed to initialize {0} destination. Nested Exception: {1}
Cause: Destination initialization failed.
Action: Please check and correct the configuration for the destination.
Problem 2
REP-50125
displays when starting up Reports Server.
Solution 2
Refer to Note 289748.1 on Oracle MetaLink at http://metalink.oracle.com
: Troubleshooting Problems When Starting Up Reports Server.
Problem 3
REP-50125
displays when running report requests.
Solution 3
Refer to Note 290827.1 on Oracle MetaLink at http://metalink.oracle.com
: Troubleshooting Failed Reports Requests Issued Against Reports Server.
Problem 4
REP-50125
displays with segmentation violation when starting Reports Server on SLES-8/UnitedLinux 1.0.
Solution 4
With Oracle Reports 10g Release 2 (10.1.2), SLES8 and SLES9 were supported. However, Oracle Reports 11g Release 1 (11.1.1) does not support UnitedLinux 1.0, so you cannot use this platform to run report requests.
Problem 5
REP-50125
displays when running reports on Linux with openmotif.
Solution 5
Only openmotif 2.1.30 (not higher) is supported for Oracle Reports 6i, 9i, and 10g on Linux.
Long running report requests submitted through Oracle Reports Servlet (rwservlet
) may not succeed or cause crashing/hanging engines and timeouts on dependent AS components.
Problem
A report that runs for a long time with rwservlet
does not finish.
Solution
Perform the following checks:
If you are running the report synchronously through your Web browser, verify that the failure is not caused by a timeout on the HTTP server. Submit the same job asynchronously; if it finishes successfully, modify the HTTP server timeout in the application server configuration or consider executing your long running reports asynchronously (which is the suggested method). You can leverage the Reports Server notification feature to inform your users when their job has finished.
Verify that your overall response time of the server has not had any significant changes, by looking at the Reports Server statistics in Enterprise Manager.
Verify that our database server is responding in a normal manner. Sometimes database load can have a significant impact on the performance, especially on long running reports.
Deploying reports on multiple platforms may result in font issues.
Problem
When you deploy a report on multiple platforms, font rendering and mapping is not consistent across all platforms.
Solution
With Oracle Reports 10g Release 2 (10.1.2), this issue was addressed in new documentation in the following chapters:
Chapter 9, "Managing Fonts in Oracle Reports" (in particular, see Section 9.1, "Using Fonts" for an understanding of the font handling mechanism in Oracle Reports).
Chapter 11, "Using PDF in Oracle Reports" (in particular, see Section 11.2.2, "Font-Related Features").
Chapter 12, "Font Model and Cross-Platform Deployment" (in particular, see Section 12.3.1, "Font Availability On Different Platforms" and Section 12.3.2, "Fixing Font-Related Issues").
REP-56048
is a common error message issued when running a report (for example, using rwservlet
, rwclient
, or through Oracle Forms) on UNIX. The Reports Server passes the job to a Report Engine that is responsible for running the report. The Report Engine crashes, resulting in this error:
REP-56048: Engine {0} crashed
Cause: Reports Server detected the specified engine crashed.
Action: Reports Server should restart another engine. Report the problem to Oracle Support Services with the test case that causes engine crash.
Refer to the solutions below and to Solution 4 in Section D.1.1, "Hanging Report Requests" to attempt to resolve the problem. If REP-56048 persists, perform the following steps to report the problem to Oracle Support Services:
Enable server tracing and logging (see Section 24.3.7, "Tracing Report Execution"). If it is not possible to enable tracing, enable logging alone by setting the log
element's option
attribute to failedJobs
in the rwserver
.conf
file (see Section 8.2.1.13, "log"). When you enable logging, you can see the failed job reports in the reports.log
file. Identify the report that is failing or causing the engine to crash.
Enable engine diagnostic logging by modifying the engine
element to include the diagnosis
property in the rwserver
.conf
file (see "Properties" in Section 8.2.1.9, "engine"), then run the report that you identified in Step 1 to reproduce the crash.
Report the crash to Oracle Support Services with the following information:
rwserver
.conf
file.
reports.log
file.
Engine diagnostic output when the crash is reproduced.
Report definition file so that Oracle Support Services can reproduce the problem.
Problem 1
REP-56048
displays when running reports on UNIX platforms, and character sets defined in NLS_LANG
are other than WE8ISO8859P1
or IW8ISO8859P8
.
Solution 1
Modify entries in Tk2Motif.rgb
for mapping Oracle character set names and XLFD's CHARSET_REGISTRY
to CHARSET_ENCODING
(the last two fields; for example, iso8859-1
). For more information, see:
You can also try to run this report with Reports Runtime (rwrun
) to verify the environment settings before running it through the Report Engine.
Problem 2
REP-56048
displays when running reports on UNIX platforms, and DISPLAY
environment variable is not set.
Solution 2
With Oracle Reports 10g Release 1 (9.0.4), the REPORTS_DEFAULT_DISPLAY
environment variable removes the dependency on the DISPLAY
environment variable. By default, REPORTS_DEFAULT_DISPLAY=YES
. Make sure that REPORTS_DEFAULT_DISPLAY
has not been set to NO
.
Note: This feature is not available on the IBM AIX platform due to lack of functionality in the IBM JDK 1.4 (does not support headless option). On AIX, setREPORTS_DEFAULT_DISPLAY=NO and set DISPLAY to the active X-Windows display surface. |
For more information, see Section B.1.41, "REPORTS_DEFAULT_DISPLAY".
Problem 3
REP-56048
displays when tracing is enabled while running a big report.
Solution 3
If tracing is enabled, Reports Engine might crash for reports with large output. This may be due to the size of the trace file and that there was insufficient disk space, memory, or processor capacity available to create it. To avoid this error, enable engine diagnostic logging only by modifying the engine
element to include the diagnosis
property in the rwserver
.conf
file (see "Properties" in Section 8.2.1.9, "engine"), when diagnostic information is required to troubleshoot a problem with a report. You can also restrict the trace file generated using the traceModule
attribute of the trace
element in the rwserver
.conf
configuration file.
For general information about tracing, see Section 24.3.7, "Tracing Report Execution".
Problem 4
REP-56048
displays when DISTRIBUTE=YES
on UNIX.
Solution 4
Distribution fails on UNIX if the PRINTER
environment variable is not set to a valid printer when one of the destinations specified in the distribution file is a printer. Set the following environment variables:
PRINTER=printer_name; export PRINTER TK_PRINTER=printer_name; export TK_PRINTER TK_PRINT_STATUS="echo %n is valid"; export TK_PRINT_STATUS TK_PRINT=echo; export TK_PRINT
In ORACLE_INSTANCE/config/FRComponent/frcommon/guicommon/tk/admin/uiprint.txt,
add the following line:
printer_name:PostScript:1:test:default.ppd:
For more information on report distribution, see Chapter 20, "Creating Advanced Distributions".
Problem 5
REP-56048
displays when printing a report on UNIX.
Solution 5
Oracle Reports uses the shell script rwlpr.sh
for printing on UNIX. Directly modifying this file is not supported. Please contact Oracle Support Services for assistance.
For more information on printing on UNIX, see Chapter 10, "Printing on UNIX with Oracle Reports".
Problem 6
REP-56048
displays when running a report containing graphics on UNIX.
Solution 6
This error may result if Oracle Reports is linked against a version of Motif other than the operating system's default. Refer to the Oracle Reports chapter in the Oracle Fusion Middleware Release Notes for Microsoft Windows for the correct version of Motif to which to link.
Problem 7
REP-56048
displays when generating delimited report output for a matrix report.
Solution 7
Generate the report output to DelimitedData (DESFORMAT=DELIMITEDDATA
) or spreadsheet (DESFORMAT=SPREADSHEET
) output instead of Delimited. DelimitedData supports large reports, but the output in Microsoft Excel displays only data (as defined by the report data model), no layout information. To generate report output that preserves the formatting defined in report layout, use the output format DESFORMAT=SPREADSHEET
.
For more information on delimited and spreadsheet output, see "About delimited output" and "About spreadsheet output" in the Oracle Reports online Help (and also in the "Advanced Concepts" chapter in the Oracle Reports Building Reports manual). Also see Section A.5.27, "DESFORMAT".
Problem 8
REP-56048
displays when running a report through the Reports Engine when none of the previous solutions resolve the problem.
Solution 8
This error may be related to your environment settings or caused by the report itself. By checking the Oracle Reports Servlet (rwservlet
) showjobs
page for your Reports Server, you should be able to determine the job that resulted in the error. If you are on a UNIX machine, there should be a core dump created in your environment. To facilitate searching for related bugs, extract a stack trace from this core dump. Note that the executable should be java
rather than rwrun
.
In previous releases, to get a stack trace from the core file, you ran a debugger on the runtime component. This is still applicable if you are able to reproduce the problem with only the rwrun
component. However, if the crash occurs only through the Reports Server, then the engine will be called using a Java wrapper, and you must run the debugger on the Java executable. This will automatically load any Oracle Reports libraries.
For example:
dbx java core
This example is for dbx
. Once you have the stack trace, you will be able to search Oracle MetaLink at http://metalink.oracle.com
for any related issues using the last few calls in the stack.
If a particular job seems to be causing the problem, then the next step would be to try running that report with rwclient
and rwrun
. Running with rwclient
removes the Web component from the environment. Running with rwrun
is equivalent to bypassing the Reports Server and running with just the engine.
Bidirectional support enables you to display report output in either a left-to-right or right-to-left orientation, depending on the requirements of your audience. Font issues with right-to-left languages generate imperfect report output.
Problem
Misalignment of right-aligned text and limitations requiring fixed width fonts.
Solution
With Oracle Reports 10g Release 2 (10.1.2), this issue was addressed with improvements to PDF output with font subsetting enabled for languages that read right to left (such as Hebrew and Arabic), ensuring that text will be accurately right-aligned. However, on UNIX platforms, you may see some misalignment for right-aligned text.
To resolve font issues related to right-to-left text, refer to the information in the following sections:
Section 23.4, "Bidirectional Support" discusses the options available to you in designing reports for right-to-left languages.
Section 11.4, "Generating a Bidirectional (BiDi) PDF File" outlines the steps involved in generating a PDF file for bidirectional (BiDi) languages.
Section B.1.30, "REPORTS_ALLOW_DB_CONNECT_STRING" This environment variable allows you to use DB connection strings in the userid parameter.
Section B.1.31, "REPORTS_BIDI_ALGORITHM" describes the use of this environment variable, which switches the bidirectional (BiDi) layout algorithm for BiDi languages (for example, Arabic or Hebrew).
Section 12.6, "Generating Multibyte PDF Output" includes an example of a workaround for fixed width font on UNIX.
The most secure approach for calling Oracle Reports from Oracle Forms on the Web is to use Oracle Reports Services in combination with RUN_REPORT_OBJECT
. For detailed information about using RUN_REPORT_OBJECT
to call Oracle Reports from Oracle Forms, refer to the Oracle Application Server 10g Integrating Oracle Reports in Oracle Forms Services Applications white paper on OTN (http://otn.oracle.com/products/forms/pdf/10g/frm10gsrw10g.pdf)
.
Also refer to Oracle Fusion Middleware Forms Services Deployment Guide.
Problem 1
RUN_REPORT_OBJECT
generates the following error:
FRM-41214: Unable to run report
.
Solution 1
When deploying a report over the Web with output to be shown in the browser window, DESTYPE
should be set to CACHE
, not SCREEN
or PREVIEW
. To display the output of report in the browser use WEB.SHOW_DOCUMENT
, rather than RUN_REPORT_OBJECT
.
Problem 2
RUN_REPORT_OBJECT
generates the following error:
FRM-41213: Unable to connect to the report server
server_name
.
Solution 2
Check the following:
Ensure that the Reports Server being referenced in the RUN_REPORT_OBJECT
code is started.
Make sure that the Oracle WebLogic Server instance for Oracle Reports is started.
Make sure that parameters being passed to RUN_REPORT_OBJECT
have no spaces in their values, or are enclosed in single quotes.
Problem 3
RUN_REPORT_OBJECT
generates the following error:
REP-503 You did not specify the name of a report
.
Solution 3
Make sure that the report name is specified in the Property Inspector of the Report object in the Oracle Forms Object Navigator.
Problem 4
Unable to run report from a form and pass parameter from a form to the report.
Solution 4
Check the following:
Make sure that you are passing the parameters in the proper format from Oracle Forms. the initial value for the parameter is specified in the Property Inspector of the parameter in Reports Builder.
Make sure that the initial value for the parameter is specified in the Property Inspector of the parameter in Reports Builder.
Try passing the command line in a Before Report trigger or by using the report Parameter Form.
If the issue persists, enable report tracing (see Section 24.3.7, "Tracing Report Execution") to pinpoint the source of the problem.
Problem 5
Using a report Parameter Form (PARAMFORM=YES
) in conjunction with RUN_REPORT_OBJECT
fails with "Internal Server Error
".
Solution 5
Refer to the Oracle Forms Services - Using Run_Report_Object() to call Reports with a parameter form white paper on OTN (http://otn.oracle.com/products/forms/pdf/10g/frmrepparamform.pdf
).
Generating a report to delimited output to display in Microsoft Excel is a common requirement, which can be accomplished in a number of ways. Users are often unsure of which method to choose.
Problem
Which delimited output solution is best for given requirements?
Solution
Depending on your report definition and output display requirements, choose the appropriate method for generating your report to delimited output for Microsoft Excel:
Requirement: You have a paper layout report, which you want output to Microsoft Excel, but do not need rich formatting of the report layout.
Output Solution: Generate your report to delimited output:
DESFORMAT=DELIMITED
DESFORMAT=DELIMITEDDATA
(for use when you have problems running large volume reports with DELIMITED
)
Requirement: You have a paper report, which you want to output to Microsoft Excel, including the rich formatting of the report layout.
Output Solution: Generate your report to spreadsheet output:
DESFORMAT=SPREADSHEET
Requirement: You have a paper report, which you want to output to Microsoft Excel, including the rich formatting of the report layout. Additionally, you would like to deploy your report as a JSP.
Output Solution: Since this is a JSP report, you cannot directly generate to a .xls
file (DESTYPE=FILE
),but you can save the output that displays in your browser as a .xls file. Refer to the Oracle Reports Building Reports manual to implement this solution using <rw:include>
: Chapter 29, "Deploying a Web Layout Report to Microsoft Excel Output".
Output Requirement: You have a JSP-based Web report, which you want to output to Microsoft Excel.
Solution: Since this is a JSP report, you cannot directly generate to a .xls file (DESTYPE=FILE
), but you can save the output that displays in your browser as a .xls file. Refer to the chapter "Building a report for Spreadsheet Ouput" in the Oracle Reports Building Reports manual, available on the Oracle Technology Network.
For detailed information on spreadsheet output and delimited output, see the Oracle Reports online Help and Oracle Reports Building Reports manual.
User exits may exist in reports developed in prior releases of Oracle Reports.
Note: With Oracle Reports 10g, you can call Java methods using theORA_JAVA built-in package and the Java Importer. This reduces the need to have user exits in a report and allows for a more open and portable deployment. You may also use the ORA_FFI built-in package, which provides a foreign function interface for invoking C functions in a dynamic library. With the availability of these built-in packages, the use of user exits is deprecated in Oracle Reports, though makefiles are still be supplied to permit you to continue to work with existing user exits. |
Problem
A report that contains a user exist fails when run on UNIX.
Solution
On UNIX, Reports Builder (rwbuilder
) and Reports Runtime (rwrun
) dynamically load the user exit library to successfully run reports that contain user exits. When running reports through Reports Server (rwserver
), you must add the following environment variable in rwengine.sh
to load the user exit library:
LD_PRELOAD=librw.so:user_exit_library; export LD_PRELOAD
The in-process Reports Server does not recognize the default printer of a user currently logged on to Windows. This is because the service that runs the in-process Reports Server is logged on as the Local System.
Problem
Any of the following:
Printing to default printer fails with the REP_3002
error. For example, the following command:
http://myrepsrvr.us.oracle.com:7777/reports/rwservlet?report=myrep.rdf&destype=printer&desformat=html
results in the following error:
Error:"REP-3002: Error initializing printer. Please make sure a printer is installed."
Deploying reports containing Oracle6i Graphics (OGD) graphics causes Reports Server to stop responding.
Font alignment problems in a PDF file output from an in-process Reports Server.
Solution
To work around all these issues:
Open the Windows registry using a registry editor (for example, regedit.exe
). Create a backup of the registry before you edit it.
Navigate to the following key:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
Copy the string value of Device
for this key. For example:
\\MOWGLI\sierra,winspool,Ne02:
Navigate to the following key:
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\Windows
Paste the Device
value copied from HKEY_CURRENT_USER
(the string value of Device
for this key will be empty).
Note: This workaround must be applied every time you alter the value of the Default Printer.This workaround will not work on an OPMN-managed Reports Server. |
The pros and cons of running an in-process Reports Server are explored in Chapter 2, "Understanding the Oracle Reports Services Architecture". For additional information, see Section 8.3, "Oracle Reports Servlet Configuration File" (server and inprocess parameter descriptions).