Friday 20 June 2008

ERROR_LOG FILE GETTING ERROR MESSAGES "FILE DOES NOT EXIST" for Discoverer files

This applies to Oracle Discoverer - Version: 4.1 to 10.1.2
This problem can occur on any platform.

Discoverer Plus and Viewer are working as expected , but numerous Discoverer related messages are present in the Apache error_log. The Discoverer server seems to flood the error _log with multiple "file does not exist" messages.

These, or similar, errors are observed in the log file when running Discoverer Plus and Viewer 4i :

File does not exist: %iAS_HOME%/Apache/Apache/htdocs/discwb4/applet/sun/java2d/SunGraphicsEnvironment.class
...
File does not exist:
%iAS_HOME%/Apache/Apache/htdocs/discwb4/applet/oracle/disco/DiscoAppletBeanInfo.class
...
File does not exist:
%iAS_HOME%/Apache/Apache/htdocs/discwb4/applet/java/awt/KeyboardFocusManager.class
...
File does not exist:
%iAS_HOME%/Apache/Apache/htdocs/discwb4/applet/dummyToClearIE404Error
...
File does not exist:
%iAS_HOME%/Apache/Apache/htdocs/discwb4/applet/oracle/disco/model/
corbaserver/ServerStatsImplBeanInfo.class
...


Discoverer 10g can show the following errors :

File does not exist: %iAS_HOME%/discoverer/plus_files/com/ms/lang/RegKeyException.class
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/disco/resource/ParamInfoBundle_it_IT.class
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/disco/resource/ParamInfoBundle_it_IT.properties
File does not exist: %iAS_HOME%/discoverer/plus_files/java/awt/KeyboardFocusManager.class
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/dss/dataView/resource/DataviewBundle_it_IT.class
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/dss/dataView/resource/DataviewBundle_it_IT.properties
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/dss/gridView/resource/GridViewBundle_it_IT.class
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/dss/gridView/resource/GridViewBundle_it_IT.properties
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/dss/crosstab/resource/CrosstabBundle_it_IT.class
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/dss/crosstab/resource/CrosstabBundle_it_IT.properties
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/dss/util/resource/UtilBundle_it_IT.class
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/dss/util/resource/UtilBundle_it_IT.properties
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/dss/table/resource/TableBundle_it_IT.class
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/dss/table/resource/TableBundle_it_IT.properties
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/ewt/util/LocaleUtils.class
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/dss/graph/resource/GraphBundle_it_IT.class
File does not exist: %iAS_HOME%/discoverer/plus_files/oracle/dss/graph/resource/GraphBundle_it_IT.properties

Cause

The problem is related to a JDK, that looks in the wrong directories for the above Discoverer files. It does not affect the operation of the Discoverer server.

Solution

The messages in the error_log can be disregarded since they do not affect Discoverer availability.

The messages can also be suppressed by changing the Apache warning level.

Complete the following steps to suppress the logging of warning messages:

1. Stop the Oracle Discoverer and HTTP Server services.

2. Delete or rename the existing Apache error_log and the access_log files.

3. Open httpd.conf file in the Apache\Conf directory.

4. Set the LogLevel to crit. By default this should be set to warn. This will prevent
the warning messages from getting logged into the error_log file.

LogLevel crit


5. Also add the following lines

SetEnvIf Request_URI "\.class$" dontlog
CustomLog logs/access_log common env=!dontlog


- instead of

CustomLog logs/access_log common


6. Save the httpd.conf file

7. Restart the OracleHTTP Server and Discoverer services.

Now try accessing Discoverer Plus and see that the log files are not flooded with warning messages.

For additional information refer to http://httpd.apache.org/docs/logs.html


DISCLAIMER: Implementing this workaround, all the logs will not trace any "file does not exist" errors for ALL .class files. You need to be aware of all the ramifications of never seeing "file does not exist" if it involves a .class file. It could be a real error for other components, that may be prevented from be traced.

No comments: