Skip Headers
Oracle® Application Server Reports Services Publishing Reports to the Web
10g Release 2 (10.1.2)
B14048-02
  Go To Documentation Library
Library
Go To Product List
Product
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
Next
Next
 

D Troubleshooting OracleAS Reports Services

This appendix describes common problems that you might encounter when deploying your reports using OracleAS Reports Services and explains how to solve them. It also gives detailed instructions on how to diagnose problems. It contains the following topics:

D.1 Problems and Solutions

This section describes common problems and solutions. It contains the following topics:

D.1.1 Hanging Report Requests

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 20.2, "Tuning Reports Server Configuration".


Note:

Scalability improvements in Oracle Reports 10g Release 2 (10.1.2) 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 duplicate job waiting for the master job to finish also hangs. If there are multiple duplicate jobs waiting for a single master job, and this master job hangs, it may lead to server instability unless rectified.

Check the engineResponseTimeOut attribute in the engine element of the server_name.conf file (see Section 3.2.1.4, "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 more information about the showjobs command, see Section 2.5, "Verifying that the Reports Servlet and Server Are Running" and Section A.3.99, "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:

  • When an engine is executing the job, the engine updates the server with the latest status, such as formatting page 1, 2, and so on. If Reports Server does not receive any update from the engine for more than 5 minutes, it is assumed that the engine is hanging and therefore, Reports Server stops the engine.

  • When you have reports of various complexities that take 1 minute to 1 hour to run, you should specify ENGINERESPONSETIMOUT on the command line while running the report (see Section A.3.33, "ENGINERESPONSETIMEOUT").

  • If you have interactive jobs as well as scheduled and batch jobs, it is good practice to start one server for interactive jobs and one for batch and scheduled jobs. For performance and stability reasons, you should avoid using the same server for both interactive and batch/scheduled jobs.


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:

  1. Enable server tracing and logging (see Section 20.1.2, "Report Trace"). If it is not possible to enable tracing , enable logging alone by setting the log element's option attribute to failedJobs in the server_name.conf file (see Section 3.2.1.11, "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.

  2. Enable engine diagnostic logging by modifying the engine element to include the diagnosis property in the server_name.conf file (see "Properties" in Section 3.2.1.4, "engine"), then run the report that you identified in Step 1 to reproduce the hang.

  3. Report the hang to Oracle Support Services with the following information:

    • server_name.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:

  • server_name.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_HOME/bin directory. For example:

      exec $ORACLE_HOME/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 server, use the kill -3 command on the OC4J_BI_Forms process ID. The thread dump is redirected to the OC4J log (OC4J~OC4J_BI_Forms~default_island~1) file in the ORACLE_HOME/opmn/logs directory.

    • 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

      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 server fails to start and the browser displays the following message while trying to run a report with the in-process 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 20.1.2, "Report Trace") and start the in-process server. The default Reports Server rwserver.trc 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 JDBC PDS, see Chapter 9, "Configuring and Using the JDBC PDS".

  • The engine has failed to start. Check the rwEng-enginenumber.trc file in the ORACLE_HOME/reports/logs/server_name 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-enginenumber.trc 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 PATH environment variable if you are using Windows and the LD_LIBRARY_PATH environment variable if you are using Solaris. For the in-process server, the values of PATH and LD_LIBRARY_PATH are taken from the oc4j.properties file located in the ORACLE_HOME/j2ee/OC4J_BI_Forms/config directory.

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 20.1.2, "Report Trace") 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.

D.1.2 Reports Server Activity Generates Error REP-50125

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 address 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 are supported. However, Oracle Reports 10g Release 2 (10.1.2) 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.

D.1.3 Long Running Report Failure with Reports Servlet

Long running report requests submitted through 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.

D.1.4 Fonts Do Not Display Consistently On Different Platforms

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 is addressed in new documentation in the following chapters:

