faq Oracle9 i Forms
Technical FAQ
February 2003


Oracle9i AS Forms Services


Platform Support Issues

Single Sign-on

Upgrading to Oracle9i Forms

Integration with Oracle9i AS Portal

Builder Environment


Oracle9i AS Forms Services

In Oracle9 i Forms Can I run Forms using a Separate Forms Listener Process?

No.  In later 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.  In Oracle9i AS Forms Services (the version of Forms in Oracle9i AS v2) the Forms Listener Servlet is the only supported way of deploying Forms.

In Oracle9 i Forms Can I call a Forms application using the Forms CGI?

No.  In later 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.  In Oracle9i Forms, this Servlet should be used instead of the CGI.


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 2.2.3 (with Internet Explorer 5.0)
  • Solaris
    • Sun JDK and Java plug-in

For more information on the level of certification and possible restrictions, please refer to the "Client Platform Support" statement of direction available on OTN ().

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 Oracle9i AS Forms Services in Oracle9i AS.

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

Yes.  Oracle9i AS Forms Services supports a wide range of firewalls and proxy servers.

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.

How can I manage and monitor Oracle9i AS Forms Services activity remotely?

Oracle9i AS Forms Services is integrated with Oracle Enterprise Manager (EM) to allow the administration and the monitoring of the Oracle9i AS 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.

How do I run my Oracle9i AS Forms Services 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. 

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.


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

Yes.  The Oracle9i 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 Oracle9i AS Forms Services on the middle tier.

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.

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

Yes.  OLE integration 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 the Oracle9i AS 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.

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 Oracle9i 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.  Oracle9i JDeveloper provides a Wizard to help you build such Puggable Java Components.

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 a JavaBean plugged into the Forms Java Client.  An example of this is available on OTN ()

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 Oracle9i Forms can be build with 1.3 of the JDK.

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

This is an option in Oracle9i Forms and still works. However, we have added enhanced support for JavaBeans in Oracle9i 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.

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

In Web-deployed Forms these commands and built-ins execute on the middle tier.  To execute the commands on the client browser machine, use a JavaBean.

In a similar way User Exits and ORA_FFI code all act on the middle tier and not on the browser client.

Can I use the functions in the D2KWUTIL library when my Oracle9i AS Forms Services are 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.

Platform Support Issues

Can I run Oracle9i AS Forms Services on Linux?

Yes, Oracle9i AS Forms Services are available as part of the Oracle9i AS v2 Enterprise Edition on Linux.

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.

What Win32 Platforms can Oracle9i AS Forms Services be deployed on?

Only Windows NT 4.0 and Windows 2000 are supported as platforms for hosting the Oracle9i AS 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
  • Windows ME (with patch 6)
  • Windows NT 4.0
  • Windows 2000

Is Forms supported on Windows XP?

Windows XP is currently undergoing certification.  Refer to the "Client Platform Support" statement of direction available on OTN () for the latest status.

Single Sign-on

Can I use Single Sign-On with Oracle9i AS Forms Services?

Yes. Oracle9i AS 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 Oracle9i Forms application user to a Single Sign-On user account.

Can I use LDAP to authenticate Oracle9i AS 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.

Upgrading to 9i

What versions of Forms can I upgrade to Oracle9i Forms?

Only Forms 6.0 and Forms 6i are supported for direct upgrade to Oracle9i Forms. Older versions of Forms should be upgraded to Forms 6i first.

Can I run Client Server or Character Mode applications in Oracle9i Forms?

No. Oracle9i Forms 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.

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 9i .  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)

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

Yes.  Oracle supply a separate utility with the Oracle9i Forms distribution "f90plsqlconv".  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.

Oracle9i AS Portal Integration

Can I integrate my Oracle9i AS Forms Services application as a portlet in Oracle9i AS 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.

How can I create a link in Oracle9i AS Portal pointing to an Oracle9i AS Forms Services application?

There are two ways to do this.  First, you can use the Oracle9i AS 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.

Builder Environment

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.

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..

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.  

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. 

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. 

In 6i on Windows I used to use the F4 key to display the Property Palette for an object in the builder.  This no longer appears to work.

In Oracle9i Forms use the F8 key to invoke the Property Palette.

I find the color scheme of the Oracle9i 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| Copyright and Corporate Info