Installing Oracle Application Server 10g

To install Oracle Application Server 10g:
1) Start up the installer.
2) Welcome screen
Click Next.



3) Specify File Locations screen
Name: Enter a name to identify this Oracle home.
Example: appserver

Path: Enter the full path to the destination directory. This is
the Oracle home. If the destination directory does not exist,
Oracle Universal Installer creates it.
Example: D:\oracle\appserver
Click Next.



4) Select a Product to Install screen
Select Oracle Application Server 10g and click Next.



5) Select Installation Type screen
Select Business Intelligence and Forms and click Next.



6) Confirm Pre-Installation Requirements screen
Check that you meet the requirements listed on this screen,
select all the checkboxes, and click Next.



7) Select Configuration Options screen
Do not select Oracle Application Server 10g Portal
Do not select Oracle Application Server 10g Wireless
Do not select Oracle Application Server 10g Discoverer
Do not select Oracle Application Server 10g Personalization
Select Oracle Application Server 10g Reports Services
Select Oracle Application Server 10g Forms Services
Click Next.



8) Specify Port Configuration Options screen
Select Automatic and click Next.



9) Register with Oracle Internet Directory
Enter the Host name.
Example: AsServer

Enter the port:
Example: 389
Click Next.



10) Specify OID Login
Click Next.



11) Select Oracle Application Server 10g Metadata Repository
Click Next.



12) Provide Outgoing Mail Server Information
Click Next.



13) Specify Instance Name and ias_admin Password screen
Instance Name: Enter a name for this instance. Instance names can contain alphanumeric and _ (underscore) characters. If you have more than one Oracle Application Server instance on a computer, the instance names must be unique.
Example: InstanceName

ias_admin Password and Confirm Password: Enter and
confirm the password for the ias_admin user. This is the administrative user for this instance. Passwords must consist of at least five characters, and one of the characters must be a number.
Example: InstancePassword
Click Next.



14. Summary screen
Verify your selections and click Install. The installer now installs the files.

15. Configuration Assistants screen
This screen displays the progress of configuration assistants, which configure Oracle Application Server components.

16. End of Installation screen
Click Exit to quit the installer.

Installing Oracle Application Server Infrastructure 10g

To install OracleAS Infrastructure with a new database and a new Oracle Internet Directory:
1) Start up the installer.
2) Welcome screen
Click Next.



3) Specify File Locations screen
Name: Enter a name to identify this Oracle home.
Example: InfrastructureServer

Path: Enter the full path to the destination directory. This is the Oracle home. If the destination directory does not exist, Oracle Universal Installer creates it.
Example: D:\oracle\InfrastructureServer
Click Next.



4) Select a Product to Install screen
Select Oracle Application Server Infrastructure 10g and click Next.



5) Select Installation Type screen
Select Identity Management and OracleAS Metadata Repository and click Next.



6) Confirm Pre-Installation Requirements screen
Check that you meet the requirements listed on this screen, select all the checkboxes, and click Next.



7) Select Configuration Options screen
Select Oracle Internet Directory.
Select Oracle Application Server Single Sign-On.
Select Oracle Application Server Delegated Administration Service.
Select Oracle Application Server Directory Integration and Provisioning.
Do not select Oracle Application Server Certificate Authority.
Do not select High Availability and Replication.
Click Next.



8) Specify Port Configuration Options screen
Select Automatic and click Next.



9) Specify Namespace in Internet Directory screen
Select Suggested Namespace and click Next.



10) Specify Database Configuration Options screen