D.1.5 Running Reports on UNIX Platforms Generates REP-56048

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:

  1. Enable server tracing and logging (see Section 20.1.2, "Report Trace"). If it is not possible to enable tracing , enable logging alone by setting the log element's option attribute to failedJobs in the server_name.conf file (see Section 3.2.1.11, "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.

  2. Enable engine diagnostic logging by modifying the engine element to include the diagnosis property in the server_name.conf file (see "Properties" in Section 3.2.1.4, "engine"), then run the report that you identified in Step 1 to reproduce the crash.

  3. Report the crash to Oracle Support Services with the following information:

    • server_name.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, set REPORTS_DEFAULT_DISPLAY=NO and set DISPLAY to the active X-Windows display surface.

For more information, see Section B.1.39, "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 server_name.conf file (see "Properties" in Section 3.2.1.4, "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 server_name.conf configuration file.

For more information about the traceModule attribute and other tracing options, see Section 3.2.1.13, "trace". For general information about tracing, see Section 20.1.2, "Report Trace".

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_HOME/guicommon/tk/admin/uiprint.txt, add the following line:

printer_name:PostScript:1:test:default.ppd:

For more information on report distribution, see Chapter 15, "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 modifing this file is not supported. Please contact Oracle Support Services for assistance.

For more information on printing on UNIX, see Chapter 5, "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 Application Server Release Notes 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 nodel), no layout information. To generate report output that preserves the formatting defined in report layout, use the new Oracle Reports 10g Release 2 (10.1.2) 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.3.25, "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 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 executable. This is still applicable if you are able to reproduce the problem with only the rwrun executable. However, if the crash occurs only through the Reports Server, then the engine will be called using a Java wrapper, and you will need to 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 the command line executables 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.

D.1.6 In-process Server Fails Using OPMN with Heavy Load

Various issues related to OPMN implementation result in the in-process server timing out or shutting down when running on a slow computer with a heavy load.

Problem 1

If the in-process server fails to start on a slow computer, it triggers a start sequence for OC4J_BI_FORMS OC4J instance.

At present, when the pingserver?start=auto URL is passed, the state of the in-process server is obtained through a CORBA call. This CORBA call times out in 1 second. Therefore, the CORBA call fails if a computer on which the server is running is very slow. Such failures trigger a start sequence because during such failures it is assumed that the in-process server is not running whereas the in-process server is up and running.

When you restart the in-process server, it checks whether another server of the same name exists in the network. If there is another server of the same name, then the in-process server shuts down. This results in the failure of the CORBA call and causes the OC4J to restart.

Solution 1

With Oracle Reports 10g Release 2 (10.1.2), this issue is addressed by the following changes:

  • A CORBA call is made to obtain the state of only a standalone server. No CORBA call is made to check the state of the in-process server.

  • In the case of a standalone server running with the same name as the in-process server, Reports Servlet (rwservlet) establishes a connection with the standalone server.

  • Reports Servlet uses start=auto to start the in-process server only for the first CORBA call. Later, if the in-process server is shut down manually, Reports Servlet may not try to start the in-process server.

Problem 2

The ping timeout is reached before the in-process server is finished.

Solution 2

As described in Section 3.9, "Optimizing the Deployment of Reports", ping timeout is the measure that OPMN uses to determine the time that it must wait for a callback from an in-process server (in OC4J_BI_FORMS) before considering it as a timeout.

You can configure the ping timeout by adding a ping entry with sufficient timeout configured to the machine's load in following element in opmn.xml:

<ias-component id="OC4J">
...
<process-type id="OC4J_BI_Forms" module-id="OC4J">
...
<restart timeout="720" retry="2" />
...
<ping timeout="110" interval="30" />
...

You can also switch off the URL ping by removing or commenting out the following element in opmn.xml:

<category id="urlping-parameters">
  <data id="/reports/rwservlet/pingserver?start=auto" value="200" />
</category>

Then, restart OC4J_BI_Forms.

