FAQ Oracle Application Server Logo
 Oracle Application Server Forms 10g
 August 2004


1. OracleAS Forms Services
2. Integration
3. Platform Support Issues
4. Single Sign-on
5. Upgrading to Oracle AS Forms 10g (9.0.4)
6. Integration with Oracle9AS Portal
7. Builder Environment


1. OracleAS Forms Services

1.1 Can I run Forms using a Separate Forms Listener Process?

No.  In subsequent patches to Forms 6i , we introduced a new way of running Forms on the web, without the need for a separate Forms Listener process.  This is a Java Servlet called the Forms Listener Servlet.  From Oracle9i Forms and higher, the Forms Listener Servlet is the only supported method of deploying Forms.

1.2 Can I call a Forms application using the Forms CGI?

No.  In subsequent patches to Forms 6i , we introduced a new way of building the start page for a Forms application, the Forms Servlet.  This Java Servlet does the same job as the Forms CGI, namely the construction of an HTML page based on configuration information supplied on the URL in combination with the formsweb.cfg file.  From Oracle9i Forms and higher, this Servlet should be used instead of the CGI.

1.3 Do I still need to download JInitiator on the client to run a Forms application?

JInitiator is a Java Virtual Machine (JVM) that plugs into either Netscape Communicator or Microsoft Internet Explorer to provide an alternative JVM to that which those browsers provide.

Depending on the client platform the browser is running, we are supporting the following JVMs:

  • Windows32
    • Oracle JInitiator (with Netscape and Internet Explorer)
    • Internet Explorer 5.x native JVM
  • Macintosh
    • Apple MRJ (with Internet Explorer 5.0) or Safari (pending more information from Apple)
  • Solaris
    • Sun JDK and Java plug-in

For the definitive level of certification and possible restrictions, please refer to the "Client Platform Support" statement of direction available on OTN (otn.oracle.com/products/forms).

1.4 What is the difference between the Forms Servlet and the Forms Listener Servlet?

The Forms Servlet is in charge of dynamically generating the HTML page containing the necessary Forms Client information.

The Forms Listener Servlet is the architecture for Internet deployment. The Forms Listener Servlet manages the communication between the Forms Java Client and OracleAS Forms Services.

1.5 Can I deploy my Forms application over the Internet through firewalls and proxies?

Yes.  Forms works with a wide range of firewalls and proxy servers.

1.6 When will the Forms Listener Servlet use HTTP 1.1 requests to the Web server, and when will it use HTTP 1.0 requests?

The Forms Listener Servlet will always make HTTP 1.1 requests if the Web server and any intervening proxies, support this protocol level. The Servlet will drop down to using HTTP 1.0 if Web server or one of the proxies can only support that level of the protocol.

1.7 How can I manage and monitor OracleAS Forms Services activity remotely?

OracleAS Forms Services is integrated with Oracle Enterprise Manager (EM) to allow the administration and the monitoring of OracleAS Forms Services. From the browser based EM console, you can monitor the client sessions running within a Forms Service, viewing how much memory and CPU each is using.  Individual sessions can even be killed from the EM console.

1.8 How do I run my Forms applications in several different languages on the same machine?

Multiple entries for a particular application can be defined in the formsweb.cfg file, with each application name suffixed with the country code, for instance HR, HR.DE, HR.FR and so on.  When a URL is submitted with the value CONFIG=HR, the Forms Servlet will detect for the submitting browsers language code and look for a suitable version of HR with that code appended.  Thus a user running a browser in French would pick up the HR.FR version of the configuration.  If a particular configuration and language code combination is not found in the formsweb,cfg, then the base configuration (in this case HR) will be used.  Each of the country specific versions of the HR application can define settings such as the environment file accordingly. 

1.9 How can I best measure the memory requirements if my application is on the middle tier?

It is tempting to use operating system tools such as Task manager on Windows or ps on UNIX to provide a figure for memory consumption, based on the amount of memory shown to be consumed by a single session, and multiplying by the projected population.  However, these utilities give a misleadingly high figure for memory consumption, as they fail to take into account the extensive sharing of memory that takes place between concurrent Forms sessions. 

The only way to test the scalability of an application is to define a realistic usage scenario and simulate the activity of concurrent users by playing back this scenario. When the performance degrades significantly, you have reached the maximum number of users on the machine configuration.  You can then calculate the memory consumption per user accordingly.  Tools, such as Mercury LoadRunner, are available to help simulate such user loads.


2. Integration

2.1 Is it possible to call Java classes from a Forms application on the application server side?

Yes.  Oracle Forms Developer gives you the ability to generate the PL/SQL code necessary to call any Java class from a Forms application, using the Java Importer facility.

With the code  generated by this feature, you are able to call compiled Java classes, directly from PL/SQL, in the OracleAS Forms Services on the middle tier.

2.2 Can I base a Forms block on an EJB or BC4J component?