Global Database Name:
Enter a name for the OracleAS Metadata Repository database, and append your domain name to the database name.
The database name portion of the global database name:
• can contain only alphanumeric characters
• must not be longer than eight characters
• must not contain the word "PORT" or "HOST" in uppercase characters. If you need to use these words, use lowercase
characters.
The domain name portion of the global database name:
• can contain alphanumeric, underscore (_), minus (-), and pound (#) characters
• must not be longer than 128 characters

Example: DBName

SID:
Enter the system identifier for the OracleAS Metadata Repository database. Typically this is the global database name, but without the domain name. The SID must be unique across all databases. The SID name has the same naming restrictions as the database name portion of the global database name (listed above).

Example: SIDName

Select Database Character Set:
Select the character set that you want to use for the database.

Database File Location:
Specify the full path to the parent directory for the data files directory. The directory you specify must exist, and you must have write permissions in it. The installer installs the data files in a subdirectory of the path you specify. The installer uses the database name for the name of the subdirectory. For example, if you specify
DBName for the global database name and D:\Oracle\OracleFile for the database file location, the installer places database files in the following directory: D:\Oracle\OracleFile\DBName The file system that contains the directory must have at least 1.3 GB of free disk space. Additional disk space is required for production databases, depending on the amount of data that you plan to store.
Click Next.

11. Specify Database Schema Passwords screen
Set the passwords for the administrative database users, which are privileged accounts used for database administration. You can use the same password for all users, or specify different passwords for each user.
Click Next.



12. Specify Instance Name and ias_admin Password screen
Instance Name: Enter a name for this instance. Instance names can contain alphanumeric and _ (underscore) characters. If you have more than one Oracle Application Server instance on a computer, the instance names must be unique.
Example: InstanceName

ias_admin Password and Confirm Password: Enter and
confirm the password for the ias_admin user. This is the administrative user for this instance. Passwords must consist of at least five characters, and one of the characters must be a number.
Example: InstancePassword
Click Next.



13. Summary screen
Verify your selections and click Install. The installer now installs the files.



14. Configuration Assistants screen
This screen displays the progress of configuration assistants, which configure Oracle Application Server components.



15. End of Installation screen
Click Exit to quit the installer.

Oracle Developer Suite 10g Quick Installation Guide

During the installation, the following error message will prompt:



To resolve this problem:
1. Go to Control Panel > System > Advance system settings
2. Under Advanced tab: Click on the Settings



3. Click on the [Advanced tab]
4. Under [Virtual memory], click Change.
5. Uncheck [Automatically manage paging file size for all drives] checkbox.
6. Under Drive[Volume Label], click the drive that contains the paging file you want to change.
7. Click [Custom size], type a new size in megabytes in the Initial size(MB) or Maximum size (MB) box.
8. Click Set button and OK.



9. Message prompt:
‘The Changes you have made require you to restart your computer before they can take effect.’

10. Restart the computer.


Installing Forms 10g

1. Download two files from Oracle:
ds_windows_x86_101202_disk1.zip (626,122,752 bytes)
ds_windows_x86_101202_disk2.zip (236,880,881 bytes)

2. Extract both into the C:\oracle directory, as disk1 and disk2.

3. Right click setup.exe and click Properties.



4. Under [Compatibility], check the compatibility to run as Windows XP (Service Pack 2).



5. Run Setup.exe.

6. During the installation process, a Windows Security Alert dialog box appears, like the one below, click the unblock button.



7. The Welcome to the Oracle Universal Installer dialog box opens. Click Next.



8. On the Specify File Locations page,
a) Source Path = Use Default Path
b) Destination Name = DeveloperSuite
c) Destination Path = C:\Oracle\DeveloperSuite



9. On the Select Installation Type page, select the Complete(1.11GB) option button, then click Next.



10. When the Provide Outgoing Mail Server Information page appears, do not enter any values, then click Next.



11. When the Summary page appears, click Install.



12. The install page appears. The installation process will take several minutes.



13. When the End of Installation page appears, click Exit, then click Yes to confirm exiting.



14. The installation completed.


The Oracle Developer Suite download page:
http://www.oracle.com/technology/software/products/ids/index.html

Oracle Developer Suite Installation Guide:
http://download.oracle.com/docs/cd/B25016_07//doc/dl/core/B16012_04/toc.htm

Testing Applications

Although it is a component of Oracle Application Server, OC4J is also included in Oracle Developer Suite to enable you to test your applications on the same machine where you are running Forms Builder. In this role, OC4J functions both as a lightweight Web listener and as a servlet container.
In other words, you do not need to install Oracle Application Server to test your applications. However, you must deploy your production applications to an Oracle Application Server installation.

Starting OC4J
To test applicaiton, you first start an instance of OC4J by executing the batch file provided, called startinst.bat. This file is located in the j2ee\Devsuite\ sub directory of your Oracle Developer Suite installation.
You can execute this batch file on Windows from the Start Menu: Programs > Oracle Developer Suite > Forms Developer > Start (or Shutdown) OC4J Instance.
OC4J starts in a DOS window. You can minimize this window, but if you close it you will abort the OC4J instance. When you are ready to shut down OC4J, you should execute the stopinst.bat file, or use the shortcut in the Start menu.
You can use OC4J to test a form wiht or without Forms Builder.
Testing from Forms Builder
The Forms Builder tool features the ability to test a form using a three-tier environment.
1) Define the settings for running the form:
Select Edit > Preferences from the Forms Builder menu, and then click the Runtime tab.
a) Application Server URL: Clicking "Reset to DEfault" automatically populates the Application Server URL field with the URL to run a form. You can modify this URL if desired. For example, you can specify the use of named configuraiton by adding the config parameter to the end of the URL, such as ?config=summit.
b) Web Browser Location: You can also designate which Web browser to use by clicking Browse and navigating to the executeable for the desired browser.

2) Run the form that is selected in the Object Navigator: Select the Program > Run Form menu command or just click the Run Form button.

Testing from a Browser
While an instance of OC4J is running, you can invoke any form on your development PC from a browser, even if Forms Builder is not open. Use a URL of the following format:
http://:/forms/frmservlet
Add to the URL any parameters that you need to run the form. For example, to run the test.fmx form with parameters specified in a [myapp] named configuration that you have defined in the formsweb.cfg file:
http://my_pc:8888/forms/frmservlet?form=test.fmx&config=myapp

Note: To run a form in this way, the form must be located in a directory that is incuded in the FORMS_PATH environment variable that you set in the default.env file.