For more information on using OPMN with Reports Server, see Section 2.1.2, "Starting, Stopping, and Restarting Reports Servers from the Oracle Process Manager and Notification Server" and Section 3.8, "Configuring Oracle Reports to Communicate with Oracle Workflow".

D.1.7 Font Issues with Right-to-Left Languages

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 has been 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:

D.1.8 Errors When Running Reports from Oracle Forms Using RUN_REPORT_OBJECT

The most secure approach for calling Oracle Reports from Oracle Forms on the Web is to use Oracle Application Server 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 Application Server 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 OC4J 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 20.1.2, "Report Trace") 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).

D.1.9 Displaying Report Output in Microsoft Excel

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 (new in Oracle Reports 10g Release 2 (10.1.2)):

    • 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 Oracle Reports 10g page on OTN, and click Getting Started with Oracle Reports to navigate to the demonstration title "Generating Excel Output with Oracle Reports", which shows you how to implement this solution using an Excel template and JSP tags.

For detailed information on spreadsheet output and delimited output, see the Oracle Reports online Help and Oracle Reports Building Reports manual.

D.1.10 Report Containing User Exit Fails on UNIX

User exits may exist in reports developed in prior releases of Oracle Reports.


Note:

With Oracle Reports 10g, you can call Java methods using the ORA_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

D.1.11 Printing and Font Errors When Using In-process Server

The in-process 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 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 server.

Solution

To work around all these issues:

  1. Open the Windows registry using a registry editor (for example, regedit.exe). Create a backup of the registry before you edit it.

  2. Navigate to the following key:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Windows
    
    
  3. Copy the string value of Device for this key. For example:

    \\MOWGLI\sierra,winspool,Ne02:
    
    
  4. Navigate to the following key:

    HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Windows
    
    
  5. 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 server are explored in Chapter 1, "Understanding the OracleAS Reports Services Architecture". For addtional information, see Section 3.4.10, "Specifying an In-process Server" and Section 3.4.11, "Identifying the In-process Server".

D.2 Diagnosing Performance Problems

For information about how you can improve your report execution time and streamline the overall performance, see Chapter 20, "Tuning Oracle Reports".

For information about using Oracle Reports tracing options to trace and diagnose problems, including performance-related problems with Oracle Reports, refer to Section 20.1.2, "Report Trace".

D.3 Diagnosing Font Problems

For common problems and solutions when using fonts in UNIX machines, see Chapter 7, "Resolving Cross-Platform Porting Issues".

D.4 Diagnosing Printing Problems

For common problems and solutions when printing your reports in UNIX, see Section 5.7, "Frequently Asked Questions" in Chapter 5, "Printing on UNIX with Oracle Reports".

D.5 Diagnosing JDBC PDS Problems

For common problems and solutions when using the JDBC PDS, see Section 9.4, "Troubleshooting Information" in Chapter 9, "Configuring and Using the JDBC PDS".

D.6 Diagnosing OracleAS Portal Problems

For common problems and solutions when publishing your reports to OracleAS Portal as a portlet or item link, see Section 12.4, "Troubleshooting Information" in Chapter 12, "Deploying Reports in OracleAS Portal":

D.7 Diagnosing Globalization Problems

For common globalization problems and solutions in Oracle Reports, see Section 18.7, "Troubleshooting Globalization Issues" in Chapter 18, "Implementing Globalization and Bidirectional Support".

D.8 Diagnosing Oracle Reports Bridge Problems

Issues in communication across subnets while using the built-in broadcast mechanism may be related to the Oracle Reports bridge. To diagnose these issues, enable the Oracle Reports Bridge trace, as described in Section 3.3.2.6, "trace".

Problem 1

The Oracle Reports bridge trace file contains the following information:

[2005/12/8 1:45:7:339] Info 50103 (BridgeConnection:getResponsePacket): 
Getting response object from remote bridge usunrao06.us.oracle.com/130.35.37.76:14011
[2005/12/8 1:45:8:340] Debug 50103 (BridgePacketHandler:handleRequestPacket): Got response from remote subnet null
[2005/12/8 1:45:8:991] Error 64013 (BridgeConnection:getResponsePacket): 
Bridge failed to serve the requestjava.net.ConnectException: Connection refused: connect

