You are on page 1of 14

Developer Forms Server

Frequently Asked Questions


Technical White Paper
April 1999
Developer Forms Server
Frequently Asked Questions

1. INSTALLATION AND CONFIGURATION

How can I configure the Forms Server to use HTTP/1.1 rather than Sockets, so that I can
cross Firewalls?

Developer Server version 6.0 can be configured to use either Sockets or HTTP/1.1 as a way of
communicating between the Forms Server and the Java Client.

Note: HTTP/1.1 Support is a Beta Feature in the initial production release of Developer Server Version 6.0.

To use HTTP rather than Sockets take the following steps:

Step 1:
Configure your Forms Server to listen for HTTP connection requests rather than sockets.
On NT: ifsrv60 mode=HTTP
On UNIX: f60srvm mode=HTTP

Step 2:
Amend your HTML file to specify that the HTTP/1.1-enabled version of the Forms Java Applet is run.
Change the line:
oracle.forms.engine.Main
To:
oracle.forms.engine.MainHTTP

Step 3:
Add parameters to your HTML file to specify the Machine Name (or IP address) and Port of your Firewall
Proxy Server.
For example:
<param name="proxyHost" value="my-proxy.com">
<param name="proxyPort" value="80">
You need to add the Proxy parameters in addition to your existing serverHost and serverPort parameters.

Can I run Forms Servers in both Sockets and HTTP/1.1 modes on the same Application
Server?

Yes. You will have to start two different Forms Listeners, with one listening on one Port for "internal"
sockets connections, and another listening on a different Port for HTTP connections.

Developer Forms Server Frequently Asked Questions Page 2


April 1999
How can I make the Forms Server Listener run as a Service on NT?

Running a process such as the Forms Listener as a Service gives you the benefit of not having to log on to
the NT machine in order to start the process. It will be started as part of the NT Boot process.
With Developer Server release 6.0 you can install the listener as a service by running:
ifsrv60 -install provide_a_name_here

For more information on configuring the Forms Listener service, refer to the documentation on
Configuring the Oracle Developer Server.

In versions of Developer Server prior to Release 6.0 you can create a service using the listener executable
with a utility supplied with the Windows NT resource kit.
See Note: 68068.1 (available on Metalink) on how to do this.

Note: Currently on NT you must use the default parameter values to automatically start the Forms Server
as a Service. This means that only one such Service can be started automatically on each Application
Server. Such a Forms Server would listen on Port 9000 for sockets connections and would not perform
logging.

If you start the service manually you can specify any PORT, LOG or POOL arguments in the Startup
Parameters field in the Services Dialog on the control panel. This issue will be addressed in a future
version of the product.

2. VERSION COMPATIBILITY AND CERTIFICATION

Can I run Developer Forms Server release 5.0 with Oracle Application Server release 4.0.x?

Yes you can, but only using Static HTML files. The Forms Cartridge that comes with Forms 5.0 is only
compatible with Oracle Web Server Version 3.x. Forms Server version 6.0 requires Oracle Application
Server version 4.0.7.

What version of Oracle Application Server do I need to use for Forms Server release 6.0
Cartridge?

You will need Oracle Application Server release 4.0.7.

Can I set up Developer Forms Server on a machine with Multiple Oracle Homes?

On UNIX the answer is yes. On UNIX platforms we strongly recommend that you install the Oracle
Developer product set into its own Oracle Home. This will make upgrading and adding patches easier.

On NT the Multiple Oracle Homes feature is not supported in Developer Forms Server. Multiple Oracle
Homes will be supported in a future release of Oracle Forms Server.

Developer Forms Server Frequently Asked Questions Page 3


April 1999
4. FIREWALL SUPPORT

I want to use Oracle Developer Server over the Internet. We have a Firewall and don't want
to put our Forms Server outside of it. Can I use Forms Server in this situation?

Yes. With release 6.0 of Oracle Developer, the Forms Server supports HTTP/1.1 as an alternative
configuration to Sockets. HTTP/1.1 allows you to cross firewalls.

See the "Installation and Configuration" section of this FAQ for details on setting up Forms to use
HTTP/1.1.

I have the Forms Server installed OUTSIDE of my firewall. I use SQL*Net ANO to tunnel
through the firewall to a secure database inside.
Despite having my Forms Server outside of the firewall, my customers still cannot
connect. Why?

Your customer probably has a firewall, too! If your customer is working within their firewall that could
be stopping the traffic.