Using Forms Applications with the Web Architecture

Utilizing Forms Services
There are four main components of Forms Services. The Forms Runtime Engine is essentially the same as the client/server Runtime of Forms 6i. Two of the other components are Java servlets, and one is the Java applet that displays the application's user interface.
The components of Forms Services are:
~ Forms Servlet
~ Forms Client
~ Forms Listener Servlet
~ Forms Runtime Engine

Comparing Architecture: Client-Server
In cleint/server architecture, the Forms Runtime Engine must be installed on every client. In addition, the executable files are installed on each client as well. This makes it difficult to easily deploy an upgraded application, and access to the application is restricted to those machines on which the software is installed.

Comparing Architecture: Forms Services
The application server in Forms Services architecture is comparable to the client in client/server architecture, because that is where the Forms Runtime Engine is installed and runs. However, another tier is added in Forms Services architecture: that of the client browser. Forms Runtime no longer must be installed on every client, but only on the application server machine.
When a client browser sends an HTTP request for a Forms applications, only the User Interface layer is downloaded to the client machine as a generic Java applet, which is known as the Forms Client. Most of the processing takes place on the application server, but the Java applet knows how to display the UI for any form. After it is downloaded, it is cached on the client machine, so it never needs to the downloaded again.
Applications are easily deployed to the application server machine and can be accessed by any Web client with proper authentication.

Running a Form: Starting a Run-Time Session
1) The user accesses the URL that indicates that a Forms application should be run.

2) The Oracle HTTP Server receives an HTTP request from the browser client and forwards the request to OC4J (Oracle Containers for J2EE), because the /forms/frmservlet path matches the OC4J mount directive for the Forms Servlet in the fomrs.conf file. OC4J maps the request to the Oracle Forms application, whose context root is /forms. It maps the request to the Forms Servlet by using the servlet mapping frmservlet specified in the web.xml file.

3) The Forms servlet dynamically creates an HTML page containing all the information to start the Forms session. The Forms Servlet (running in OC4J) processes the request as follows:
a. Opens the servlet configuration file. If the configFileName parameter is not specified, the default configuation file forms/server/formsweb.cfg is used.
b. Determines which configuration section to use from the formsweb.cfg file. For example, if the URL contains the query parameter config=test, it uses the [test] section.
c. Determines which base HTML file to use, based on the type and platform of the browser that made the request and the settings of various parameters in to formweb.cfg file (specifically, baseHTMLjinitiator, baseHTMLjpi, and baseHTML)
d. Performs variable substitution in the base HTML file, as follows:
Whenever a variable (like %myParam%) is encountered, the Forms Sevlet looks for a matching URL query parameter (for example, &myParam=xxx). If there is no matching URL query parameterr, it looks for a mattching parameter in the formsweb.cfg file. If a matching parameter is found, the %myParam% varible is replaced with the parameter value.
e. Sends the contents back as an HTML page to the user's Web browser. Depending on which base HTML file the Forms Servlet selected, the HTML page sent back to Web browser contains an Applet tag, object tag, or an Embed tag to start up the Forms applet. The Forms applet runs in a JVM, either the Web browser's native JVM or a plug-in JVM (like Oracle JInitiator or Sun's Java plug-in). If the base HTML file selected was for a plug-in, and if the user does not already have that plug-in installed, the user is prompted to install the plug-in. In the case of JInitiator, the download location is under the virtual path /forms/jinitiator (a virtual path defined in the forms.conf file).

4) OHS downloads a generic applet to the client after checking that it has not already been downloaded. The client caches the applet so that it can run future Forms applications without downloading it again. The location of the applet is specified by the applet codebase and archive parameters. For example, if the user is running the Oracle JInitiator, the applet code is loaded from the forms/java/frmall_jinit.jar file. The virtual path definition in the forms.conf file for /forms/java allows the applet code to be loaded from the Web server.

5) The client applet contacts the Forms Listener Servlet to start the session.

6) The Forms Listener Servlet starts an instance of the Forms Runtime Engine (frmweb) on the Forms Services Machine (middle tier). The Forms Listener Servlet passes to Forms Runtime any command-line parameters (such as form name, user ID and password, database, and so on) and any user-defined Forms Builder parameters that were included in the HTML file. The Forms Listener Servlet establishes a connection with the Runtime Engine.

7) The Runtime Engine connects to the database if needed and loads application executable files.

8) The Forms applet displays the application's user interface in the main window of the user's Web browser.

9) The Forms Listener Servlet, working through OHS, manages communication between the Forms applet and the Forms Runtime Engine.

Role of the Forms Servlet
HTTP requests for a Forms application are directed to the Forms Servlet, which is a Java servlet that creates the HTML file that initiates the download of the Forms applet and starts the application. The Forms Servlet also plays a part in single sign-on, but its main role is dynamically constructing the HTML file that starts the application.

OC4J invokes the Forms Servlet, passes the request object to it, and then passes the response object that returns the servlet's output to the client. The output from the Forms Servlet is an HTML file that invokes the Forms Client.