Solution 1

The remote Oracle Reports bridge is not running. Start the Oracle Reports bridge, as described in Section 2.2, "Starting and Stopping the Oracle Reports Bridge".

Problem 2

The Oracle Reports bridge trace file in the local subnet (the subnet where the client is located) contains the following information:

[2005/12/8 1:50:34:219] Info 50103 (BridgeConnection:getResponsePacket): 
Getting response object from remote bridge usunrao06.us.oracle.com/130.35.37.76:14011
[2005/12/8 1:50:34:469] Debug 50103 (NetworkUtility:write): Writing ......
[2005/12/8 1:50:34:469] Debug 50103 (NetworkUtility:read): Reading ......
[2005/12/8 1:50:35:220] Debug 50103 (BridgePacketHandler:handleRequestPacket): Got response from remote subnet null

Additionally, the Oracle Reports bridge trace file in the remote subnet (the subnet where Reports Server is located) contains the following information:

[2005/12/8 2:36:59:997] Debug 50103 (Multicast:registerReceiver): Packet handler registered
[2005/12/8 2:37:1:16] Info 65003 (NetworkUtility:getIOR): Request timed out
[2005/12/8 2:37:2:19] Info 65003 (NetworkUtility:getIOR): Request timed out
[2005/12/8 2:37:3:30] Info 65003 (NetworkUtility:getIOR): Request timed out
[2005/12/8 2:37:3:31] Debug 50103 (NetworkUtility:getIOR): No response from server retuning null ior
[2005/12/8 2:37:3:32] Info 50103 (Multicast:registerReceiver): Packet handler unregistered
[2005/12/8 2:37:3:32] Debug 50103 (NetworkUtility:write): Writing ......

Solution 2

Reports Server is not running on the remote subnet. Start Reports Server, as described in Section 2.1, "Starting and Stopping Reports Server".

For comparison, the following sample output shows the Oracle Reports bridge trace for the scenario where the Oracle Reports bridge successfully discovers Reports Server:

[2005/12/8 4:4:6:700] Info 50103 (BridgeConnection:getResponsePacket): 
Getting response object from remote bridge usunrao06.us.oracle.com/130.35.37.76:14011
[2005/12/8 4:4:6:950] Debug 50103 (NetworkUtility:write): Writing ......
[2005/12/8 4:4:6:950] Debug 50103 (NetworkUtility:read): Reading ......
[2005/12/8 4:4:7:932] Error 50103 (BridgeConnection:run): Got response
[2005/12/8 4:4:7:942] Debug 50103 (BridgePacketHandler:handleRequestPacket): 
Got response from remote subnet Response Packet - 
ServerName    = vin
CorrelationID = 1134056309492
SenderID      = ServerName: vinVMID: 7e444dbc56c79b06:f9c40:10809ddbdaf:-8000
Duplicate     = false
Type          = FULL
Add. Info     = Type = server : Host = usunrao06.us.oracle.com

Problem 3

Reports Server is running on the remote subnet, Oracle Reports bridges are running on both the subnets and are configured properly, but the Oracle Reports clients are not able to connect to the remote Reports Server.

This may be caused by an improper setting of timeout value in the bridge configuration file. In this case, the Oracle Reports bridge in the local subnet (the subnet where the client is located) may time out before the Oracle Reports bridge in the remote subnet can respond.

Solution 3

Increase the timeout value in the Oracle Reports bridge configuration file (rwbridge_bridgename.conf). For example:

<bridge version="10.1.2" port="14011" timeout="2000">