The Java importer facility gives you the ability to use an Enterprise Java Bean (EJB) or Business Components for Java (BC4J) component as the basis of a Forms Block.  However, we recommend that you do not do this for the following reasons:

  • Calling out to Java from Forms has a small but significant performance implication.  The Java Native Interface (JNI) that is used to call out from the Forms C code to Java does impose a bottleneck on the operation as values and method calls are transferred.  Although this overhead is not noticeable in a simple function call, it will become evident if a Form Block is based on Java in this way.  The normal functionality of the block requires many calls back and forth to the datasource and in this case the delay imposed by the JNI bridge, on each call, will result in noticeably slower performance than that for a block based directly on a table, view or PL/SQL stored procedure.
  • Whenever a Forms process calls out to Java, it must have a Java Virtual Machine loaded into memory.  This will increase the memory footprint of your application.
  • Using a foreign data source in this way is a complex task in terms of hooking the Java Code up to the Forms transactional triggers. The maintenance burden is also high if changes have to be made, as both the PL/SQL interfaces and the Java code itself may need to be changed.
  • An EJB or BC4J component will create it's own JDBC connection to the database and not re-use the existing Forms connection, doubling the user load on the database.

2.3 When running a form on the Web, can I use OLE to talk to programs such as MS Word or Excel?

Yes.  For OLE integration on the client, Oracle have provided a utility called WebUtil for client-side integration.  For more information on WebUtil, including a WebUtil FAQ, visit the WebUtil area on OTN.

OLE integration also works for external OLE servers invoked using OLE2.CREATE_OBJ.  The OLE server you are invoking must be available on the middle tier machine where OracleAS Forms Services resides.  Consequently the middle tier machine must be a Windows NT or Windows 2000 machine.  Embedded OLE containers and ActiveX (OCX) controls are not supported when running on the Web.

2.4 I currently have a client-server application that uses an embedded ActiveX control to communicate with an external device.  How can I maintain this functionality when I deploy the application on the Web in Oracle Forms ?

Assuming that the device in question (for example, a Scanner) is attached to each client machine, rather than the server, you will use a Pluggable Java Component (PJC) to extend the capabilities of the Forms Java Client and allow it to talk to the hardware in question.  Oracle JDeveloper provides a Wizard to help you build such Pluggable Java Components.

WebUtil, a utility for Oracle Forms provided by Oracle, offers other options for client-side integration, such as calling out to DLLs on the client.    For more information on WebUtil, including a WebUtil FAQ, visit the WebUtil area on OTN.

2.5 How can I upload a file from a browser client to my middle tier?

You can either use a conventional Web upload to do this, or you can use WebUtil, a utility for Oracle Forms provided by Oracle.  With WebUtil, you can upload to the application (middle) tier, or to the database.  For more information on WebUtil, including a WebUtil FAQ, visit the WebUtil area on OTN.

2.6 I want to write a JavaBean for use as a pluggable component for the Forms Java Client.  What version of the Java Development Kit (JDK) should I use?

Pluggable Java components for Oracle Forms can be build with 1.3.x or 1.4.x of the JDK.

2.7 Do I have to write a wrapper to interface the Forms Java Client with a pre-existing Java Bean?

This is an option in Forms and still works. However, we have added enhanced support for JavaBeans in Forms, which allows Forms to introspect the JavaBean at runtime and removes the need to write any Java code to handle the integration.  Enhanced JavaBean support is covered in the on-line help.

2.8 When running a Form on the Web where do commands such as HOST and TEXT_IO execute?

In Web-deployed Forms these commands, built-ins, User Exits, and ORA_FFI code execute on the middle tier.  To execute the commands on the client browser machine, write your own Pluggable Java Components or use WebUtil, a utility for Oracle Forms provided by Oracle.  For more information on WebUtil, including a WebUtil FAQ, visit the WebUtil area on OTN.

2.9 Can I use the functions in the D2KWUTIL library when Forms is running on NT?

No. We don't support the use of D2KWUTIL in the middle tier. Many of the functions in the library require access to Window Handles, which will not work in the Web deployment scenario.  While some functions, such as WIN_API_ENVIRONMENT.GET_COMPUTER_NAME(), do work, they return information about the application server machine, not the client. Some functions, such as the bitwise operations, continue to function without a problem.

However, Oracle have a provided a utility called WebUtil which will give you parity with the functionality of D2KWUTIL, and more!  For more information on WebUtil, including a WebUtil FAQ, visit the WebUtil area on OTN.


3. Platform Support Issues

3.1 Can I run OracleAS Forms Services on Linux?

Yes, OracleAS Forms Services are available as part of the OracleAS Enterprise Edition on Linux.

3.2 Will Forms or JInitiator be supported on Windows 95 once Microsoft has ceased support of the platform?

No.  Once a platform is no longer supported by the operating system vendor we also cease support of products on that platform.

3.3 What Win32 Platforms can Forms Services be deployed on?

Only Windows NT 4.0 and Windows 2000 are supported as platforms for hosting the OracleAS Forms Services. Windows XP is currently undergoing certification for hosting OracleAS Forms Services.

Browser clients that access Forms applications using JInitiator or native Internet Explorer can be based on any supported Win32 variant:

  • Windows 95 (while supported by Microsoft)
  • Windows 98 (while supported by Microsoft)
  • Windows ME (with patch 6, while supported by Microsoft)
  • Windows NT 4.0
  • Windows 2000
  • Windows XP