You will need to configure your Forms Server to use HTTP/1.1 rather than Sockets. Then you will be able
to traverse the customer's firewall.

5. DEVELOPER SERVER SECURITY ISSUES

Is traffic secure between the Forms Server Engine and the Java Client?

Yes. By default, the connection between the Java Client and the Forms Engine is encrypted. This
encryption is based on the standard RSA 40-bit mechanism.

How can I switch off the encryption of the traffic between the Forms Server Engine and the
Java Client?

You can set the variable FORMS60_MESSAGE_ENCRYPTION to FALSE.


Define this as a Registry entry in HKEY_LOCAL_MACHINE/Software/Oracle on NT systems or as an
environment variable on UNIX.

Define this environment setting before starting the Forms Server Listener.

Can I enable a stronger level of encryption for the traffic between the Forms Server Engine
and the Java Client? For example, 128-bit encryption?

No. When Oracle Developer release 6.0 was being developed, US export law forbade the export of
encryption algorithms stronger than 40-bit.

Can I control the key pair used for the encryption of traffic between the Forms Server
Engine and the Java Client?

No. Both the Client and Server generate random numbers which they exchange at connect time. These
numbers are used as the key pairs for encryption. Every session generates a different key pair.

If I am using the HTTP/1.1 protocol with the Forms Server, can I use SSL to secure the
traffic?

No. Currently the HTTP/1.1 protocol uses the same RSA 40-bit encryption, that Sockets connections use.
This encryption is applied to the packets before they are sent to the transport layer.

Developer Forms Server Frequently Asked Questions Page 4


April 1999
7. THE FORMS HEARTBEAT

What does the Heartbeat functionality within Forms do?

The Forms Server has a simple mechanism to check if the Forms Java Client is still connected. Should the
Client machine lose its connection to the Forms Server, the associated Forms Runtime Engine is cleaned up
automatically. This is how it works:

The Java Client sends a message to the Runtime Engine every two minutes. If the Runtime Engine does
not hear from the client within the specified timeout period, it shuts down and frees up the resources it was
using.

How can I change the length of time that the Forms Runtime Engine will wait for before
closing itself down?

By default, the Forms Server allows 15 Minutes to pass without a signal from the client before it closes
itself down.

To change this timeout period, set up an environment variable FORMSnn_TIMEOUT in the Forms Server
machine. Where <nn> indicates the Forms Server version.

For example, for Forms Server version 6.0, you would create a new entry under
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE called FORMS60_TIMEOUT. The new value,
should be a DWORD registry entry (not a String). Set this to define the maximum number of minutes the
server should wait between signals from the client.

On UNIX ports, set a normal UNIX environment variable to specify the number of minutes that the Forms
Server Runtime Engine should wait before closing.

The minimum value you can set for FORMSnn_TIMEOUT is 3 minutes, and the maximum is 1440
minutes (1 day).

Can I switch off the Heartbeat functionality?

No.

Developer Forms Server Frequently Asked Questions Page 5


April 1999
9. NATIONAL LANGUAGE SUPPORT

I want to run my Oracle Developer Server applications in several different languages on the
same application server. How can I do this?

When you start a Forms Server Listener, the environment in force will be passed on to any runtime engines
that the listener spawns; thus, if you start a listener with a particular NLS setting in force, all connections to
the Port that the listener is servicing will use that NLS setting.

To configure an application server to run in multiple languages, start one Forms Listener for each
language, and have each one listen on a different port. Then you can then create HTML files for each
language, specifying the relevant port.

On NT, when an environment variable such as NLS_LANG is defined in the registry, it is global to all
applications; however, the registry settings for these variables can be overridden in a command line shell,
using the SET command prior to invoking a given Forms Listener from the same shell.
To override the values in the registry for individual instances of the Forms Server Listener, create a batch
file for starting the server with a "local" version of the NLS_LANG parameter.

For example:

@echo off
REM set up Port 9002 to be the French users point of entry
set NLS_LANG FRENCH_FRANCE.WE8ISO8859P1
ifsrv60 -listen port=9002 log=c:\logs\french_connection.log

10. YEAR 2000 ISSUES

Where can I find out about the Year 2000 compliance of the Oracle Developer Forms
Server?

You can find the final word on the Year 2000 compliance of all Oracle Products at
http://www.oracle.com/year2000/2000/white2000.pdf.

All production releases of Oracle Developer are Year 2000 compliant, but always consult the above
document for the latest information.