The Oracle Reports bridge in the local subnet waits for the timeout period to get a response from the Oracle Reports bridge in the remote subnet. The Oracle Reports bridge may time out if the network connectivity is slow.Additionally, increase the timeout value in the network configuration file (rwnetwork.conf) to avoid the timeout of Oracle Reports clients before the Oracle Reports bridge responds. For example:

<multicast channel="228.5.6.7" port="14021" timeout="1000" retry="3"/>

In general, perform the following steps to set the Oracle Reports bridge timeout. It is assumed that both bridges are configured properly.

  1. Set a very high timeout value for the Oracle Reports bridge in the local subnet.

  2. Start both Oracle Reports bridges.

  3. Start Reports Server (in the remote subnet).

  4. In the local subnet, run the rwdiag utility with the following command:

    rwdiag –find server_name
    
    

    This command prints the time that the Oracle Reports bridge takes to discover the remote Reports Server. For example:

    D:\orawin\reports\conf>rwdiag -find vin
    
    Broadcast mechanism used to locate servers
    ------------------------------------------
    Channel address = 228.5.6.7
    Channel port     = 14021
    
    'vin' found in the network
    
    Time taken - 1181 milliseconds
    
    Name = vin : Type = server : Host = usunrao06.us.oracle.com
    
    

    In this example, the Oracle Reports bridge has taken 1181 milliseconds to discover the remote Reports Server.

  5. Estimate the timeout value for the Oracle Reports bridge located in the local subnet as follows:

    timeout = time taken to discover the remote Reports Server * safety factor
    
    

    For example:

    timeout = 1181 * 1.3
    
    

    which is about 1500 milliseconds.

  6. Set the timeout value in the repbrg_bridgename.conf file. For example:

    <bridge version="10.1.2" port="14011" timeout="1500">
    
    
  7. Confirm that the timeout value in the rwnetwork.conf file complies with the following:

    timeout (in rwnetwork.conf) * retry (in rwnetwork.conf) > timeout (in repbrg_bridgename.conf)
    
    

    For example:

    timeout (in rwnetwork.conf) * 3 > 1500
    
    

    Therefor, the value of timeout in rwnetwork.conf should be 1500 or higher.

Problem 4

You want to find out which Oracle Reports bridges are configured and running in the subnet.

Solution 4

Use the rwdiag utility to locate all Reports Servers and Oracle Reports bridges. For example, run the following command:

rwdiag -findall

This command generates output similar to the following example:

C:\>rwdiag -findall
Broadcast mechanism used to locate servers
------------------------------------------
Channel address = 228.5.6.7
Channel port     = 14021

(1) Name = bugupdate : Type = server : Host = strep15.idc.oracle.com
(2) Name = rep_supadhya-pc_frhome1 : Type = server : Host = supadhya-pc.idc.oracle.com
(3) Name = vinod : Type = server : Host = strep10.idc.oracle.com
(4) Name = rep_strep10 : Type = server : Host = strep10.idc.oracle.com
(5) Name = abc : Type = bridge : Host = strep12.idc.oracle.com
(6) Name = rep_stfrm08_frhome1 : Type = server : Host = stfrm08.idc.oracle.com
(7) Name = rep_stport79_as101202mid : Type = server : Host = stport79.idc.oracle.com
(8) Name = rep_iwinreb20_0508041930_bif : Type = server : Host = iwinreb20.us.oracle.com
C:\>

For more information on the rwdiag utility, refer to Appendix E, "Reports Server and Bridge Diagnostic Utility".

D.9 Need More Help?

You can find more solutions on Oracle MetaLink at http://metalink.oracle.com. If you do not find a solution for your problem, your Oracle representative can log a service request.

To help Oracle Support Services troubleshoot the problem, perform the following steps:

  1. Trace report execution, as described in Section 20.1.2, "Report Trace".

  2. Contact Oracle Support Services. To help Oracle Support Services troubleshoot the problem, provide a zip file containing the trace information, deployment scenario, or sample report output, if required.


See Also:

  • Oracle Application Server Release Notes, available on the Oracle Technology Network (OTN).