Please refer to metalink.oracle.com for definitive certification matrix.


4. Single Sign-on

4.1 Can I use Single Sign-On with Forms Services?

Yes. OracleAS Forms Services applications can be configured as an external application to the Oracle Login Server. The Login Server is the Oracle unified Single Sign-On (SSO) solution,  mapping the Forms application user to a Single Sign-On user account.  In addition, your Forms applications can take advantage without any modification of your Forms modules!

4.2 Can I use LDAP to authenticate Forms Services?

Not directly. However, Oracle Login Server is able to authenticate against a LDAP directory and thus a Forms application can take advantage of this in a SSO environment. But you cannot use access control information stored in a LDAP directory with Forms.


5. Upgrading to OracleAS Forms 10g (9.0.4)

5.1 What versions of Forms can I upgrade to OracleAS Forms 10g (9.0.4)?

Only Forms 6.0, Forms 6i , and Oracle9i Forms are supported for direct upgrade to Oracle Forms 10g (9.0.4). Older versions of Forms should be upgraded to Forms 6i or 9i first.

5.2 Can I run Client Server or Character Mode applications in OracleAS Forms 10g?

No. Oracle Forms 10g only supports Web deployment.  Applications that need to be run in Client Server or Character Mode should remain in Forms 6i .  Forms 6i will be supported until December 31st, 2004, or December 31st, 2007 with Extended Support for customers who wish to maintain such applications.

5.3 What changes will I have to make to my application before upgrading?

Many Client Server and Character Mode features have been removed from the Forms product for 9 i and 10g. The removed features mainly relate to features that where only maintained in Forms 6i for the purpose of backwards compatibility.  A detailed list of all of the obsolete features can be found on OTN ( /products/forms/pdf/featuresobsolescence.pdf)

5.4 Is there an easy way to find out if my modules use obsolete features? 

Yes.  Oracle supply a separate utility with the Oracle Forms distribution called the Forms Migration Assistant.  This is a utility which will scan your files for obsolete usages and correct them where applicable.  It will also alert you to any changes you may have to make manually.


6. OracleAS Portal Integration

6.1 Can I integrate my Forms application as a portlet in OracleAS Portal?

Yes.  You have to edit the relevant static or base .html file (if using the CGI or servlet).  In both cases you have to remove the <HTML>,<BODY>, </HTML>, and </BODY> tags.  Using the Portal Developer's Kit (PDK) downloaded from OTN (), you can set up the URL portlet.

This URL portlet takes an application, referenced by a URL, and brings it as a portlet into a portal page.

6.2 How can I create a link in OracleAS Portal pointing to a Forms application?

There are two ways to do this.  First, you can use the OracleAS Portal MyFavorites portlet, which is a kind of bookmark portlet, allowing you to publish custom links.

Second, you can define particular links as folders in a Content area and publish them to the portal. The second option may be more suitable as it prevents users from customizing the links.


7. Builder Environment

7.1 When I try to use the Java Importer feature I get a PDE error why is this?

In order to use the Java Importer, The path used by the Form Builder must include the Java \bin\classic directory and the classpath should include both the classes that you want to import as well as the supplied importer.jar file.

7.2 When I press the run button how can I define which browser is used?

Use the Edit->Preferences dialog and set the location of your preferred web browser in the "Web Browser Location" field on the Runtime tab..

7.3 How can I use a particular profile from my formsweb.cfg when running from the builder?

In the Edit->Preferences dialog Runtime tab, you can enter an application server URL.  This URL is the one that the builder will append to when constructing the URL to run.  Thus, if you specify a particular configuration on the end of this URL (e.g. http://myserver/forms90/f90servlet?config=development ), that base configuration will be used, and additional runtime information appended to it.  

7.4 How can I attach to a remote form in debug mode?

First of all, the Form that you wish to debug needs to make a call to Debug.Attach in PL/SQL (You might associate this with a menu option in the module.)  Calling Debug.Attach; will pop up a dialog on the remote system containing the name of the server and a port number. 

In the Forms Builder, use the Debug->Attach Debug menu option to display the "Attach Debug to" dialog.  Enter the supplied machine and port number into this dialog.  You will then be able to debug the remote session. 

7.5 Can I debug a remote form through a firewall?

No.  The remote debugging within Forms uses a sockets connection to handle the debug traffic.  Generally firewalls do not allow traffic through unregulated sockets so the debug connection will not be made. 

7.6 I find the color scheme of the Forms Builder hard to work with, is there a way of changing this?

Set the environment variable FORMS90_CLAF=true, before starting the builder, to enable the "classic" Forms look and feel.



Top of Page

Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065

Worldwide Inquiries:
Fax +1.650.506.7200

Copyright © Oracle Corporation 2003
All Rights Reserved

This document is provided for informational purposes only,
and the information herein is subject to change
without notice.  Please report any errors herein to
Oracle Corporation.  Oracle Corporation does not provide
any warranties covering and specifically disclaims any
liability in connection with this document.

Oracle is a registered trademark of Oracle Corporation.

All other company and product names mentioned are used
for identification purposes only and may be trademarks of
their respective owners.