What are the "Date Enhanced" versions of the Developer Forms Server that I've been
hearing about? Should I be using one of these in order to make my application Year 2000
compliant?

The "Date Enhanced" versions of the Oracle Forms Server had has some extra facilities added to make it
easier to produce Year 2000-compliant applications. The enhancements give the programmer more control
over default datatype conversions and format masks. You do not need to use an enhanced version of the
Forms Developer Server to build compliant applications. It just makes the job easier!

The Date Enhanced versions of the Forms Developer Server are contained in the following product
releases:
- Oracle Developer 1.6.1
- Oracle Developer 2.1
- Oracle Developer 6.0 and above

Developer Forms Server Frequently Asked Questions Page 6


April 1999
If I simply upgrade to a "Date Enhanced" version of Developer Forms Server, will that
make my application Year 2000 Compliant?

No! Just upgrading is not enough. You must also check your code for bad date handling.

I want to know more about the way Forms handles dates and the changes in the Date
Enhanced versions. Where can I find out about this?

A very comprehensive White Paper "Developer 2000 Date Handling white paper" is available at
http://www.oracle.com/year2000/2000/2000_files/d2kwp3.pdf
This paper goes into detail on the exact behaviour of dates within Forms.

Because Date parameters and Date columns in List Of Values are Date2 items, does that
mean that Forms is not Year 2000 compliant after all?

Oracle Developer Forms is an application development tool. Year 2000 compliance of an application
results directly from the way you use the tool to build that application. It is possible to build an application
that is not year 2000 compliant with any version of the tool, date enhanced or not.

If you are using a non-Enhanced version of Developer Forms Server, then you should take extra care when
dealing with dates in parameters and in List Of Values. Approach any Date2 object with caution. Avoid
them if possible. We continue to support Date2 objects for compatibility with existing applications.

11. LOOK AND FEEL ISSUES FOR FORMS ON THE WEB

How can I control whether my Form runs within the Browser/Appletviewer window or in a
separate window?

With Developer Server release 6.0 you can specify a new parameter in your HTML file that will control
this.

This is the "separateFrame" parameter. If you set the parameter "false", the Form will display in the
browser window, inside the area defined by your WIDTH and HEIGHT parameters.

The default value for separateFrame is false.

The new MDI frame in Forms Server release 6.0 is great, but I've just optimised my
application to work without an MDI frame and toolbar. How can I run Forms without an
MDI frame?

You can configure Forms for the web to run without the MDI frame in the same way you would configure
Client-Server Forms.

Start your Forms application with the command line argument USESDI=YES. Note that this is a Fomrs
command line parameter. It should be embedded within the serverArgs parameter in the HTML file along
with the module name parameter.

For example:
<PARAM NAME="serverArgs" VALUE="module=empform usesdi=yes">

Developer Forms Server Frequently Asked Questions Page 7


April 1999
How can I switch between the "Windows" look and feel we have had in previous versions
of Forms Server and the new "Oracle" look and feel?

WithForms Server release 6.0 you can specify a new parameter in your HTML file that will control look
and feel. This is the "lookAndFeel" parameter. It has two possible values: "default" and "oracle".
"Default" switches on the "Windows" look and feel. "Oracle" switches on the new rounded look.
"Deafult" is the default value.

If you choose to use the "Oracle" look and feel, you can go on to select default colours for objects in the
Form, such as the MDI Frame.
The parameter to select a colour scheme is "colorScheme". The valid values for the colorScheme
parameter are as follows: teal, titanium, red, khaki, blue, olive, purple.

When I run my Form, a picture appears in the MDI window, how can I suppress or change
the image?

The background of the MDI window in version 6.0 of the Forms Server is controlled by a parameter in
your HTML file. This is the "background" parameter. To remove the picture from the window, set this
parameter value to "no". To get Forms to use your own image, set the parameter value to the name of a gif
file, for example <PARAM NAME="background" VALUE="mylogo.gif">. Put the gif file in the same
directory as your HTML file.

I don't want the default Developer Forms Server splash screen that appears as my Forms
application is starting. How can I suppress it or replace it with my own logo?

The splash screen in release 6.0 of the Forms Server is controlled by a parameter in your HTML file. This
is the "splashScreen"parameter .

To suppress the splash screen all together, set this parameter value to "no".

To get Forms to use your own image set the parameter value to the name of a gif file, for example
<PARAM NAME="splashScreen" VALUE="mylogo.gif">. Put the gif file in the same directory as your
HTML file.

12. SERVER LOGGING AND ERROR DIAGNOSIS

