Friday 20 June 2008

Discoverer Plus Generate "java.io.FileNotFoundException:disco5i.jar" after Cumulative Patch 7 (6778560) installation

Discoverer Plus 10.1.2.54.25 generate the following exception in Java Console, and cannot be loaded :

java.io.FileNotFoundException: File not found:
https://servername.domain/discoverer_disco/plus_files/disco5i.jar
at sun.plugin.proto .jdk12.http.HttpURLConnection.getInputStream(Unknown Source)
at oracle.jre.protocol.jar.HttpUtils.followRedirects(Unknown Source)
at oracle.jre.protocol.jar.JarCache$CachedJarLoader.download(Unknown Source)
at oracle.jre.protocol.jar.JarCache$CachedJarLoader.load(Unknown Source)
at oracle.jre.protocol.jar.JarCache.get(Unknown Source)
at oracle.jre.protocol.jar.CachedJarURLConnection.connect(Unknown Source)
at oracle.jre.protocol.jar.CachedJarURLConnection.getJarFile(Unknown Source)
at sun.misc.URLClassPath$JarLoader.getJarFile(Unknown Source)
at sun.misc.URLClassPath$JarLoader.(Unknown Source)
at sun.misc.URLClassPath$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath.getLoader(Unknown Source)
at sun.misc.URLClassPath.getLoader(Unknown Source)
at sun.misc.URLClassPath.getResource(Unknown Source)
at sun.misc.URLClassPath.getResource(Unknown Source)
at sun.applet.AppletPanel.loadJarFiles(Unknown Source)
at sun.plugin.AppletViewer.loadJarFiles(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
WARNING: Unable to cache
https://appsppesdev.oracleoutsourcing.com/discoverer_disco/plus_files/disco5i.jar
Could not load progress dialog image:
https://appsppesdev.oracleoutsourcing.com/discoverer_disco/plus_files/plugin/images/download.jpg
load: class oracle.disco.DiscoApplet not found.
java.lang.ClassNotFoundException: java.io.IOException: open HTTP connection failed.
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at sun.plugin.security.PluginClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


The error_log files, shows errors like :
[error] [client 140.85.190.243] [ecid: 82133192743,1] File does not exist: $OH/Apache/Apache/htdocs/disco/discoverer_disco/plus_files/disco5i.jar

Changes


The problem appeared after the installation of the Cumulative Patch 7 on a Complex / Load Balanced environment, with BigIP and security rules.

Cause


Due to the

Bug 5948646 NEED TO CHANGE THE CONTEXTROOT FOR DISCOVERER PLUS&VIEWER

the $OH/discoverer/config/disco.conf has been updated from :

# Virtual path for plus jar and related files
AliasMatch ^/disco/plus_files/(..*)
"$OH/discoverer/plus_files/$1"


to :

# Virtual path for plus jar and related files
AliasMatch ^/discoverer_disco/plus_files/(..*)
"$OH/discoverer/plus_files/$1"

Solution


Change the BigIP security rules for the Virtual Path from /disco/ to /discoverer_disco/

Granting Discoverer EUL Administrative Privileges Via The EULAPI Command-Line To SYSADMIN Fails With ORA-00942

You are granting Administrative privileges to the SYSADMIN user using a similar Discoverer EULAPI command as below:

eulapi -connect eul_us/eul_us@db -grant_privilege -user SYSADMIN
-privilege administration -privilege all_admin_privs -log grantEULAdminPriv.log

When running the command, it fails with ORA-00942: table or view does not exist.

Changes

The following E-Business Suite schemas/users have been renamed:

For Example:

from "APPS" to "APPS_AOL"
from APPLSYSPUB to "AOLPUB"
from APPLSYS to "AOL"

Cause

Several of the standard E-Business Suite users/schemas have been renamed in the database.


Solution

The solution used will depend upon if the schema names were changed before or after the EUL was created.


First, test your connection by specifying the -apps_fndnam parameter using the new "APPS" schema in the EULAPI command-line:

For example:


eulapi -connect eul_us/eul_us@db -apps_fndnam APPS_AOL -grant_privilege -user SYSADMIN -privilege administration -privilege all_admin_privs -log grantEULAdminPriv.log

If the above solution does not work or you receive the error: user 'SYSADMIN' not found, then you may need to re-create the EUL with the new schema names.


For example:

  1. Delete the existing EUL

    Note: This is assuming the EUL is newly created and contains no metadata (Business Areas).


    eulapi -connect eul_us/eul_us@db -delete_eul -connect <**********> -delete_eul

  2. Create a new applications mode EUL using the new schema name, apps_aol in this example:

    eulapi -CREATE_EUL -APPS_MODE -CONNECT system/pwd@db -USER EUL_US -PASSWORD EUL_US
    -DEFAULT_TABLESPACE discoverer
    -TEMPORARY_TABLESPACE TMP_123
    -EUL_LANGUAGE US
    -APPS_GRANT_DETAILS apps_aol/fnd
    -log EULcreation.log


  3. Connect using the the new schema name, apps_aol in this example:

    eulapi -connect eul_us/eul_us@dbetfi8i -apps_fndnam APPS_AOL -grant_privilege -user SYSADMIN -privilege administration -privilege all_admin_privs -log grantEULAdminPriv.log

Exception "oracle.bali.ewt.spinBox.NumericSpinBoxModel.setValue" on Discoverer Plus 10.1.2

On top of Discoverer Plus 10.1.2, some actions (like right click on Worksheet Name =>
Properties ; Tools => Options ) cannot be performed because of the following exception is returned in the java console :

Error: java.lang.IllegalArgumentException java.lang.IllegalArgumentException
at oracle.bali.ewt.spinBox.NumericSpinBoxModel.setValue(Unknown Source)
at oracle.bali.ewt.spinBox.NumericSpinBox.setIntValue(Unknown Source)
at oracle.disco.options.QueryPanel._setInitialValues(Unknown Source)
at oracle.disco.options.QueryPanel.(Unknown Source)
at oracle.disco.options.OptionsPanel._initMainPanel(Unknown Source)
at oracle.disco.options.OptionsPanel.(Unknown Source)
at oracle.disco.options.OptionsUI.runDiscoWorker(Unknown Source)
at oracle.disco.worker.DiscoWorker.runWorker(Unknown Source)
at oracle.bali.ewt.worker.AbstractWorker.run(Unknown Source)
at oracle.bali.ewt.worker.AbstractWorkerQueue._runWorker(Unknown Source)
at oracle.bali.ewt.worker.AbstractWorkerQueue.access$100(Unknown Source)
at oracle.bali.ewt.worker.AbstractWorkerQueue$WorkerContext._run(Unknown Source)
at oracle.bali.ewt.worker.AbstractWorkerQueue$WorkerContext._runMaybeBlocked(Unknown Source)
at oracle.bali.ewt.worker.AbstractWorkerQueue$WorkerContext.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

-- Steps To Reproduce:
1.) Open Discoverer Plus and Create new Workbook ;
2.) Try to right click on worksheet name => Properties
3.) Exception displayed in the Java Console