The Forms Servlet constructs the HTML file dynamically by merging information from the following sources:
~ Forms base THML file (basejini.html or other)
~ Forms Web configuration file (formsweb.cfg by default)
~ Application's URL parameters

The base HTML file contains variables for certain parameters. Values for those parameters can be supplied either by the Forms Servlet configuration file (formsweb.cfg by default) or by the URL itself. Values supplied in the URL take precedence over those supplied by the formsweb.cfg file.
For example, the formsweb.cfg file may define the parameter form=orders.fmx. if you send an HTTP request for the Forms Servlet withour specifying any parameter in the URL, the Orders form runs. If however, the URL requests to run the Customers form (http://server:port/forms/frmservlet?form=customers.fmx), then the Customers form runs.

Role of the Forms Client
The Forms Client is the generic Java applet that is downloaded from the application server by the HTML file that starts the Forms application. It consists of a set of Java classes contained in JAR file. When downloaded, the Forms Client cached on the client machine and does not need to be downloaded again.
The Forms Client runs within the Java Runtime Environment on the client machine. It can display any form, regardless of the form's size and complexity.

Responsibilities of the Forms Client
The Forms Client performs the following tasks:
~ Displays the form's user interface
~ Processes user interaction back to Forms Services
~ Processes incoming messages from Forms Services

Role of the Forms Listener Servlet
The Forms Listener Servlet is a Java servlet that runs within OC4J. The mod_oc4j component of the Oracle HTTP Server directs HTTP requests for the Forms Listener Servlet directly to servlet instances.

Responsibilities of the Forms Listener Servlet
The Forms Listener Servlet is in charge of:
~ Starting a Forms Runtime process for each client
~ Managing the network communications that occur between the client and its associated Forms Runtime process, through the Web server

This means that the client sends HTTP requests and receives HTTP responses from the Web server (Oracle HTTP Server) process itself. Because Oracle HTTP Server acts as the network endpoint for the client, there is no need to expose additional server machines and ports at the firewall.

Benefits of the Forms Listener Servlet
~ Broad range of firewalls and proxies supported:
With no direct connection between the client and the Forms Runtime process, this architecture supports any firewall or proxy that is able to work with any standard persistent servlet.
~ No protocol restriction:
Although use of HTTP/1.1-compliant proxies provides better performance, this architecture works well with proxies implementing ony HTTP/1.0.
~ No extra process to manage:
Because OC4J automatically instantiates the servlet, there is no need to start and stop a service or process.
~ No specififc certificate to purchase and manage for SSL deployment:
The HTTPS connection exists only between the client browser and the Web server: there is no specific configuration at the Forms Services level.
~ Support for standard load-balancing techniques:
Load balancing is performed for the Web server: there is no Forms-specific load balancing.

Role of the Forms Runtime Engine
The Forms Runtime Engine is a process on the Application Server that is started by the Form Listener Servlet. You cannot start the Forms Runtime Engine directly, as you could when running a Forms application in client/server mode with previous Forms versions. However, it performs a similar function to the client/server Forms Runtime Engine except that the user interface is handled by the Java-based Forms Client.

The Forms Runtime Engine has the following responsibilities:
~ Loads the Forms application files (.fmx, .mmx, .plx or .pll) and handles all the application logic and Forms functioanlity, executing the code that has been written into the application.
~ Connects to and communicates with the Oracle database
~ Manages requestes from the Forms Client and sends metadata to client to describe the user interface.

Selecting a Java Runtime Environment
A Web browser can run a Java applet because the browser provides a Java Runtime Environment (JRE). The JRE consists of:
~ Java virtual machine (JVM):
A software execution engine that safely and compatibly executes the byte codes in Java class files.
~ Java core classes
~ Supporting files

Because the Forms Client uses advanced features, not all Web browsers are able to natively run the Forms client. To support these advanced features, the client machine must use one of the supported JREs. You can view the latest information on supported clients on OTN:
http://otn.oracle.com/products/forms/htdocs/10g/clientsod_forms10g.html.
You may choose to use JInitiator because it is certified with more browsers and all patch levels of Forms. When Forms Services is configured properly, JInitiator is automatically downloaded to the client machine when the user requests a Web page that requires it. The plug-in installs automatically if the browser is Internet Explorer; the user is prompted to install the downloaded plug-in if the browser is Netscape.

Configuring Forms Services to Use Jinitiator
To configure Forms Services to download JInitiator, you set a few parameters in the Forms Servlet configuration file. By default, the Forms Servlet is configured to use JInitiator. Below are the default values that relate to JInitiator 1.3.1.22:
~ To define the page displayed to users of Netscape to assist them in downloading and installing Jinitiator: jinit_download_page=/forms/jinitiator/us/jinit_download.htm
~ To specify the version of JInitiator to download and to use:
Jinit_classid=clsid: CAFECAFE-0013-0001-0022-ABCDEFABCDEF
Jinit_exename=jinit.exe#Version=1,3,1,22
Jinit_mimetype=application/x-jinit-applet;version=1.3.1.22
~ To specify the base HTML file to use with JInitiator:
baseHTMLjinitiator=basejini.htm
~ To specify the Java client (applet code) to use with JInitiator:
Archive_jini=frmall_jinit.jar

The values to use for jinit_classid, jinit_exename, and jinit_mimetype for a particular JInitiator version can be found in the file jinit-version.ini (or jinit-version.txt) in the \jinit\us subdirectory of the Oracle Application Server or Oracle Developer Suite installation.

Runtime Model

There are a number of components to the web-deployed forms runtime environment. The best way to understand what the components are responsible for and how they work together is to examine the lines of communication during the two main events: startup and runtime.

STARTUP STEPS
The first step in starting a form is the client request, via a URL (uniform resource locator), to the application server for a startup HTML file. The startup HTML file contains special HTML tags that start the JVM and ensure that the proper Java class files are available for the session. There are examples of the HTML startup file in the online documentation as well as in the Forms directory. The file uses different tags for Internet Explorer and for Netscape but you can embed both commands in a single file. The web listener on the application server determines that the URL indicates a standard static HTML file, retrieves the HTML from the file system, and sends it to the client browser.
The Forms 6i install loads two types of files that are used when starting up the first form. These are loaded into the forms60/admin/server directory. The first type of file is the startup file, which has two manifestations. BASE.HTM (used for appletviewer or native browser applets) and BASEJINI.HTM (used when JInitiator is used to display the form) contain values that affect the startup, some of which are specified as replaceable parameters. These files work the same way as the STARTUP.HTML file described above, but they work with the second type of file, the configuration file, to fill in the values of the various startup parameters that can be used in this environment. The configuration file, called FORMSWEB.CFG, contains the same type of parameters. Values that are assigned to the parameters in this file are used for the replaceable parameters in the startup files. The sample HTM files that are used should be complete enough that you would not need to change them. Oracle recommends that you make changes to the parameter values in the configuration file. This will allow you to keep different configuration files for different applications and customize the parameters for each application. There is more information on the contents and workings of these files in the OIN document Deploying Forms Applications to the Web with Forms Server document (Help→Manuals in the Form Builder). The next set of steps handles the startup of the Forms runtime and the form itself. The tags in the HTML file indicate that JInitiator will be used to display the form through the standard plug-in extension mechanism provided by the browser. They also indicate the Java class files that are required by the Java applet and that the applet start a connection with the Developer Forms Server listener (through the serverArgs and serverPort parameters). This information in the HTML file is sent to the web listener, which passes the request for a connection to the Forms Server Listener so that the Forms Server Listener can establish the connection with the client. The Java class files are retrieved from the application server (if they have not been cached on the client machine) and sent to the client browser. The browser starts the Forms client applet session as a separate window or as a window embedded in the browser. The Forms client contacts the server to request a runtime session. The Forms Server Listener then starts up a Forms Runtime Engine or Forms servlet session.

RUNTIME STEPS
The Forms Server Listener breaks the connection between the web listener and browser and sets up a TCP/IP socket connection directly from the Forms Runtime Engine to the browser. The form running in that session accesses forms and other files in the file system and communicates with the database through a standard SQL*Net or Net8 connection. The Forms client session is a child process of the browser session.

Middle Tier

The Forms runtime engine running on the middle tier (application server) accesses the file system on the server (or another networked location) and presents the user interface layer in a Java applet on the client tier. The application server in this environment is essentially the same as the client tier of the client/server environment. It runs the runtime engine (called Forms Services) that is a separate process or Java servlet and accesses the file system for Forms files and the database for data. It is critical to remember that the form presented in the client’s browser is actually running on the middle tier with only the presentation layer revealed on the client’s side. The client is considered “thin” from a software standpoint because it does not need to store the Forms runtime programs or the Forms application files. The application server stores the runtime files and a Forms runtime process or servlet process(shown in Figure B as the runtime engine). There are other web components that also run on the middle tier to start a runtime session: the Forms Server and the HTTP listener (Oracle9i application server or any non-Oracle web server such as Netscape Enterprise Server, Microsoft Internet Information Server, or Apache). The Forms Server and the HTTP listener are not used while a form is running, although the Forms Server is used to start the form. The database server runs the database software to manage the database files the same way it does in the client/server model. The only real difference between the client/server and a multi-tier model is that the multi-tier client is split into two machines: the application server tier and the client. The database server is the same in client/server and multi-tier models.

Java Virtual Machine

The client runs a browser and, in the case of web-deployed forms, the browser runs a Java Virtual Machine (JVM) supplied by JInitiator. JInitiator is the Oracle version of a Sun Microsystems browser plug-in. The plug-in extends the capabilities of the browser so it can present the interface to a form running on an application server. JInitiator takes input from the client as well, but most of the processing, such as validation and trigger code, executes on the application server or database server. It contains the results of network optimizations that Oracle has built into the code. JInitiator contains the same functionality as AppletViewer (an earlier version of the Oracle JVM). Both JInitiator and AppletViewer are pure Java solutions and rely heavily on Sun’s Java implementations. Oracle has certified Microsoft Internet Explorer (IE) Release 5.0 as a stand-alone environment for web-deployed forms with no plug-in (JInitiator) requirement. JInitiator offers some benefits over the native(IE 5.0) browser support, such as on-demand JAR files, which load Java class archive files when required instead of at startup, and persistent JAR file caching, which saves JAR files onto the disk so they can be used from a local installation instead of from a network installation. This saves download time. JInitiator offers the level of support required for running Oracle Applications on the Web.

The Architecture

Web-deploying your Forms applications uses a mix of Web and client/server. In essence, it is a three-tier environment that is really just an evolution of an old environment—that of two-tier or client/server. Client/server architecture consists of two logical machines: a client and a server (although you can run both client and server processes on the same machine). The client runs the runtime software and accesses the Form Builder files on the local machine or on a file server. The client is “thick,” that is, it must have enough hard disk space and RAM to store and run the Forms runtime files and the forms. The server runs the database management system, which also accesses the data files. Figure A shows the components of a simple Oracle Forms Developer client/server runtime environment. In this model, the client machine accesses application runtime files on its disk system (or on a file server disk system). The runtime program operates on the client machine. This communicates with the database server for its data needs. The web-deployed forms multi-tier (or web-enabled client) architecture consists of three logical machines: a client, an application server, and a database server. Normally, each tier is located on a separate machine. It is possible to run the tiers on one or two machines, but maintenance and performance optimization are easier if the tiers are on separate machines.

Using Java in Forms

Beginning with Forms, release 6, you can extend the Forms client using JavaBeans and Pluggable Java Components (PJCs):
• JavaBeans enables you to easily extend and customize the functionality of a form by embedding a Java component.
• Pluggable Java Components (PJCs) enable you to change the function or appearance of Forms items. PJCs make it possible to extend the standard Forms user interface and provide a varied experience for application users. PJCs offer the additional possibility of being able to perform client-side validation on an item, thus reducing network traffic. You can integrate Java code from the middle tier and from external Web services using the Java Importer introduced in Forms6i. This tool automatically generates PL/SQL packages and procedures that enable you to create and use Java objects directly in your Forms applications. For more information about the Java Importer, see the white paper The Oracle Forms Java Importer, available on OTN. Forms can also make use of Java code stored in the database by calling a Java stored procedure from within PL/SQL.

Oracle Problem: Internet Explorer on Windows Vista

Problem:
Internet Explorer on Windows Vista CANNOT be used to run the Web Forms runtime. It dies immediately when you try to run a form.
Solution:
1) Install Sun & Jinitiator (jre-6u5-ea-windows-i586-p-iftw.exe).
2) Copy Jvm.dll from c:\Program Files\Java\jre1.6.0_02\bin\client.
3) Paste Jvm.dll to c:\Program File\Oracle\Jinitiator1.3.1.4\bin\hotspot