How do I switch on logging for the Forms Server?

When you start the listener, add the command line option: LOG=. After the equal sign, specify a file
where the server can write log information.

Currently, if you need to run the Forms Server on NT with Logging switched on, you must start the server
from the command line, for example:
ifsrv60 -listen port=9000 log=c:\logdir\Formssrv.log
or by starting the Service manually from the control panel with the log= parameter.

You cannot switch on logging automatically if your service starts when the NT machine boots.

Developer Forms Server Frequently Asked Questions Page 8


April 1999
Looking at my server log file from my Server running on Unix I see errors such as:
[Mon Mar 15 19:11:05 1999 PWT]::Client Status [ConnId=163, PID=24877]
>> ERROR: Abnormal termination of connection, Error Code: 6
[Mon Mar 15 19:11:05 1999 PWT]::Client Status [ConnId=163, PID=24877]
>> ERROR: Abnormal termination of connection, Error Code: 15
[Mon Mar 15 19:11:05 1999 PWT]::Client Status [ConnId=163, PID=24877]
>> ERROR: Abnormal termination of connection, Error Code: 11

What do these errors mean?

These error codes represent UNIX signal codes. Either refer to signal.h in your C compiler include
directory, or ask Oracle Support Services for document PR:1038055.6 which contains a list of the codes
and their meanings.

Looking at my server log file from my Forms Server running on NT I see errors such as:

>>ERROR: Read Failed with errorcode: 10054, Sockfd=116

Error 10054 is from the Windows Sockets layer. It indicates that the connection has died from the Client
end.

To further diagnose this problem, run the same application from the Appletviewer. When the problem
occurs, you will get a Java Stack trace in the DOS box that launched the Appletviewer, or you may get a
file called Appletviewer.rpt, which contains the same information.

What version of the Forms Server supports logging?

Forms Servers supplied with the following versions of Oracle Developer support Server logging:
- Developer 1.6.1 and above
- Developer 2.1 and above
- Developer 6.0 and above

Note:
Oracle Developer version 2.0 does not support logging. You should upgrade to 2.1.

What is Forms Runtime Diagnostics?

FRD is a runtime event-based logging system intended to aid in the debugging of Forms applications.
FRD is enabled at runtime on a user-by-user basis. When a form is run with FRD enabled, a combination
of external user-application interactions and internal Forms processing events are written in chronological
order to a log on the file system. Logged events can be analyzed by both application developers and
Oracle support staff. FRD is not intended for use as a performance benchmarking tool or as a mechanism
for gauging code coverage.

FRD generates extensive output useful for analysis and debugging. We recommend that you use FRD as a
logging mechanism only when you encounter specific issues. In a Web environment, we recommend that
system administrators create a separate HTML file at a different URL so users can run their applications
with FRD turned on, when they encounter issues.

Developer Forms Server Frequently Asked Questions Page 9


April 1999
How can I enable Forms Runtime Diagnostics (FRD)?

In client-server, use the following command line:


ifrun60 module=test userid=scott/tiger record=collect
Optionally you can also specify the log=<filename> parameter to output the FRD information to a specific
filename.

In a Web environment add the record=collect parameter to the serverArgs parameter(s) in your HTML file.

When you run FRD in a Web environment, avoid specifying the log= parameter. Multiple users could be
calling the same HTML file, and you would get contention for the specified log file. If you do not specify
a log= parameter, Forms will generate a unique filename for each session called collect_<PID>, where PID
is the Process ID of the Runform Engine allocated to the user.

What data does Forms Runtime Diagnostics collect for me?

The following data is collected by FRD:

- Trigger firing: includes name and hierarchical location


- Built-in Execution: includes name and IN and OUT parameter types and values
- Messages: includes message numbers and text
- Which FMX and MMX files are opened
- Unhandled exceptions: includes error message if available, otherwise only error numbers
- All external user events via normal RT recording mechanism

What versions of Forms support Forms Runtime Diagnostics?

Forms Servers supplied with the following versions of Oracle Developer support FRD:

- Developer 1.6.1 : Forms 4.5.10.1.0 and beyond


- Developer 2.1 : Forms 5.0.6.5.1 and beyond
- Developer 6.0 : All versions

Developer Forms Server Frequently Asked Questions Page 10


April 1999
How do I interpret the output from FRD?

The following output for each of the instrumented events described above can be expected from FRD:

* Triggers - Place any type of trigger at any level in the object hierarchy. Upon firing, it should be logged
as follows:

