Oracle Forms Server Release 6i: Deploying Forms Applications to the Web with iAS Patch 2 A86202-01 |

|  |  | Contents | Index

# B
Client Browser Support

## B.1 Introduction

Users can view Oracle Forms applications on the Web using one of the following browser configurations:

- Internet Explorer 5 with Native JVM

- Oracle JInitiator plug-in (using Netscape Navigator or Internet Explorer)

- AppletViewer

Note:

For client browsers using AppletViewer, the HTTPS connection mode is not supported.Note: :

For client browsers using Oracle JInitiator, version 1.1.7.30 of JInitiator is required to use the HTTP and HTTPS modes.

## B.2 How Configuration Parameters and Base HTML Files are Tied to Client Browsers

When an end-user starts a Web-enabled application (by clicking a link to the application's URL):

1. The Forms servlet or CGI detects which browser the end-user is using.

2. Reads the formsweb.cfg file to determine the IE50 parameter setting (if the end-user is using the Internet Explorer 5 browser).

3. Selects the appropriate base HTML file using the table that follows:

   #####

   Browser detected | IE50 parameter setting | Base HTML file used | Applicable section in this appendix
   Internet Explorer 5 | native | baseie.htm | Section B.3, "Internet Explorer 5 with Native JVM"
   Internet Explorer 5 | jinitiator | basejini.htm | Section B.4, "Oracle JInitiator"
   Netscape Navigator or Internet Explorer version preceding version 5 | not applicable | basejini.htm | Section B.4, "Oracle JInitiator"
   All other browsers | not applicable | base.htm | Section B.5, "AppletViewer"

4. Replaces variables (%variablename%) in the base HTML file with the appropriate parameter values specified in the FormsServlet.initArgs file (for servlet implementations only), formsweb.cfg file (for both servlet and CGI implementations), and from query parameters in the URL request (if any).

5. Sends the HTML file to the end-user's browser.

## B.3 Internet Explorer 5 with Native JVM

Oracle provides a Microsoft-specific signed CAB file (f60all.cab) that allows the Oracle Forms Java applet to run as a trusted applet inside of Internet Explorer 5. This browser option alleviates the need to perform any end user configurations of the browser.

### B.3.1 Software Installation

This section describes the software that you must install on client machines to run Forms applications natively in Microsoft Internet Explorer 5.

Install Microsoft Internet Explorer 5 on the client machine. You can download this browser from the Microsoft Web site at http://www.microsoft.com/ie.

When you install Microsoft Internet Explorer 5, you must also install the Microsoft Virtual Machine for Java component. Choose either the Full or Custom installation option. If you choose Custom installation, you must manually select Microsoft Virtual Machine for Java from the list of available components.

### B.3.2 Testing Microsoft Internet Explorer

Verify the existence and version level of the Microsoft VM for Java that the browser is using. You will also want to verify the execution of JDK 1.1 applets running natively in the browser.

#### B.3.2.1 Checking Microsoft JVM

1. Launch Microsoft Internet Explorer 5.

2. Choose ViewJava Console to display the Java Console.

3. The Java Console should display and should report that the Microsoft VM for Java version is 5.0.0.3167 (or higher).

#### B.3.2.2 Java 1.1 Applet Testing

Use the examples on the JavaSoft Web site (http://www.javasoft.com/applets/jdk/1.1/index.html) to test the browser's ability to run Java 1.1 applets. If the applets do not appear, re-check each of the steps you took to configure your browser and check your JVM, then repeat the test.

### B.3.3 Launching Oracle Forms Server Applications

Once you have completed installation and configuration and successfully tested the execution of Java applets in the browser, you should be able to run Oracle Forms Server applications successfully in Microsoft Internet Explorer 5.

Use standard Java <APPLET> tags in the application's base HTML file. Do not use the Oracle JInitiator specific <EMBED> and <OBJECT> tags. See Section B.3.5, "Modification of the baseie.htm file" for an example of an HTML file with standard Java <APPLET> tags.

### B.3.4 Troubleshooting

The Oracle Forms Server application does not display when it is run.

This is typically caused by an error in the configuration of Internet Explorer 5. Look at the Java Console output to see more informative error messages. Select ViewJava Console from the top level menu. Check the output in the console against typical error messages, which are discussed below.

The Applet does not start and the error message "java.lang.ClassNotFoundException: sun.applet.AppletViewer" is displayed.

This error message indicates that the version of Oracle Forms Server is not 6.0.5.30.2. Earlier versions of Oracle Forms Server 6.0 required that this class file be present on the client machine. Install Oracle Forms Server 6i Release 2.

The Applet does not start and, the error message "com.ms.security.SecurityException[oracle/forms/engine/Main.init]: cannot access file C:\WINNT\Java\.hotjava" is displayed.

This error message indicates that the security settings have not been configured to allow Java applications in the Intranet Zone to run outside of the Java sandbox. Microsoft Internet Explorer 5 indicates which Zone the page was loaded from in the bottom right-hand corner. This should display the words Intranet Zone. If you are using a proxy server, check to see that the host Oracle Forms Server is running on will bypass the proxy server.

### B.3.5 Modification of the baseie.htm file

This is an example of a base HTML file that uses the standard Java <APPLET> tags to launch the Oracle Forms Server Java client. An example of an HTML page suitable for use with standard Applet tags, baseie.htm is shipped with the Oracle Forms Server product.

    <HTML>
    <BODY>
    <APPLET

    CODEBASE="/web_forms/"
    CODE="oracle.forms.engine.Main"
    WIDTH="800"
    HEIGHT="600">
    <PARAM NAME="serverPort" VALUE="9000">
    <PARAM NAME="CABBASE" VALUE="f60all.cab">
    <PARAM NAME="serverArgs" VALUE="module= grid2.fmx userid=scott/tiger ">
    <PARAM NAME="lookAndFeel" VALUE="oracle">
    <PARAM NAME="colorScheme" VALUE="Titanium">

    </APPLET>
    </BODY>
    </HTML>

## B.4 Oracle JInitiator

This section describes the benefits of using Oracle JInitiator as a plug-in for your users' Web browsers. Oracle JInitiator makes it possible for users to run Forms Server applications using Netscape Navigator or Internet Explorer. It provides the ability to specify the use of a specific Java Virtual Machine (JVM) on the client, rather than using the browser's default JVM.

Oracle JInitiator runs as a plug-in for Netscape Navigator and as an ActiveX component for Internet Explorer. Oracle JInitiator does not replace or modify the default JVM provided by the browser. Rather, it provides an alternative JVM in the form of a plug-in.

Oracle provides two JAR files (f60all.jar and f60all_jinit.jar). f60all.jar is a standard JAR file, and f60all_jinit.jar is a JAR file with extra compression that can only be used with Oracle JInitiator.

### B.4.1 Why Use Oracle JInitiator?

Oracle JInitiator delivers a certified, supportable, Java Runtime Environment (JRE) to client desktops, which can be launched transparently through a Web browser.

Oracle JInitiator is Oracle's version of JavaSoft's Java Plug-in. The JavaSoft Plug-in is a delivery mechanism for a JavaSoft JRE, which can be launched from within a browser. Likewise, Oracle JInitiator is providing a delivery mechanism for an Oracle certified JRE, which enables Forms Developer applications to be run from within a browser in a stable and supported manner.

In addition to providing a certified platform for the execution of Forms Developer applications, Oracle JInitiator provides a number of additional features over and above the standard JavaSoft Java Plug-in. These include JAR file caching, incremental JAR file loading, and applet caching.

### B.4.2 Benefits of Oracle JInitiator

Oracle JInitiator provides these benefits:

- It allows the latest Oracle-certified JVM to run in older browser releases.

- It ensures a consistent JVM between different browsers.

- It is a reliable deployment platform. JInitiator has been thoroughly tested and certified for use with Forms Server.

- It is a high-performance deployment environment. Application class files are automatically cached by JInitiator, which provides fast application start-up.

- It is a self-installing, self-maintaining deployment environment. JInitiator automatically installs and updates itself like a plug-in or an Active-X component. Locally cached application class files are automatically updated from the application server.

### B.4.3 Using Oracle JInitiator

The first time the client browser encounters an HTML file that specifies the use of Oracle JInitiator, it is automatically downloaded to a client machine from the application server. It enables users to run Forms and Graphics applications directly within Netscape Navigator or Internet Explorer on the Windows 95 and Windows NT 4.0 platforms.

The installation and updating of Oracle JInitiator is performed using the standard plug-in mechanism provided by the browser. Oracle JInitiator installation performs the required steps to run Forms Developer applications as trusted applets in the Oracle JInitiator environment.

Note: :

For client browsers using Oracle JInitiator, version 1.1.7.30 of JInitiator is required to use the HTTP and HTTPS modes.

### B.4.4 Supported Configurations

Oracle JInitiator supports the following configurations:

#####

| Internet Explorer 4.0 | Internet Explorer 5 | Navigator 4.0 | Navigator 4.5
--- | --- | --- | --- | ---
Windows 95 | X | X | X | X
Windows NT | X | X | X | X

### B.4.5 System Requirements

The minimum system requirements for Oracle JInitiator are:

- Windows 95 or Windows NT 4.0

- Pentium 90 mHz or better processor

- 12MB free hard disk space (recommended 20MB)

- 16MB system RAM (recommended 24MB)

### B.4.6 Using Oracle JInitiator with Netscape Navigator

Oracle JInitiator leverages the Netscape Navigator plug-in architecture in order to run inside the browser in the same way other plug-ins, such as QuickTime movies or Shockwave animations operate. Using the Netscape HTML <EMBED> tag, Web application developers can specify that plug-ins run as part of a Web page. This is what makes it possible for Oracle JInitiator to run inside the Web browser with minimal user intervention.

When Navigator first encounters an HTML page that specifies the use of Oracle JInitiator, users will see a "Plug-in Not Loaded" dialog on the HTML page, which directs the user to the Oracle JInitiator download page. Users can then download the version of Oracle JInitiator for their operating system and install it.

Once Oracle JInitiator is installed, users must shut down Navigator, restart it, and then revisit the original HTML page. Oracle JInitiator will then run and use the parameters in the <EMBED> tag to render the applet. The next time Navigator encounters a Web page that specifies Oracle JInitiator, Navigator will seamlessly load and run the plug-in from the local disk, without user intervention.

### B.4.7 Using Oracle JInitiator with Microsoft Internet Explorer

Oracle JInitiator leverages the Microsoft Internet Explorer extension mechanism for downloading and caching ActiveX controls and COM components. Using the HTML <OBJECT> tag, Web application developers can specify that ActiveX controls or COM components should run as part of a Web page. Such components include Oracle JInitiator.

When Internet Explorer first encounters an HTML file that has been modified to specify the use of Oracle JInitiator, Internet Explorer will ask the user if it is okay to download an ActiveX control signed with a VeriSign digital signature by Oracle Corporation. If the user clicks "Yes," Internet Explorer will begin downloading Oracle JInitiator. Oracle JInitiator will then run and use its parameters in the <OBJECT> tag to render the applet. The next time Internet Explorer encounters a Web page modified to support Oracle JInitiator, it will seamlessly load and run Oracle JInitiator from the local disk, without user intervention.

### B.4.8 Setting up the Oracle JInitator Plug-in

To set up the Oracle JInitiator plug-in:

- Add Oracle JInitiator HTML markup to your base HTML file.

- Install Oracle JInitiator on your server (for server-based testing purposes only).

- Customize the Oracle JInitiator download file.

- Make Oracle JInitiator available for download.

#### B.4.8.1 Adding Oracle JInitiator Markup to Your Base HTML File

To add Oracle JInitiator markup to your base HTML file:

1. Open your base HTML file within a text editor.

2. Add the OBJECT and EMBED tags.

     For examples of added markup, refer to Section B.4.10, "Oracle JInitiator tags for a base HTML file".

#### B.4.8.2 Customizing the Oracle JInitiator Download File

The Oracle JInitiator download file (JINIT_DOWNLOAD.HTM) is the template HTML file that allows your users to download the Oracle JInitiator file.

To customize the Oracle JInitiator download file:

1. Open the JINIT_DOWNLOAD.HTM file within an HTML or text editor.

2. Modify the text as desired.

3. Save your changes.

#### B.4.8.3 Making Oracle JInitiator available for download

To make Oracle JInitiator available for download:

1. Copy jinit11x.EXE to your Web server.

     You must copy jinit11x.EXE to the location that was specified within the base HTML file.

1. Copy JINIT_DOWNLOAD.HTM to your Web server.

     You must copy JINIT_DOWNLOAD.HTM to the location that was specified within the base HTML file.

### B.4.9 Modifying the Oracle JInitiator plug-in

To modify the Oracle JInitiator plug-in:

- Modify the cache size for Oracle JInitiator.

- Modify the heap size for Oracle JInitiator.

- Check and modify the proxy server setting for Oracle JInitiator.

- View Oracle JInitiator output.

#### B.4.9.1 Modifying the cache size for Oracle JInitiator

To modify the cache size for Oracle JInitiator:

1. From the Start menu, choose StartProgramsOracle JInitiatorControl Panel.

2. Click the Basic tab.

3. In the Java Run Time Parameters field, specify the Dcache size. For example, specifying Dcache.size=20000000 sets the cache size to 20MB.

The default cache size for Oracle JInitiator is 20000000. This is set for you when you install Oracle JInitiator.

#### B.4.9.2 Modifying the heap size for Oracle JInitiator

To modify the heap size for Oracle JInitiator:

1. From the Start menu, choose Start ProgramsOracle JInitiatorControl Panel.

2. Click the Basic tab.

3. In the Java Run Time Parameters field, specify the mx size. For example, specifying mx64m means setting maximum heap size to 64MB.

The default maximum heap size for Oracle JInitiator is 64MB. This has been set for you when you install Oracle JInitiator.

#### B.4.9.3 Check and modify the proxy server setting for Oracle JInitiator

To check and modify the proxy server setting for Oracle JInitiator:

1. From the Start menu, choose Start ProgramsOracle JInitiatorControl Panel.

2. Click the Proxies tab.

3. Select the Use Browser Settings checkbox to allow Oracle JInitiator to use the settings in your browser's configuration dialog box. If you want to use another proxy server setting, be sure the box is not checked. Then, enter the host name for the proxy server in the Proxy Address field.

#### B.4.9.4 Viewing Oracle JInitiator output

To view Oracle JInitiator output:

1. From the Start menu, choose StartProgramsOracle JInitiatorControl Panel.

2. Click the Basic tab.

3. Check the Show Java Console check box to enable debug output.

### B.4.10 Oracle JInitiator tags for a base HTML file

This example illustrates the Oracle JInitiator markup for both Microsoft Internet Explorer and Netscape Navigator. Adding these tags to your base HTML file will enable your applications to run within both Netscape and Microsoft browsers.

         <HTML>
         <BODY>
         <P>
         <OBJECT classid="clsid:9F77a997-F0F3-11d1-9195-00C04FC990DC"
         WIDTH=600
         HEIGHT=480
         codebase="http://acme.com/jinit11711.exe#Version=1,1,7,11">
         <PARAM NAME="CODE" VALUE="oracle.forms.engine.Main" >
         <PARAM NAME="CODEBASE" VALUE="/forms60code/" >
         <PARAM NAME="ARCHIVE" VALUE="/forms60code/f60all.jar" >
         <PARAM NAME="type" VALUE="application/x-jinit-applet;version=1.1.7.11">
         <PARAM NAME="serverPort" VALUE="9000">
         <PARAM NAME="serverArgs" VALUE="module=order.fmx">
         <PARAM NAME="serverApp" VALUE="default">
         <COMMENT>
         <EMBED type="application/x-jinit-applet;version=1.1.7.11"
         java_CODE="oracle.forms.engine.Main"
         java_CODEBASE="/forms60code/"
         java_ARCHIVE="/forms60code/f60all.jar"
         WIDTH=600
         HEIGHT=480
         serverPort="9000"
         serverArgs="module=order.fmx"
         serverApp="default"
         pluginspage="http://acme.com/jinit_download.htm">
         <NOEMBED>
         </COMMENT>
         </NOEMBED></EMBED>
         </OBJECT>
         </BODY>
         </HTML>

### B.4.11 Oracle JInitiator FAQ

The most frequently asked questions about Oracle JInitiator are discussed in detail in the following sections:

- Certification and Availability

- Support

- Installation

- Operation of Oracle JInitiator

- Caching

#### B.4.11.1 Certification and Availability

When will Oracle JInitiator be available?

Oracle JInitiator has been available since September 1998 for the deployment of custom Forms Developer applications. Oracle Applications completed certification of Oracle JInitiator in February 1999.

How is Oracle JInitiator distributed?

Starting with release 6i of Forms Developer, Oracle JInitiator will be shipped as part of the Forms Developer distribution CD. Oracle JInitiator is also available for download from the Forms Developer section of the Oracle Web site: http://www.oracle.com/tools/dev_server. Updates for Oracle JInitiator may also be obtained through the Oracle Worldwide Support Organization.

Will Oracle JInitiator work on non-Windows platforms?

Oracle has no current plans for porting Oracle JInitiator to non-Microsoft Windows platforms. However, we are working very closely with a number of hardware vendors to provide support and certification for running Forms Developer applications on non-Microsoft Windows platforms.

What versions of Netscape Navigator and Internet Explorer is Oracle JInitiator certified with?

Oracle JInitiator will be certified with the latest production releases of these browsers when each Oracle JInitiator release undergoes final QA testing. Oracle will also be providing support for earlier releases of the browsers. The exact browser versions that have been certified will be contained in the accompanying documentation for an Oracle JInitiator release.

What is the difference between the JavaSoft Java Plug-in and Oracle JInitiator?

The primary difference is that Oracle JInitiator includes the Oracle certified JRE whereas the JavaSoft Java Plug-in is shipped with a JavaSoft JDK reference implementation. JavaSoft's implementation has not been certified with Forms Developer applications. Forms Developer places extreme demands on the JRE; so we have modified JavaSoft's JRE to perform under extreme conditions.

While Oracle is diligent in notifying JavaSoft of its enhancements, it is not possible to wait until JavaSoft can provide a new version with the included enhancements.

The JavaSoft Plug-in is a delivery mechanism for a JavaSoft JRE which can be launched from within a browser. Likewise, Oracle JInitiator is providing a delivery mechanism for an Oracle certified JRE, which enables Forms Developer applications to run within a browser in a stable and supported manner.

Since Oracle is responsible for the production of Oracle JInitiator, we provide full product support for it. Through the Oracle World Wide Support Organization, Oracle customers can obtain the relevant level of support required to support their applications.

In addition to providing a certified platform for the execution of Forms Developer applications, Oracle JInitiator provides a number of additional features over and above the standard JavaSoft Java Plug-in. These features include JAR file caching, incremental JAR file loading, and applet caching.

Why is Oracle certifying and delivering a specific JRE rather than using the JRE provided by JavaSoft?

Forms Developer has responded to its customers who are moving to server-based deployment as a way to reduce computing costs, but also realize the need to protect their investment in existing applications that are essential to their business.

Providing our customers with the ability to run their existing applications completely unchanged on a Java platform places unique demands on Java, especially given that many of these applications are large and complex.

Can the JavaSoft Java Plug-In be used to run Forms Developer applications?

Using the JavaSoft Plug-In to deploy Forms Developer applications has not been certified and is therefore not a supported deployment configuration. Today, the JRE provided by Oracle JInitiator includes a number of enhancements that are not yet available in the JRE provided by JavaSoft. In addition, Oracle is able to provide full support for the Oracle JInitiator through the Oracle Worldwide Support Organization.

Does Oracle intend to support native browser deployment?

The primary problem with providing native browser support is the dependence on browser vendors and platform providers to support the same version and quality level of Java that is required by Forms Server. This dependency has prevented Oracle from certifying native browser deployment as a deployment option in the timeframe that our customers require. Therefore, we are fully endorsing Oracle JInitiator as our Internet application deployment strategy. This ensures a stable and supported platform on which to deploy Forms Server applications.

#### B.4.11.2 Support

Who will provide support for Oracle JInitiator?

Oracle Corporation provides full support for Oracle JInitiator through the Oracle Worldwide Support Organization.

Which versions of Forms Server does Oracle JInitiator support?

Oracle will support Forms Server Release 1.6 and later with Oracle JInitiator running on the client.

Is Oracle JInitiator supported with Oracle Applications?

Yes. The Oracle Applications group has certified the use of Oracle JInitiator for the running of Oracle Applications within Netscape Navigator 4.06 and later and Microsoft Internet Explorer 4.0 and later.

#### B.4.11.3 Installation

What do I need to install on the client in order to run Forms Developer applications in the Web browser?

By leveraging the standard browser extension mechanisms provided by both Netscape Navigator and Microsoft Internet Explorer, Oracle JInitiator is able to automatically download itself to the client machine when the browser first encounters an HTML page that requires it. Oracle JInitiator is then installed using the method required for the addition of Plug-ins or ActiveX Objects by the browser currently in use.

How large is Oracle JInitiator when it is downloaded to the client?

The compressed Oracle JInitiator distribution is approximately 8MB and expands to approximately 10MB when completely installed on the client.

Is it possible to perform a silent installation of Oracle JInitiator where the user does not have to enter any details?

Oracle JInitiator supports a silent installation mode in which the user doesn't need to actively step through the installation process provided by the InstallShield. To perform the silent installation, the user must download the Oracle JInitiator distribution to their machine and then specify "`-s -sm"` from the command line or from the Windows Run dialog when running the downloaded executable.

For example to perform a silent installation from the command line, the user would open a DOS shell and type:

`C:\TEMP> jinit.exe -s -sm`

To perform a silent installation using the Windows Run dialog, the user would click Start Run and then enter `jinit.exe -s -sm` in the Run dialog window that appears:

Is it possible to perform the Oracle JInitiator installation from a central server such that user interaction is not required?

Using the facilities provided by the host operating systems, it is possible to install Oracle JInitiator on each client desktop without user intervention. This involves the System Administrator accessing each client machine and running the silent, non-GUI installation option of Oracle JInitiator.

Can I force Oracle JInitiator to use the same configurations for Proxy Servers, etc. as the browser in which it is running?

The operation of Oracle JInitiator is controlled via the Oracle JInitiator Control Panel. The Oracle JInitiator Control Panel is installed at the same time Oracle JInitiator is installed and can be accessed from the StartPrograms menu.

With the Oracle JInitiator Control Panel, you can configure Oracle JInitiator to use either its own specific Proxy settings or the defaults supplied by the browser from which it is invoked. Select the Proxies tab and insert the appropriate settings.

How can I force my browser clients to download and install a new version of Oracle JInitiator?

Oracle JInitiator functions as a Netscape Plug-in or a Microsoft ActiveX object depending on the type of browser being used. The browser uses a MIME type to provide a mapping between an HTML page request and the required Plug-in/ActiveX object. Each Oracle JInitiator installation has a specific MIME type associated with it. When a browser loads an HTML page that contains a MIME type that it is not aware of, the browser informs the user that it does not have the required Plug-in/ActiveX object and will open a dialog that will help the user retrieve it.

By changing the MIME type specified in your application's HTML page to be a later version, the browser will detect that it does not have a valid Plug-in/ActiveX object for that MIME type and will prompt the user to download a new file so it can serve the request completely.

For example:

An HTML page HR.HTML allows users to run the HR application. The HR.HTML page indicates to the browser that it should use Oracle JInitiator version 1.1.5.21.1 through the MIME type value.

If a later release of Oracle JInitiator is obtained and placed on the server, the client browser can be forced to use the newer version by modifying the version specific lines in the HR.HTML file with the newer version release information.

I pressed the Cancel button on the Netscape "Plug-in Not Loaded" dialog and now I never get prompted to install Oracle JInitiator. How do I install the Plug-in?

Netscape uses the Windows registry to store information about installed Plug-ins. As soon as the "Plug-in Not Loaded" dialog appears, Netscape writes the details for the Plug-in into the registry, irrespective of whether the Plug-in is actually installed or not. When a page is encountered that calls for the use of that specific Plug-in, it will appear to Netscape that the Plug-in is installed because the registry says it was. This results in the "Plug-in Not Loaded" dialog box not being shown again. To overcome this, you can force Netscape to load a Plug-in by clicking the Plug-in missing icon. This will result in Netscape displaying the Plug-in download dialog.

I have a lot of HTML pages that have different MIME types in them. Will the latest Oracle JInitiator release still run with these earlier MIME types?

Currently the Netscape browser has limit of 256 characters that may be used to store the recognized MIME types for a particular Plug-in. Microsoft Internet Explorer does not have this restriction with their extensible browser Objects architecture. Working within this limit, Oracle JInitiator will provide backward support for as many earlier MIME types as is possible.

The accompanying documentation and release notes for an Oracle JInitiator release will provide an accurate description of what MIME types are supported for that specific release.

Is it possible to make Forms Developer applications run in any version of Oracle JInitiator?

Yes. Oracle provides a generic MIME type that will allow any installed version of Oracle JInitiator to run the Forms Developer Application. This MIME type application, x-jinit-applet, is recognized by every version of Oracle JInitiator. Always using this MIME type will enforce the upgrading of later Oracle JInitiator versions by the browser.

#### B.4.11.4 Operation of Oracle JInitiator

Can the Forms Applet window be run within the same browser window from which it was launched?

Forms Server Release 6i supports the running of the Forms applet both within the same browser window and in a new window. This is a configurable option and is set as a parameter in the base HTML file.

What happens to the running Forms Developer application if the user navigates off of the current browser page?

Oracle JInitiator contains an additional feature that allows a running Java application to be cached and retrieved when required during the current browser session. This means that when a Forms application is run and the user navigates to a different page and then comes back to the Forms application page, the running Forms application will appear exactly as it was when the user left it.

Can I use the Oracle JInitiator to run my custom developed Java applications?

Oracle JInitiator uses a standard JavaSoft JVM that has been enhanced by the Oracle development team. It should be capable of running custom Java applications. However at this time, Oracle only provides support for Oracle JInitiator when running Oracle Java-based applications, such as Forms Developer, Oracle Enterprise Manager, and Oracle Discoverer. The use of Oracle JInitiator to run custom Java applications is not supported by Oracle.

Can Oracle JInitiator and the JavaSoft Java Plug-in coexist on the same machine?

Yes. They can coexist in the same browser installation because they use different MIME types to launch the plug-in.

Will Oracle JInitiator coexist and operate correctly when used at the same time as the Javasoft Plug-in, in the same browser instance?

No. Due to the way that dynamically loadable libraries are loaded and the JVM dynamically loadable libraries are named, the Oracle JRE and the JavaSoft JRE can not be run simultaneously from within the same browser instance. This means that a browser user cannot switch from using the JavaSoft Java Plug-in to Oracle JInitiator in the same browser instance. The browser must be stopped and restarted when switching between the different applications that use Oracle JInitiator and Java Plug-in from JavaSoft.

With the JavaSoft Java Plug-in and Oracle JInitiator there is an option to use a different JRE. Can I use the JavaSoft Java Plug-in when it is configured to use the Oracle certified JRE to run Forms Developer applications?

The only certified and supported combination is Oracle JInitiator with Oracle JRE. The Oracle JRE, while conforming to the JavaSoft standard, contains bug fixes to the JavaSoft JRE that allow Forms Developer applications to run correctly. Oracle works closely with Javasoft to ensure that Oracle's enhancements are communicated to JavaSoft and applied to the standard JRE, but is unable to wait for the improved JavaSoft JRE to be released.

The figure below shows the Oracle JInitiator Control Panel and the correct settings for the Java Run Time Environment value.

#### B.4.11.5 Caching

Can Oracle JInitiator cache the Java class files downloaded when an application is run? If so, does this mean the Java class files are downloaded only once and not each time the application is started?

Yes. Oracle JInitiator provides a persistent caching mechanism for JAR files that it downloads when running Java applications. A JAR file is a standard Java archive that contains a series of Java class files that are used by the Java application. By putting all the required class files into a single JAR file, a single download is performed rather than multiple downloads for each individual class file required.

By caching the JAR files on the client, Oracle JInitiator alleviates the need to download the JAR files each time they are required for an application. The first time a JAR file is required it is downloaded from the Web server and then saved to the local client machine. The next time it is required, Oracle JInitiator will look into the cache directory to see if the file is stored there; if it is, it will use it from the local directory and avoid having to re-download the file from the Web server. This saves a lot of user time and network traffic for commonly used applications. For example, if your application uses a 2MB JAR file and you have a fast Ethernet connection that is capable of downloading a 2MB file in 5 seconds then you will save 5 seconds at application startup. If you are running on a slow dial-up network that takes 10 minutes to download a 2MB file, then you will save 10 minutes at application startup.

How does Oracle JInitiator caching technology work?

Oracle JInitiator provides browser-session-independent caching of JAR files. Oracle JInitiator stores the downloaded JAR files on the local client machine so that it does not need to download them the next time they are required.

When a JAR file is requested, Oracle JInitiator will check the cache directory to determine if the file has been previously requested, downloaded, and stored. If the JAR file is not present, Oracle JInitiator will download the JAR file from the Web server and then store it for future use in the cache. Some additional information is stored in the cache file to enable Oracle JInitiator to uniquely identify the JAR file as well as the Last-Modified date of the requested file as reported by the Web server.

If the file is present in the cache, then the Web server must be checked to determine if the stored JAR file is current. Oracle JInitiator takes the Last-Modified date contained in the cached JAR file and asks the Web server (using standard HTTP interactions) if the file on the server has been modified. The Web server uses the given Last-Modified date and the timestamp on the file stored on the server. Then it either serves the newer file to Oracle JInitiator with a status code of 200 or returns a status code of 304, which indicates that the file in the cache is current.

If the cached JAR file is not current, a new one is downloaded and stored for future use in the cache directory. If the file is current, Oracle JInitiator loads it from the cache directory and updates the timestamp on the cached file to indicate the last time it was used.

Where do the cached JAR files get stored?

By default, Oracle JInitiator stores the downloaded JAR files in the jcache subdirectory, which is located in the Oracle JInitiator installation directory.

Why does the jcache directory contain strange names for the cached JAR files?

Since each JAR on a Web server can be identified by a URL (URL = codebase + JAR filename), the Oracle JInitiator caching mechanism uses this to uniquely identify the JAR file. On Windows operating systems, since the full URL is not a valid filename for a file, Oracle JInitiator transforms it via a simple hashing algorithm into an acceptable filename and then uses this as the stored JAR filename. When a request is made for a JAR file, Oracle JInitiator performs the hashing algorithm on the complete URL and then checks to see if the resulting filename exists in the cache.

How does JAR file caching work with server load balancing?

As outlined previously, JAR files are identified in the cache based on the URL from which they were retrieved. Consequently, the same JAR file from different servers will be downloaded from each different server. This is done deliberately to ensure security and application integrity. If JAR files were cached solely using their name, then a malicious application could replace the JAR file from another application. When the original application was run, the Java class files would be different. Also, since JAR files are not guaranteed to have unique names, it is possible for JAR files to collide. This would happen where two different applications use the same JAR filename, but require different class files from the JAR file.

It appears that the timestamp on the cached JAR files is updated every time I run an Forms Developer application. Is this normal? Does it mean that the file is being downloaded every time?

No. Oracle JInitiator supports a configurable cache maximum size. Every time a cached JAR file is used, Oracle JInitiator updates the timestamp to indicate the date and time that the cached file was last used.

If the cache size grows to the point where files must be removed in order to maintain the maximum cache size, Oracle JInitiator uses the timestamp of the cache files to determine which is the least recently used file and then removes that.

How can I tell that my cache is functioning correctly and that the JAR files are not being downloaded every time?

When Oracle JInitiator needs to download a required file, it does so via the Web server that has been configured to run Forms Developer applications. Modern Web servers support the use of log files that enable the tracking of what files have been downloaded, by whom, and when. The Web server log file uses a standard format to describe the transactions that have occurred. This log format includes the name of the requested item and the result of the request. The result of the request is indicated using a set of standard HTTP status codes.

If the JAR file was downloaded to the client, the log file will contain the name of the requested JAR file and the HTTP status code 200. If the JAR file was not downloaded because the timestamp on it was earlier than the cached file timestamp, then the log file will contain the name of the requested JAR file and the HTTP status code 304.

The following example shows an entry made in a log file using standard NCSA log formatting when the JAR file in the cache is not current and must be downloaded from the Web server.

`ferret.us.oracle.com - - [19/Feb/1999:17:40:12 -0800] "GET /forms_java/f60all.jar HTTP/1.0" 200 -`

The following example shows an entry made in a log file using standard NCSA log formatting when the JAR file in the cache is current and is therefore not downloaded from the Web server.

`ferret.us.oracle.com - - [19/Feb/1999:17:42:29 -0800] "GET /forms_java/f60all.jar HTTP/1.0" 304 -`

It seems that when the JAR file is downloaded, a .JCX file is created in the jcache directory. What is this file?

As the JAR file is being downloaded a temporary copy of it is written to the file system. This temporary copy is identified by the .jcx file extension. Once the download has successfully completed, the .jcx file is moved to a .jc file. If the download is interrupted at any point or the connection is dropped, the operation will not be complete and the temporary file will remain with a .jcx extension. Oracle JInitiator will not load a file with a .jcx extension since it is not valid.

I've verified that the caching is working correctly, but my application is still taking longer to start than I'd like. Why is that?

The JAR file caching provided by Oracle JInitiator does not perform any magic to increase the speed of Java on your system. What it does is save you the time it requires to download the required JAR files for each application startup. The operation of unzipping a JAR file, loading the contained classes into memory, and then authenticating them to ensure that they have not been tampered with takes a significant amount of the startup time. In fact, on a very fast network the amount of time taken to download the JAR file will be smaller than the amount of time required to load the Java classes into memory and perform the authentication. This means that caching saves you very little in terms of overall application startup. On a slower network, the time required to download JAR files will become proportionately larger in the overall startup time, so JAR file caching becomes more important.

## B.5 AppletViewer

This section describes the AppletViewer. The AppletViewer is a JDK component and an Oracle-supported product that client machines use to view applications running on the Forms Server. Upgraded versions are available for download from the Forms Developer Web site.

Oracle provides the f60all.jar file for use with AppletViewer.

Note:

The AppletViewer is only supported on Windows 95 and Windows NT 4.0.Note:

For client browsers using AppletViewer, the HTTPS connection mode is not supported.

### B.5.1 Running Applications in the AppletViewer

To run applications in the AppletViewer, you must complete the following steps:

- Prepare to run your application with the AppletViewer.

- Add the clientBrowser parameter to your base HTML file.

- Set the clientBrowser parameter.

When running your application in the AppletViewer, requests to show a URL (for example, web.showDocument and RUN_PRODUCT) will be ignored by the AppletViewer. If this is the case, you will need to follow the process to trust the Forms applet, as described later in this chapter in Section B.5.2.1, "Trusting the Forms Applet by Registering Its Signature".

#### B.5.1.1 Preparing to Run Your Application with the AppletViewer

In order to prepare to run your application within the AppletViewer, make the AppletViewer available for download and inform your users that they will have to install the AppletViewer on their client machines. Complete the following:

1. Customize JDK_DOWNLOAD.HTM.

     JDK_DOWNLOAD.HTM is the template HTML file that allows your users to download the AppletViewer.

1. Copy JDK.EXE to your Web server.

     You must copy JDK.EXE to the location specified within JDK_DOWNLOAD.HTM.

1. Copy JDK_DOWNLOAD.HTM to your Web server.

     You must copy JDK_DOWNLOAD.HTM to the location specified within JDK_DOWNLOAD.HTM.

#### B.5.1.2 Adding the clientBrowser Parameter to your Base HTML File

To use the clientBrowser parameter, you must have security permissions to issue a system call that executes the named application. In general, when loading Java class files, the Forms applet is not trusted and, as such, cannot issue such system calls. However, when the Forms applet is trusted, it is able to issue these calls. The Forms applet is considered trusted when one of the following is true:

- The Forms applet signature is "registered" on the client machine as described in Section B.5.2.1, "Trusting the Forms Applet by Registering Its Signature".

- The Forms Java class files are installed locally on the client system and the CLASSPATH environment variable is set as described in Section B.5.2.2, "Trusting the Forms Applet by Installing the Forms Java Class Files Locally".

These HTML file examples assume that you trusted the Forms applet by registering its signature on your machine. If you trusted the Forms applet by locally installing the Forms Java class files instead, you should not download the F60ALL.JAR file. Therefore, remove the ARCHIVE="/.../f60all.jar" applet tag from your HTML file.

#### B.5.1.3 Setting the clientBrowser Parameter

To set the clientBrowser parameter, do one of the following:

- Add the clientBrowser parameter to your HTML file.

- Add the clientBrowser parameter to your HTML file, and have each client modify their JDK_SETUP.BAT file.

Add the clientBrowser Parameter to Your HTML File.

This option assumes that every client has its browser executable installed into the same physical directory because the physical path of the browser is hard-coded in the HTML file. For example:

    <APPLET CODEBASE="/forms60code/"
         CODE="oracle.forms.engine.Main"
         ARCHIVE="/forms60code/f60all.jar"
         HEIGHT=480
         WIDTH=640>
         <PARAM NAME="serverArgs" VALUE="module=start.fmx userid=scott/tiger">
         <PARAM NAME="clientBrowser"
         VALUE="c:\programfiles\netscape\communicator\program\netscape.exe">
    </APPLET>

Add the clientBrowser Parameter to Your HTML File and Have Each Client Modify Their JDK_SETUP.BAT File.

This option is best if there is a possibility that clients have installed their browser executables into different physical directories. It does assume, however, that all clients are using the same browser. For example, the HTML file might look like this:

    <APPLET CODEBASE="/forms60code/"
         CODE="oracle.forms.engine.Main"
         ARCHIVE="/forms60code/f60all.jar"
         HEIGHT=480
         WIDTH=640>
         <PARAM NAME="serverArgs" VALUE="module=start.fmx userid=scott/tiger">
         <PARAM NAME="clientBrowser" VALUE="netscape">
    </APPLET>

  And JDK_SETUP.BAT would look like this:

           SET CLASSPATH=C:\ORANT\JDK1.1\JDK\LIB\CLASSES.ZIP
           PATH C:\PROGRAM FILES\NETSCAPE\COMMUNICATOR\PROGRAM;
           C:\ORANT\JDK1.1\JDK\BIN;%PATH%

  ### B.5.2 Registering the Forms Applet Signature

  A signature allows client machines to verify that a file has been downloaded from a valid and trusted entity (a signer). This allows client machines to protect themselves from malicious or malfunctioning Java archive (JAR) files. In order for a JAR file to be validated by a client, the signature of that file must be registered on the client machine. Javakey is a Sun Microsystems command-line tool that generates digital signatures for JAR files.

  The Forms applet is itself a signed JAR file. You have two options for registering the Forms applet signature. Choose one of the following:

  - Register the signature on your client machine(s) using the Forms applet signature we provide.

  - Re-sign the Forms applet with your own signature and register that signature on your client machine(s). If you choose this method, please refer to http://java.sun.com/security/usingJavakey.html for instructions on creating and signing JAR files.

  #### B.5.2.1 Trusting the Forms Applet by Registering Its Signature

  To trust the Forms applet by registering its signature:

  1. Copy the Forms Developer certificate to \<ORACLE_HOME>\6iserver\FORMS60\JAVA on the client machine.

  The certificate is a file named Dev.x509. It is located in \<ORACLE_HOME>\6iserver\FORMS60\JAVA on the server.

  1. Open a DOS Command Prompt, and navigate to \<ORACLE_HOME>\6iserver\FORMS60\JAVA.

  2. Type: javakey -c Developer true

  This command creates a trusted identity for the AppletViewer on the client's identity database using the exact name of the certificate provider.

  1. Press Enter.

  2. Type javakey -ic Developer Dev.x509

  This command imports the Dev.x509 certificate into the client's JDK identity database and associates the certificate with the trusted identity created in step 3.

  1. Press Enter.

  #### B.5.2.2 Trusting the Forms Applet by Installing the Forms Java Class Files Locally

  To trust the Forms applet by installing the Java class files locally:

  1. Copy the \<ORACLE_HOME>\6iserver\FORMS60\JAVA directory to a new directory on the client machine.

  Copy this directory exactly; do not change the directory structure in any way.

  1. Modify JDK_SETUP.BAT in your <ORACLE_HOME> directory:

     1. Open JDK_SETUP.BAT in a text editor.

     2. Modify the CLASSPATH environment variable to reference the new directory.

     3. Save your changes to JDK_SETUP.BAT.

  ### B.5.3 Instructions for the User

  To run an application from within the AppletViewer, complete the following steps:

  - Install the AppletViewer.

  - Run the AppletViewer.

  - Invoke a Web browser from within the AppletViewer.

  #### B.5.3.1 Installing the AppletViewer

  To install the AppletViewer, use the Oracle Installer to install the JDK AppletViewer:

  1. Shut down any active Windows applications.

  2. From the taskbar, choose StartRun.

  3. In the Run dialog, type the following (where D: is your CD-ROM drive letter): `D:\setup.exe` and click OK.

  4. In the Oracle Installation Settings dialog, check the default values for your company name and your <ORACLE_HOME> directory.

  5. Click Oracle Forms Server.

  6. Click Custom.

  7. From the list of Available Products, select JDK AppletViewer.

  8. Click Install.

  #### B.5.3.2 Running the AppletViewer

  To run the AppletViewer:

  1. From a DOS command, navigate to the AppletViewer executable (appletviewer.exe).

  2. Run the AppletViewer executable, specifying the host name, HTML file virtual directory, and HTML file.

  For example, type: appletviewer http://myhost.com/web_html/start.html

  1. Press Enter.

  #### B.5.3.3 Invoking a Web Browser From Within the AppletViewer

  To invoke a Web browser from within the AppletViewer:

  1. Trust the Forms using one of two methods:

     - Register the Forms applet signature.

     - Install the Forms Java class files locally.

  2. Add the clientBrowser parameter to your base HTML file.

| Copyright © 2000 Oracle Corporation. All Rights Reserved. |
|  |  | Contents | Index