Oracle Problem: Unable to load image for image item

Problem:
Unable to load image for Image Item.
Cause:
By forms applet parameter
imageBase=DocumentBase
Solution:
Change # Forms applet parameter
imageBase=CodeBase

Oracle Problem: oracle.forms.webutil.browser.BrowserFunction bean not found

Problem :
oracle.forms.webutil.browser.BrowserFunctions bean not found. WEBUTIL_SEPARATEFRAME.ShowMenuBar will not work.
Cause:
Missing frmwebutil.jar
Solution:
Append frmwebutil.jar
#Forms applet archive setting for JInitiator
Archive_jini=frmall_jini, frmwebutil.jar

Oracle Problem: Open HTTP connection failed

Problem:
java.lang.ClassNotFoundException:java.ioException
Open HTTP connection failed.
Cause:
Missing JAR files
Solution:
1) Edit formsweb.cfg.
2) Append archive_jinit=frmall_jinit.jar, frmwebutil.jar, imgdb.jar, Jacob.jar, timeout.jar, laf.jar

Oracle Problem: java.lang.UnsupportedClassVersionError:oracle/forms/fd/DrawLAF

Problem:
java.lang.UnsupportedClassVersionError:oracle/forms/fd/DrawLAF(Unsupported major.minor version 48.0)
Cause:
This bean needs at least a JRE 1.4, so it won’t run with Jinitiator that is 1.3
Solution:
1)Upgrade Sun Java Plugin.
2)Copy Jvm.dll from c:\Program Files\Java\jre1.6.0_02\bin\client
3)Paste Jvm.dll to c:\Program File\Oracle\Jinitiator1.3.1.4\bin\hotspot

