Skip Headers

Oracle® Application Server Reports Services Publishing Reports to the Web 10g Release 2 (10.1.2) B14048-02 |
| Library | Product | Contents | Index

Previous | 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:

- Problems and Solutions

- Diagnosing Performance Problems

- Diagnosing Font Problems

- Diagnosing Printing Problems

- Diagnosing JDBC PDS Problems

- Diagnosing OracleAS Portal Problems

- Diagnosing Globalization Problems

- Diagnosing Oracle Reports Bridge Problems

- Need More Help?

## D.1 Problems and Solutions

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

- Hanging Report Requests

- Reports Server Activity Generates Error REP-50125

- Long Running Report Failure with Reports Servlet

- Fonts Do Not Display Consistently On Different Platforms

- Running Reports on UNIX Platforms Generates REP-56048

- In-process Server Fails Using OPMN with Heavy Load

- Font Issues with Right-to-Left Languages

- Errors When Running Reports from Oracle Forms Using RUN_REPORT_OBJECT

- Displaying Report Output in Microsoft Excel

- Report Containing User Exit Fails on UNIX

- Printing and Font Errors When Using In-process Server

### 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:

- Chapter 4, "Managing Fonts in Oracle Reports" (in particular, see Section 4.1, "Using Fonts" for an understanding of the font handling mechanism in Oracle Reports).

- Chapter 6, "Using PDF in Oracle Reports" (in particular, see Section 6.1.2, "Font-Related Features" and Section 6.2, "Resolving PDF Font Issues During Cross-Platform Deployment").

- Chapter 7, "Resolving Cross-Platform Porting Issues" (in particular, see Section 7.1.1, "Font Availability On Different Platforms" and Section 7.1.2, "Fixing Font-Related Issues").

### 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:

- Section 4.3, "Font Configuration Files"

- Section 13.3.6, "Running with the WE8MSWIN1252 Character Set on UNIX"

- Section 18.7, "Troubleshooting Globalization Issues"

  - Setting Globalization Support Environment Variables

  - Running Oracle Reports in a Japanese Environment on HP-UX

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:

- Section 18.4, "Bidirectional Support" discusses the options available to you in designing reports for right-to-left languages.

- Section 6.4, "Generating a Bidirectional (BiDi) PDF File" outlines the steps involved in generating a PDF file for bidirectional (BiDi) languages.

- Section B.1.28, "REPORTS_ARABIC_NUMERAL" describes the use of this environment variable, which specifies the numeric format for Arabic PDF output. Valid values for this environment are: `ARABIC` (Arabic numerals), `HINDI` (Hindi numerals), or `CONTEXT` (Arabic or Hindi depending on the context).

- Section B.1.29, "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 7.4, "Generating Multibyte PDF Output" includes an example of a workaround for fixed width font on UNIX.

### 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).