<trigger_name> Trigger Fired:


Form: <form_name>
Block: <block_name>
Item: <item_name>

The level of the trigger corresponds to the last item in the list. A trigger on Form level, therefore, would
have only the form name listed below the trigger name. A "state delta" should be written to the log
following a trigger fire. A state delta is a dump of all internal state information that has changed since the
occurrence of the previous state delta. The first state delta will dump the entire forms state to the log. The
delta mechanism is used to decrease the size of the output file.

* Built-ins - When a PL/SQL Forms built-in is executed, the diagnostic output should appear as follows:

Executing <built-in name> Built-In:


In Argument 0 - Type: <type> Value: <value>
In Argument 1 - Type: <type> Value: <value>
...
Out Argument 0 - Type: <type> Value: <value>
...

Parameter types to be tested include the following: String, Number, Integer, Float, Oracle Number, Date.
Out Argument 0 generally represents the function return value.

* Messages - Any messages produced by Forms should appear in the log as it was displayed:

Error Message: <message>

* File Opens - Files opened are written to the log in the following format:

Opened file: <file_name>

If a file fails to open, it should appear in the log as follows:

Failed to open file: <file_name>

* Unhandled Exceptions - When an exception is not handled, it will be logged to the file in the following
format:

Unhandled Exception: <exception_name>

If the name is unavailable, FRD will record the exception number for reference:

Unhandled Exception ORA- <exception_number>

Unhandled exceptions should be followed in the log by a state delta (see above under Triggers for a
description of state delta).

* External User Events - User events information written to the log will always be proceeded by a "#" sign
followed by a number representing the chronological order of the event. For each event, we will generally

Developer Forms Server Frequently Asked Questions Page 11


April 1999
write two information blocks, the first detailing the event itself and the second representing a state delta.

13. INTERACTING WITH THE OPERATING SYSTEM

Can I use ORA_FFI or User_Exits from Developer Forms Server?

Any calls to 3GL code made through the ORA_FFI or the User_Exit interface on the middle tier will
operate on that server and not on the client machine.

You should restrict yourself to calling code that does not interact with the screen, as the Web executables
do not have any user interface on the server and the end user would not be able to see anything anyway.

Bear in mind that any O/S calls you make will be executed with the security privileges of the user that
started the server process and not the end user of the application.

Can I use the functions in the D2KWUTIL library when my Forms or Reports servers 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.

Some functions, such as WIN_API_ENVIRONMENT.GET_COMPUTER_NAME(), do work, but return


information about the Application server, not the client.

Some functions, such as the Bitwise operations, will continue to function without a problem.

Can I use TEXT_IO to read files that are local to the client browser?

No, not directly. TEXT_IO calls operate on the middle tier and can only read files that are visible from the
server machine.

You might be able to arrange things so that drives are shared and visible from both the Java Client machine
and the Server, but bear in mind that if you are running your Developer Server as a Service on NT, it may
not be logged on and therefore may not have access to network drives that would normally be attached at
logon.

Can I output Reports directly to a local printer attached to my client PC?

Your local printer must be shared in a way that makes the machine the Reports Server is running on see it
as a printer queue. You can then set the DESNAME to point to that queue.

If your printer is not shared, then you should run the report to your browser in HTML or PDF format and
print it using your browser's print option.

14. PLATFORM SPECIFIC ISSUES

Does Oracle Developer Forms release 6.0 still support character mode deployment?

Yes, but Forms 6.0 will be the last version of Developer to support character mode. Of course both Forms
5.0 and 4.5 support character mode as well.

Developer Forms Server Frequently Asked Questions Page 12


April 1999
Can I run Forms 4.5 or above on block mode (e.g. IBM 3270) terminals?

No. The last release of Forms that supported a block mode runtime was Forms 3.0.

There are Hardware and Software solutions from third party suppliers that can allow 3270 terminals to
emulate VT devices. You could investigate using one of these to allow you to deploy character mode
Forms on such devices.

Developer Forms Server Frequently Asked Questions Page 13


April 1999
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.

Worldwide Inquiries:
+1.650.506.7000
Fax +1.650.506.7200
http://www.oracle.com/

Title: Developer Forms Server Frequently Asked Questions


Version: 1.0.3
Date: April 1999
Author: Duncan Mills
Editors: Dan Maas, Joan Carter

Copyright © Oracle Corporation 1999


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.

Developer Forms Server Frequently Asked Questions Page 14


April 1999

You might also like