Oracle Problem: Oracle.Forms.webutil.file.filefunction bean not found

Problem:
Oracle.Forms.webutil.file.filefunction bean not found
Cause:
Restriction form webutil - Cannot use webutil function in Pre-Form, When-New-Form-Instance & When-New-Block-Instance
Solution:
Create timer for webutil function

Oracle Problem: Internal Server Error(OPMN)

Problem:
Internal Server Error, OPMN, Failed to start a process
Cause:
Dependency Check Failed
Solution:
Edit \opmn\conf\opmn.xml
Remove the lines:
ias-component id=”OC4J”
dependencies
OID infrastructure=”true”
/dependencies
process-type id=………

Oracle Problem: ORA-06508

Problem:
ORA-06508
Cause:
Uncompiled library and program units
Solution:
Recompile library

Oracle Problem: WUL-928

Problem:
WUL-928
Cause:
Sun & Jinitiator
Solution:
1) Uninstall Sun & Jinitiator (All).
2) Reinstall Sun & Jinitiator (jre-6u5-ea-windows-i586-p-iftw.exe).
3) Copy Jvm.dll from c:\Program Files\Java\jre1.6.0_02\bin\client
4) Paste Jvm.dll to c:\Program File\Oracle\Jinitiator1.3.1.4\bin\hotspot