Cause

The preference "RowFetchLimit" has been set to "0" in the pref.txt file

Although this parameter is of no sense, since the preference "RowFetchLimitEnabled" is disabled
(=0) in the pref.txt file, we cannot set preferences to not allowed values.

This can occurs with any preference value in the pref.txt set outside the range, which can be retrieved from the pref.txt comments.

Solution

1.) Stop Application Server (opmnctl stopall) ;
2.) [Only for Unix Platform] Set the environment for discoverer ( $ . ./discwb.sh DOT SPACE DOT SLASH discwb.sh) ;
3.) Edit pref.txt and set RowFetchLimit = 1 - then save the file ;
4.) Apply the new preference ( Unix: $ applypreferences.sh ; Windows : c:\> applypreferences.bat) ;
5.) Restart the Application Server (opmnctl startall).

Is it possible to add a bitmap to a Workbook in Discoverer Desktop and then let this bitmap visible on Discoverer Plus ?

Currently this feature is available in Desktop only, and not implemented yet in PLUS version So
when saving a bitmap in Desktop it will not appear in PLUS.
There is an Enhancement Request 3996567 for this issue. (BITMAP IMAGES LOGO IN PLUS/VIEWER)
This feature is approved for future release by discoverer product management but at the time of writing this document there is no a fix date .

However, a logo could be added in PLUS to the applet window for all users regardless of the
workbooks, this could be done through the Enterprise manager
Application Control :
Middle tier >> Discoverer >> Discoverer Plus >> Logo >> File then browse
to the desired logo file

for Discoverer viewer, you can also add a logo to the main browser window for all users and
regardless of any workbook:
this could be done through the Enterprise manager Application Control :
Middle tier >> Discoverer >> Discoverer Viewer >> customization >> select
Layout then press GO >> Logo >> File then browse to the desired logo file

for more information, please review :
Oracle® Business Intelligence Discoverer Configuration Guide
10g Release 2 (10.1.2.1) for Microsoft Windows and Solaris Operating System (SPARC)
ch: 9 Customizing OracleBI Discoverer
9.2.3 How to change the default Discoverer Viewer layout
http://download-uk.oracle.com/docs/html/B13918_03/customize.htm#BABFHDJI

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.