Run-Time Session

1) The user accesses the URL that indicates that a Forms application should be run.
2) The Oracle HTTP Server receives an HTTP request from the browser client and forwards the request to OC4J (Oracle Containers for J2EE), because the /forms/frmservlet path matches the OC4J mount directive for the Forms Servlet in the fomrs.conf file. OC4J maps the request to the Oracle Forms application, whose context root is /forms. It maps the request to the Forms Servlet by using the servlet mapping frmservlet specified in the web.xml file.
3) The Forms servlet dynamically creates an HTML page containing all the information to start the Forms session. The Forms Servlet (running in OC4J) processes the request as follows:
a. Opens the servlet configuration file. If the configFileName parameter is not specified, the default configuation file forms/server/formsweb.cfg is used.
b. Determines which configuration section to use from the formsweb.cfg file. For example, if the URL contains the query parameter config=test, it uses the [test] section.
c. Determines which base HTML file to use, based on the type and platform of the browser that made the request and the settings of various parameters in to formweb.cfg file (specifically, baseHTMLjinitiator, baseHTMLjpi, and baseHTML)
d. Performs variable substitution in the base HTML file, as follows:
Whenever a variable (like %myParam%) is encountered, the Forms Sevlet looks for a matching URL query parameter (for example, &myParam=xxx). If there is no matching URL query parameterr, it looks for a mattching parameter in the formsweb.cfg file. If a matching parameter is found, the %myParam% varible is replaced with the parameter value.
e. Sends the contents back as an HTML page to the user's Web browser. Depending on which base HTML file the Forms Servlet selected, the HTML page sent back to Web browser contains an Applet tag, object tag, or an Embed tag to start up the Forms applet. The Forms applet runs in a JVM, either the Web browser's native JVM or a plug-in JVM (like Oracle JInitiator or Sun's Java plug-in). If the base HTML file selected was for a plug-in, and if the user does not already have that plug-in installed, the user is prompted to install the plug-in. In the case of JInitiator, the download location is under the virtual path /forms/jinitiator (a virtual path defined in the forms.conf file)

Issues to Consider Before Upgrading

Depending upon whether you are migrating from client/server or character mode, you may need to consider one or more of the following issues prior to upgrading your applications:
- Defining UI standards: If you are migrating from character-mode deployment, you should sonsider the appearance of the user interface, which now can be enhanced with different colors and fonts. you may want to define standards for the look and feel of the application.
- Upgrading referenced forms, menus, libraries, and object libraries: If your application contains objects that are referenced from other modules, be sure to upgrade the referenced modules first. you also must first upgrade attached PL/SQL libraries and menus used by a form prior to upgrading that form.
- Defining navigation: In character-mode applications, users navigate mainly by using the eyboard. On the Web, users are no longer restricted to keyboard navigation, so you may need to redefine the logic of the application. For example, validation should be attached to the item rather than to the attempt to navigate to the next item.
- Sharing code and objects: You should consider ways to promote similarities among objets. Because only UI differences are transmitted over the network, fewer differences among objects reduces network traffic. Using Object Groups, Property Classes, and Object Libraries with SmartClasses helps to accomplilsh this. You can also share libraries among Forms modules to reduce memory requirements.
- Recoding triggers: If your forms contain any V2-style triggers, you must recode them in PL/SQL prior to the upgrade. V2-style triggers are dropped when you upgrade to Oracle Forms 10g.

Streamlining Oracle Forms

With the move to pervasive Web deployment and the Web-only releases of Oracle Forms, Oracle is simplifying the product set and continuing to optimize the product for building and deploying Internet applications.. This allows Oracle to put all its efforts into improving the already rich Web UI that is based on Java, and to extend the openness of the product by allowing Java integration on all three tiers.
Features being removed:
- Client/server run-time executable
- Character-mode run-time executable
- Operating system-specific item types: OLE container, VBX, OCX, and sound item
- Menu features:
- Plus, Form, and Macro command types
- Menu parameters
Note: Full-screen and bar menus were removed from Forms6i and remain unsupported in Oracle Forms 10g.

• Built-ins and properties that are obsolete and no longer supported:
- Those related to obsolete item types, full-screen menus, and character-mode properties and logical attributes
- BREAK and the DEBUG package
- RUN_PRODUCT built-in (except for integrating graphics)
- RUNTIME_COMPATIBILITY_MODE and DATE_FORMAT_COMPATIBILITY_MODE properties
- Menu built-ins related to obsolete menu features
• Forms version 2-style triggers and lists of values
• Command-line options to Runform that relate to obsolete features
• Use of the database for module storage.

Removed components:
- Oracle Forms Listener and Load Balancing Components
- Oracle Forms Server Cartridge and CGI
- Oracle Procedure Builder
- Oracle Project Builder
- Oracle Translation Builder
- Oracle Graphics
- Oracle Query Builder/Schema Builder(except as used internally, as in LOV Wizard)
- Oracle Terminal
- Open Client Adapters (OCA)
- Tuxedo Integration
- Performance Event Collection Services (PECS)


Stricter usage of triggers and builts-ins:
- Stricter enforcement of defining triggers at levels that make sense:
- Allowed only at block of form level:
- When-Clear-Block
- When_Create-Record
- When-Database-Record
- When-New-Record-Instance
- When-Remove-Record
- Allowed only at form level: When-New-Form-Instance

- Preventing programmatic navigation (GO_ITEM) to nonenabled items, unless FORMS_REJECT_GO_DISABLED_ITEM(new environment variable) is set to FALSE

Oracle AS 10g Forms Services

Oracle Forms Services is a component of Oracle Application Server 10g for delivering Oracle Forms Developer applications to the Internet. Oracle Forms Services automatically provides the infrastructure that is needed to successfully deliver applications on the Internet throungh built-in services and optimizations.
Oracle Forms Services uses a three-tier architecture to deploy database applications:
- The client tier contains the Web browser, where th application is displayed and used.
- The middle tier is the application server, where the application logic and server software reside.
- The database tier is the database server, where enterprise data is stored.
Note: The Forms Services tiers are logically separate but could reside on the same or on different computers.

Oracle Application Server 10g Architecture

Oracle Application Server 10g provides all the middleware services that you need to deploy and manage Forms applications. Its layered architecture includes the following:
- Communication Services:
These services handle incoming requests and route them appropriately for processing.
- Application Runtime Services:
AJ2EE container provides a common run-time environment for applications developed as JSPs, servlets, EJBs, and Web sesrvices.
- System Services:
There is a comon set of run-time services for J2EE application and Web services, such as request dispatch and scheduling, resource management, resource pooling, clustering, fault monitoring, transaction management, and messasing.
- Management Services:
These sevices provide a comprehensive management framework to monitor the system status, performance, faults, resource consumption, and usage. The framework can also manage a single instance or cluster of instances, centrally administer security for users and applications, and provide a comprehensive directory service to manage users.
- Connectivity Services:
These services provide connectivity to a variety of systems.
- Solutions:
This comprehensive set of solutions is built on the infrastructure described above. The set includes enterprise portals, enterprise integration, business intelligence, wireless, and Internet service provider (ISP) solutions.

Oracle 10g Products and Forms Development

Oracle 10g provides a complete Internet infrastructure that makes it easy for companies interested in e-commerce to create and deploy scalable, Web-based applications. Oracle markets three products to help you achieve this:
- Oracle Database 10g:
Manages all of your information, both structured (such as operational data from your applications) and unstructured (such as documents, XML, and images). Oracle tools such as Forms can automatically reuse the database structure and its integrity constraints, which reduces the amount of manual coding.
- Oracle Application Server 10g:
Runs all of your applicaitons, including Java, wireless, portals, and business intelligence. By sing Oracle Application Server, you can deploy and manage all applications developed with Oracle Developer Suite. The Oracle Application Server contains Oracle Forms Services, which you use to deploy your Forms applications.
- Oracle Developer Suite 10g:
Enables you to quickly and easily build scalable, secure, and reliable e-business applications. The suite provides a complete and highly productive development evnironment for builging applications. Oracle Forms Developer, which you use to build Forms applications, is part of Oracle Developer Suite.

Why Move to the Web?

The Forms product has evolved over the past serveral years to met the changing technology needs of its users. Originally a character-mode development tool that was part of the database distribution, Forms entered the GUI client/server arena in 1994 with the introduction of Forms 4.0. Four years later, Web deployment of Forms applications became an option. Now that the latest versions of Forms are for Web deployment only, Oracle is able to focus its resources on features that optimize Internet application developerd with Forms.
By moving your client/server Forms applications to the web, your organization benefits from:
- Improved productivity
- Reduced costs
- Increased accessibility
- Maintenance of product support
- Simplified load balancing
- Ability to leverage developers and users existing skills and knowledge
- Availability of a rich user interface
- Integration with the latest techologies
- Utilization of new features