Académique Documents
Professionnel Documents
Culture Documents
November 2012
Oracle Fusion Middleware Forms Services Deployment Guide 11g Release 2 (11.1.2)
E24477-03
Copyright 2001, 2012, Oracle and/or its affiliates. All rights reserved.
Primary Author: Swati Thacker
Contributors: Ananth Satyanarayana, Vinay Agarwal, Suvarna Balachandra, Hemant Bansal, Ramesh
Gurubhadraiah, Laiju Mathew, Gururaja Padakandla, Opendro Singh, Ashish Tyagi, Sudarshan Upadhya,
Syed Nisar Ahmed, Dhiraj Madan, James Amalraj, Phil Kuhn, Arthur Housinger, Rubik Sadeghi, Naseer
Syed, Emerson deLaubenfels, Grant Ronald
This software and related documentation are provided under a license agreement containing restrictions on
use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your
license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license,
transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse
engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is
prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If
you find any errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it
on behalf of the U.S. Government, the following notice is applicable:
U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data
delivered to U.S. Government customers are "commercial computer software" or "commercial technical
data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental
regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the
restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable
by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial
Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA
94065.
This software or hardware is developed for general use in a variety of information management
applications. It is not developed or intended for use in any inherently dangerous applications, including
applications that may create a risk of personal injury. If you use this software or hardware in dangerous
applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other
measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages
caused by use of this software or hardware in dangerous applications.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks
of their respective owners.
This software or hardware and documentation may provide access to or information on content, products,
and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly
disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle
Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your
access to or use of third-party content, products, or services.
Contents
Preface ............................................................................................................................................................... xiii
Intended Audience....................................................................................................................................
Documentation Accessibility ...................................................................................................................
Related Documents ...................................................................................................................................
Conventions ...............................................................................................................................................
xiii
xiii
xiii
xiii
3.2.1.2
formsweb.cfg ....................................................................................................... 3-4
3.2.1.3
ftrace.cfg .............................................................................................................. 3-4
3.2.2
Forms Java EE Application Deployment Descriptors .............................................. 3-4
3.2.3
Oracle HTTP Listener Configuration File .................................................................. 3-5
3.2.3.1
About Editing forms.conf .................................................................................... 3-5
3.2.3.2
Configuring OHS on a Separate Host ................................................................. 3-6
3.2.4
Standard Fonts and Icons File .................................................................................... 3-6
3.2.5
baseHTML Files ......................................................................................................... 3-7
3.2.6
WebUtil Configuration Files ...................................................................................... 3-7
3.2.6.1
Default webutil.cfg .............................................................................................. 3-7
3.2.6.2
Default webutilbase.htm ..................................................................................... 3-7
3.2.6.3
Default webutiljpi.htm ........................................................................................ 3-7
3.3
Application Deployment .................................................................................................. 3-8
3.3.1
Deploying Your Application ..................................................................................... 3-8
3.3.2
Specifying Parameters ............................................................................................... 3-9
3.3.3
Creating Configuration Sections in Fusion Middleware Control ............................ 3-10
3.3.3.1
Editing the URL to Access Oracle Forms Services Applications ....................... 3-10
3.3.4
Specifying Special Characters in Values of Runform Parameters ............................ 3-10
3.3.4.1
Default Behavior in the Current Release ........................................................... 3-10
3.3.4.2
Behavior in Previous Releases ........................................................................... 3-12
3.3.4.3
Obtaining the Behavior of Prior Releases in the Current Release ...................... 3-12
3.3.4.4
Considerations for Template HTML Files ......................................................... 3-12
3.3.4.5
Considerations for Static HTML Pages ............................................................. 3-12
3.3.5
Accessing the Listener Servlet Administration Page ............................................... 3-13
3.4
Client Browser Support .................................................................................................. 3-13
3.4.1
How Configuration Parameters and BaseHTML Files are Tied to Client Browsers 3-14
3.4.2
Forms Single Sign-On on Mozilla 3.x ....................................................................... 3-14
3.4.3
guiMode Configuration Parameter .......................................................................... 3-14
iv
4.2.5.5
4.2.5.6
4.2.5.7
4.2.5.8
4.3
4.3.1
4.3.2
4.3.3
4.4
4.5
4.5.1
4.6
4.6.1
4.7
4.7.1
4.7.2
4.7.3
4.7.3.1
4.7.3.2
4.7.4
4.7.5
4.7.5.1
4.7.5.2
4.7.6
4.7.6.1
4.7.6.2
4.8
4.8.1
4.8.2
4.8.3
4.8.3.1
4.9
4.9.1
4.9.1.1
4.9.1.2
5 Using Oracle Forms Services with the HTTP Listener and Oracle WebLogic
Server
5.1
About the Oracle WebLogic Managed Server .................................................................. 5-1
5.2
Working with Forms Managed Server ............................................................................. 5-2
5.2.1
Custom Deployment of Forms Java EE Application .................................................. 5-3
5.2.1.1
Prerequisite Steps ................................................................................................ 5-3
5.2.1.2
Override the Default Servlet Alias and the Context Root .................................... 5-4
5.2.1.3
Create the Deployment Plan ................................................................................ 5-6
5.2.1.4
Deploy the Custom EAR file ............................................................................... 5-7
5.2.1.5
Post-Patching Tasks ............................................................................................. 5-8
5.2.1.6
Test the Custom Deployment .............................................................................. 5-8
5.2.2
5.2.3
5.2.4
5.3
5.3.1
5.3.2
5.4
5.5
5.6
5.7
5.8
9.1.2
9.2
9.2.1
9.2.2
9.3
9.3.1
9.3.2
9.3.3
9.4
9.4.1
9.4.2
9.4.3
9.4.4
9.4.5
9.4.6
9.5
9.5.1
9.5.2
9.5.3
9.6
9.6.1
9.6.2
9.6.3
9.6.4
9.6.5
9.6.6
9.7
9.7.1
9.7.2
9.7.3
9.7.4
10
vii
10.8
Managing JVM Pooling from Fusion Middleware Control ............................................ 10-9
10.8.1
Common Tasks in the JVM Configuration Page .................................................... 10-10
10.8.2
Managing JVM Configuration Sections ................................................................. 10-11
10.8.2.1
Accessing the JVM Configuration Page ........................................................... 10-11
10.8.2.2
Creating a New Configuration Section ............................................................ 10-11
10.8.2.3
Editing a Named Configuration Description .................................................. 10-12
10.8.2.4
Duplicating a Named Configuration ............................................................... 10-12
10.8.2.5
Deleting a Named Configuration .................................................................... 10-12
10.8.3
Managing Parameters ............................................................................................ 10-13
10.8.4
JVM Configuration Parameters and Default Values .............................................. 10-13
10.8.5
Starting and Stopping JVM Controllers with Fusion Middleware Control ............ 10-14
10.8.6
Forms Configuration File Settings ......................................................................... 10-15
10.8.7
Startup Example .................................................................................................... 10-16
10.9
JVM Controller Logging .............................................................................................. 10-17
10.9.1
Specifying JVM Default Logging Properties ......................................................... 10-17
10.9.2
Specifying the JVM Log Directory Location .......................................................... 10-18
10.9.3
Accessing Log Files ................................................................................................ 10-18
10.9.4
Deleting a Log File for a JVM Controller .............................................................. 10-18
10.10 Integrating Forms and Reports .................................................................................... 10-19
10.11 JVM Pooling Error Messages ........................................................................................ 10-19
11
12
viii
12.5
List of Traceable Events .................................................................................................. 12-6
12.5.1
List of Event Details ................................................................................................. 12-8
12.5.1.1
User Action Events ............................................................................................ 12-9
12.5.1.2
Forms Services Events ....................................................................................... 12-9
12.5.1.3
Detailed Events .................................................................................................. 12-9
12.5.1.4
Three-Tier Events ............................................................................................ 12-10
12.5.1.5
Miscellaneous Events ...................................................................................... 12-10
12.6
Taking Advantage of Oracle Diagnostics and Logging Tools ...................................... 12-10
12.6.1
Enabling Oracle Diagnostics and Logging ............................................................. 12-11
12.6.1.1
Specifying Logging .......................................................................................... 12-11
12.6.1.2
Specifying Logging Levels Using Fusion Middleware Control ....................... 12-11
12.6.1.3
Specifying Full Diagnostics in the URL that Invokes the Forms Servlet .......... 12-12
12.6.2
Viewing Diagnostics Logs ...................................................................................... 12-12
12.6.3
Using the Servlet Page ........................................................................................... 12-12
12.6.4
Location of Log Files .............................................................................................. 12-13
12.6.5
Example Output for Each Level of Servlet Logging ............................................... 12-13
12.6.5.1
(none) .............................................................................................................. 12-13
12.6.5.2
/session ........................................................................................................... 12-14
12.6.5.3
/sessionperf ..................................................................................................... 12-14
12.6.5.4
/perf ................................................................................................................ 12-14
12.6.5.5
/debug ............................................................................................................ 12-15
13
14
ix
14.1.2.1
Configuring Prestart Parameters ....................................................................... 14-3
14.1.2.2
Starting Runtime Pooling .................................................................................. 14-4
14.1.2.3
Scheduling Runtime Pooling ............................................................................. 14-4
14.1.3
Minimizing Client Resource Requirements ............................................................. 14-7
14.1.4
Minimizing Forms Services Resource Requirements ............................................... 14-7
14.1.5
Minimizing Network Usage .................................................................................... 14-7
14.1.6
Maximizing the Efficiency of Packets Sent Over the Network ................................ 14-8
14.1.7
Rendering Application Displays Efficiently on the Client ....................................... 14-8
14.2
Tuning Oracle Forms Services Applications .................................................................. 14-8
14.2.1
Location of the Oracle Forms Services with Respect to the Data Server .................. 14-8
14.2.2
Minimizing the Application Startup Time ............................................................... 14-9
14.2.2.1
Using Java Files ............................................................................................... 14-10
14.2.2.2
Using Oracle's Java Plug-in ............................................................................. 14-10
14.2.2.3
Using Caching ................................................................................................. 14-10
14.2.3
Reducing the Required Network Bandwidth ........................................................ 14-11
14.2.4
Other Techniques to Improve Performance ........................................................... 14-12
14.3
Web Cache and Forms Integration ............................................................................... 14-13
A.6.3
About Memory Leaks ................................................................................................A-5
A.6.3.1
Memory Leaks in Java .........................................................................................A-6
A.6.3.2
Identifying Memory Leaks ..................................................................................A-6
A.6.4
Improving Performance with Caching .......................................................................A-6
A.7
Troubleshooting Tips .......................................................................................................A-7
A.8
Need More Help? .............................................................................................................A-8
Index
xi
xii
Preface
Intended Audience
This manual is intended for software developers who are interested in deploying
Oracle Forms applications to the Web with Oracle Fusion Middleware.
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle
Accessibility Program website at
http://www.oracle.com/us/corporate/accessibility/index.html.
Access to Oracle Support
Oracle customers have access to electronic support through My Oracle Support. For
information, visit http://www.oracle.com/support/contact.html or visit
http://www.oracle.com/accessibility/support.html if you are hearing
impaired.
Related Documents
For more information, see the following manuals:
Oracle Forms Builder Online Help, available from the Help menu in Oracle Forms
Developer.
Conventions
The following text conventions are used in this document:
xiii
xiv
Convention
Meaning
boldface
italic
monospace
1
1
Oracle Forms Builder Online Help, which is accessible from Oracle Forms Builder,
provides information on how to use Oracle Forms Developer to develop and
compile Forms applications.
Upgrading Oracle Forms 6i to Oracle Forms 11g: describes obsolete features of Oracle
Forms Developer and instructions for upgrading your Forms applications.
Introduction to Oracle Forms Services
1-1
Oracle Database
server. For more information on Oracle WebLogic Server, refer to Oracle Fusion
Middleware Introduction to Oracle WebLogic Server.
In the deployment mode, during configuration, a managed server for Forms is created
(WLS_FORMS). For more information on WLS_FORMS, refer to Section 5.1, "About
the Oracle WebLogic Managed Server."
For information on upgrading Forms 6i to Oracle Forms 11g, see Chapter 13,
"Upgrading to Oracle Forms Services 11g."
For information about changed or obsolete features, see the Oracle Forms Upgrading
Oracle Forms 6i to Oracle Forms 11g Guide.
1-3
Note:
The client tier, at the top of the image, contains the Web browser, where the
application is displayed. In addition to the browser, Java Runtime Environment
(JRE) and Java Plug-In (JPI) are required. For more information, see Appendix B,
"Configuring Java Plug-ins" and
http://www.oracle.com/technetwork/java/index-jsp-142903.html#
documentation.
The middle tier, in the center of the image, is the application server, where
application logic and server software are stored.
The database tier, in the lower portion of the image, is the database server, where
database server software is stored.
The Client, at the top of the image, resides on the client tier
The Forms Listener servlet, in the center of the image, resides on the middle tier
1-5
Note:
Server side
Firewall
HTTP Listener
Oracle WebLogic
Managed Server
Forms Listener
Servlet
Forms Runtime
Process
Internet
HTTP / HTTPS
1-7
2
2
Section 2.7, "Support for URLs in Image Items and Iconic Buttons"
For the list of new features in Oracle Forms Services 11g Release 1, see "What's New in
Oracle Forms Services" in Oracle Fusion Middleware Forms Services Deployment Guide.
2-1
2-3
3
3
This chapter describes how Forms Services run in Oracle Fusion Middleware, and
describes the steps to deploy Forms applications. This chapter also describes the basic
configuration files. After installation is completed, you can use the information in this
chapter to change your initial configuration or make modifications as your needs
change.
This chapter contains the following sections:
The user starts the Web browser and goes to a URL such as:
http://example.com:8888/forms/frmservlet?config=myapp&form=hr
app
In this example, the top level form module to be run is called "hrapp" using the
configuration section called "myapp".
2.
Oracle HTTP Server listener receives the request. It finds /forms path in the URL
and forwards the request to the correct Oracle WebLogic Managed Server based
on the WebLogic handler mappings. The mapping is defined in forms.conf.
3.
Oracle WebLogic Managed Server maps the request to the Oracle Forms Services
application that has a context root named /forms. It maps the request to the
Forms servlet using the frmservlet mapping specified in the web.xml file.
4.
The Forms servlet running on the Oracle WebLogic Managed Server processes the
request. The Forms servlet:
5.
Depending on which baseHTML file the Forms servlet selected, the HTML page
returned to the Web browser contains an applet, object or embed tag to start the
Forms applet (thin client). The Forms client runs in the JVM environment
provided by Oracle Java plug-in.
6.
In order to start the Forms applet, its Java code must first be loaded. The location
of the applet is specified by the applet codebase and archive parameters.
The virtual path definition in the weblogic.xml file for /forms/java allows
the applet code to be loaded from the Web server.
Note: The Forms applet code is only loaded over the network the first time the
user runs an Oracle Forms Services application or if a newer version of Oracle
Forms Services is installed on the Web server. Otherwise, it is loaded from the
cache of the Java plug-in on the local disk.
7.
Once the Oracle Forms Services applet is running, it starts a Forms session by
contacting the Forms Listener servlet at URL
http://example.com:8888/forms/lservlet.
8.
The Oracle HTTP Server listener receives the request. It forwards the request to
Oracle WebLogic Managed Server, since the path /forms/lservlet matches a
servlet mapping in the web.xml file (the one for the Forms Listener servlet).
9.
10. Communication continues between the Forms applet and the Forms run-time
process, through the Listener Servlet, until the Forms session ends.
11. The attribute value in a URL (such as the name of the form to run) is passed to the
Forms run-time process. Part of the serverArgs value in the baseHTML file is
%form%, which is replaced by "hrapp". Therefore, the run-time process runs the
form in the file "hrapp.fmx".
Configuration Files
This file must be present in any of the directories named in the FORMS_PATH
environment setting, which is defined in the environment file (default.env by
default). You can also specify the directory in formsweb.cfg (for example,
form=c:\<path>\myform).
12. The Forms sessions end when either of the following occurs:
The top-level form is exited (for example, by the PL/SQL trigger code which
calls the "exit_form" built-in function). The user is prompted to save changes if
there are unsaved changes. exit_form(no_validate) exits the form
without prompting.
If the user quits the Web browser, any pending updates are lost.
default.env
formsweb.cfg
ftrace.cfg
For a list of Forms configuration files and their respective
locations, refer to Table C1.
Note:
3.2.1.1 default.env
Location: $DOMAIN_HOME/config/fmwconfig/servers/<MANAGED_
SERVER>/applications/<appname>_<appversion>/config
Configuration Files
3.2.1.2 formsweb.cfg
Location: $DOMAIN_HOME/config/fmwconfig/servers/<MANAGED_
SERVER>/applications/<appname>_<appversion>/config
Typically, this location is $DOMAIN_HOME/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_11.1.2/config
This Forms configuration file contains the following:
Values for Forms run-time command line parameters, and the name of the
environment file to use (envFile setting).
Most of the servlet configuration parameter settings that you set during
installation. You can modify these parameters, if needed.
Variables (%variablename%) in the base.htm file are replaced with the appropriate
parameter values specified in the formsweb.cfg file and from query parameters in
the URL request (if any).
For a sample formsweb.cfg file, see Appendix C.2, "Default formsweb.cfg."
For more information about formsweb.cfg, see Chapter 4.2.2, "Configuring
Parameters with Fusion Middleware Control."
3.2.1.3 ftrace.cfg
Location: $ORACLE_INSTANCE/config/FormsComponent/forms/server
This file is used to configure Forms Trace. Forms Trace replaces the functionality that
was provided with Forms Runtime Diagnostics (FRD) and Performance Event
Collection Services (PECS), which were available in earlier releases of Oracle Forms.
Forms Trace traces the execution path through a form (for example, steps the user took
while using the form).
For more information about ftrace.cfg, see Chapter 12, "Tracing and Diagnostics."
Configuration Files
./META-INF/application.xml
./META-INF/jazn-data.xml
./META-INF/jps-config.xml
./META-INF/mbeans.xml
./META-INF/weblogic-application.xml
Deployment descriptors:
Configuration Files
Copy the Forms OHS directives file, forms.conf.backup from the tier hosting
Forms to the tier hosting OHS and rename it to forms.conf.
Source location (on Forms tier):
$ORACLE_
INSTANCE/config/FormsComponent/forms/server/forms.conf.backup
Destination location (on OHS tier):
$ORACLE_INSTANCE/config/OHS/<OHS Component
Instance>/moduleconf/forms.conf
2.
Specify the appropriate managed server cluster or the managed server for the
default forms Java EE application context root (/forms).
Example of cluster entry:
<Location /forms>
SetHandler weblogic-handler
WebLogicCluster
<HOSTNAME>:<WLS_PORT>
DynamicServerList OFF
</Location>
3.
Make sure that any directories referenced in user-added directives are accessible
on the OHS tier.
4.
Application Deployment
Oracle recommends that you make configuration changes in the formsweb.cfg file
using Enterprise Manager and avoid editing these files. To change the baseHTML files,
create your own versions and reference them from the formsweb.cfg file by
changing the appropriate settings.
For a sample baseHTML file, see Appendix C.4, "base.htm and basejpi.htm Files."
Default webutil.cfg
Default webutilbase.htm
Default webutiljpi.htm
Logging Options
Installation Options
Server Side Logging Options for logging errors and log messages
For a sample of the webutil.cfg file, see Appendix C.10, "Default webutil.cfg."
Note:
Application Deployment
Fusion Middleware through a specified URL. The URL then accesses the HTTP
Listener, which communicates with the Listener Servlet. The Listener Servlet starts a
Forms run-time process (frmweb.exe on Windows or frmweb on UNIX and Linux)
for each Forms Services session.
For more information about how Forms Services run, see Section 3.1, "Oracle Forms
Services in Action."
2.
Modify the formsweb.cfg file so that Oracle Forms Services can access your
application module. You edit this file in the Web Configuration page of Fusion
Middleware Control. For more information, see Section 4.2, "Configuring Forms
Services".
Table 31 shows the configuration of an application called "my_application" with a
form module called "form=hrapp.fmx":
Table 31
Configuration Section
Name
my_application
hrapp.fmx
Note:
3.
Make sure the .fmx file location is specified in the FORMS_PATH environment
variable.
For example, in Windows, if your .fmx file is located in d:\my_
files\applications, in the FORMS_PATH, include d:\my_
files\applications. On Windows, use semi-colons to separate directory
locations if specifying multiple locations. On UNIX/Linux, use colons for
separators. Specify this information in the Environment Configuration page for
the environment file.
4.
Application Deployment
Table 32
Environment Variable
Name
NLS_LANG
NLS_LANG=GERMAN_GERMANY.WE8ISO8859P1
Editing your application settings in the default section of the Web Configuration
page of Fusion Middleware Control. The default configuration section displays the
default values that are used by Oracle Forms Services.
Managing (adding, editing, copying, deleting) other system and user parameter
values in the named application configuration section (see Section 3.3.3, "Creating
Configuration Sections in Fusion Middleware Control"). For example, in the
configuration section you create for myApp, you can add or change these
parameters and their values, as shown in Table 33.
Table 33
Parameter Name
Parameter Value
baseHTML
mybase.htm
baseHTMLjpi
mybasejpi.htm
form
hrapp.fmx
userid
scott/tiger@orcl
Note:
Note:
Application Deployment
You can use the ampersand (&) to call a combination of a form and named
configuration parameters. In the above example, you are calling the form "hrapp"
with the parameter settings you specified in "my_application".
Parameters specified in the URL override the parameters set
in the configuration section. See Chapter 4.5, "Managing URL
Security for Applications" for more information.
Note:
In the value of the serverArgs parameter in the template HTML file (for
example, base.htm).
2.
Application Deployment
3.
For case (3), URL syntax rules (as enforced by the browser and the application server)
require that certain characters be entered as URL escape sequences ('%' followed by 2
hexadecimal digits representing the ASCII value of the character, for a total of three
characters).
This requirement includes the % character itself (which must be entered as %25). In
addition, Oracle Forms Services currently requires that the quote character ('"') be
entered as %22, even if the browser and the application server allow a quote to be
entered without escaping.
URL syntax rules also allow a space to be entered as a + (as an alternative to the URL
escape sequence %20). However in the value of the otherparams configuration
parameter, a + is treated specially; it separates name=value pairs as opposed to
indicating a space embedded in the value of a runform parameter.
For example, if a runform application has user parameters param1 and param2, and
you want to assign them the values 'a b' and 'c d', you do so by incorporating the
following into a URL:
&otherparams=param1=a%20b+param2=c%20d
If the HTML delimiter is % (the default), then an occurrence of % within the value
of a runform parameter must be escaped (specified as %25). (This actually follows
from the requirement stated above, that the HTML delimiter character be
escaped). Furthermore, variable names must never begin with two hexadecimal
digits that represent a 7-bit ASCII value (that is, two hexadecimal digits, the first of
which is in the range 0-7).
If the HTML delimiter is not %, then an occurrence of % must be escaped if it is
immediately followed by an octal digit and then a hexadecimal digit. It is
recommended that other occurrences of '%' also be escaped; but this is not a
requirement.
(You might choose to ignore this recommendation if you have existing template HTML
files or configuration files created in prior releases, which use an HTML delimiter
other than '%', and which contain '%' in runform parameter values).
Application Deployment
Table 34
%0a
%20
%22
%25
%27
%28
%29
It is also permissible to escape other 7-bit ASCII characters in the value portion of a
name=value pair.
Here's an example of what the serverArgs applet parameter might look like in static
HTML. This is for a form named "my form" (quotes not included), which is being
passed the value "foo'bar" (quotes again not included) to the user-defined parameter
named myparam.
<PARAM NAME="serverArgs" VALUE="escapeparams=true module=my%20form
userid=scott/tiger@mydb myparam=foo%27bar">
3.4.1 How Configuration Parameters and BaseHTML Files are Tied to Client Browsers
When a user starts a Web-enabled application (by clicking a link to the application's
URL), the Forms servlet:
1.
2.
Table 35
Detected Browser
Internet Explorer
basejpi.htm
basejpi.htm
base.htm
3.
4.
2.
3.
The visibility of the title bars of all the windows in a Form. This parameter does
not affect title bars in windows like - alert windows, pop-up windows.
Table 36 shows the effect of guiMode values on the default Windows menubar and
Windows title bar. The default guiMode value is 0. Any value other than the four
valid values mentioned in the table, will be ignored. In such a case, guiMode will
return to its default value.
Table 36
guiMode
Yes
Yes
No
Yes
Yes
No
No
No
4
4
Section 4.7, "Deploying Fonts, Icons, and Images Used by Forms Services"
Monitor metrics for a Forms Services instance. See Section 14.1.1.1, "Monitoring
Forms Services Instances" for more information.
Manage user sessions. See Section 4.4, "Managing User Sessions" for more
information.
Configure parameters for a Forms Services instance. See Section 4.2.2,
"Configuring Parameters with Fusion Middleware Control" for more information.
Configure Forms Trace and monitor trace metrics. See Section 12.2, "Enabling and
Configuring Forms Trace" and Section 12.6, "Taking Advantage of Oracle
Diagnostics and Logging Tools" for more information.
Configure multiple environment files. See Section 4.3, "Managing Environment
Variables" for more information.
Configure and use JVM pooling. See Section 10.8, "Managing JVM Pooling from
Fusion Middleware Control" for more information.
4-1
Navigate to the home page for the Fusion Middleware Control that contains the
Forms instance you want to manage.
For introductory information about using the Enterprise Manager Fusion
Middleware Control, see "Overview of Oracle Fusion Middleware Administration
Tools" in the Oracle Fusion Middleware Administrators Guide.
2.
In the Farm pane, click the Fusion Middleware folder, then click the link for the
Forms instance. This displays the Forms Home page (Figure 41) in the Fusion
Middleware Control.
3.
The Forms Home page provides information on the Forms applications that are
deployed on the Oracle instance. Table 41 describes the information displayed on
the Forms Home page.
Table 41
Field
Description
Forms Application
WLS Instance
Status
Servlet URL
New Connections
Description
Web Configuration
Environment Configuration
Servlet Logs
Prestart Scheduling
2.
Click Forms on the top left. This displays the Forms Menu. Table 42 lists the
Menu Selections that are available in the Forms Menu.
Table 42
Select
To Display
Home
Monitoring - Performance
Summary
JVM Controllers
Schedule Prestart
User Sessions
User Sessions page. This page is used to monitor and trace User
Sessions within a Forms instance.
Web Configuration
Trace Configuration
JVM Configuration
Environment Configuration
4-3
To Display
General Information
For the pages that include a Help icon, click the Help icon to
access the page-level help. The page-level help describes each element
in the page.
Note:
2.
From the Fusion Middleware Control main page, click the link to the Oracle Forms
Services instance that you want to configure.
3.
4.
See Table 43 and Table 44 for the tasks that you can do.
Note:
Task
Description
Comment
Create Like
Creates a copy of a
configuration section.
Edit
Delete
Irrevocably deletes a
configuration section and its
contents when you click Delete in
the Confirmation dialog.
Create
Table 44 describes the tasks that you can do to modify the parameters within a named
configuration section:
4-5
Table 44
Task
Description
Comment
Show
basic
sso
trace
plugin
HTML
applet
advanced
all
Apply
Hide
Inherited
Add
Delete
Deletes a parameter.
Override
Table 45
Parameter
Value
baseHTML
base.htm
baseHTMLjpi
basejpi.htm
envFile
default.env
All of these parameters specify file names. If no paths are given (as in this example),
the files are assumed to be in the same directory as the Forms servlet configuration file
(formsweb.cfg), that is $DOMAIN_HOME/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_11.1.2/config
2.
From the Fusion Middleware Control main page, click the link to the Forms
Services instance that you want to configure.
3.
4.
5.
Enter a name and description for the configuration section and click Create.
Note:
Parameter
Value
form
<module>
separateFrame
True
lookandfeel
Oracle
Your users would type the following URL to launch a form that uses the "sepwin" (or
the name you applied) configuration:
4-7
http://server:port/forms/frmservlet?config=sepwin
Note:
Click Edit.
3.
4.
5.
Click Save.
The Edit Description dialog box is dismissed, and your changes are saved.
2.
In the Create Like dialog, from the Section to Duplicate menu list, select the name
of an existing configuration section you want to duplicate.
3.
In the New Section Name field, enter a name for the configuration section. The
name for the configuration section must be unique.
4.
Click Create.
A section with the same parameters, parameter values and comments of the
section you are duplicating is created.
From the Web Configuration region, select the row of the configuration section
you want to delete.
2.
Click Delete.
The Confirmation dialog appears.
3.
Click Delete.
The configuration section is deleted.
Oracle Enterprise Manager returns to the Web Configuration page and displays
the remaining configurations.
Note:
From the Web Configuration region, select the row of the configuration section
that contains the parameter(s) you want to edit.
2.
In the Section region, select the parameter group from the Show menu list. The
parameters of the group are displayed.
3.
Select the row of the parameter you want to edit. Enter the Value and Comments.
You can edit new or overridden parameters. Inherited
parameters must first be overridden so they can be edited. In
Figure 43, test1 is an example of a new parameter and
lookandfeel is an example of an overridden parameter.
Note:
4.
In Fusion Middleware Control, from the Web Configuration region, select the
configuration section row to which you want to add a parameter.
2.
3.
4.
5.
In Fusion Middleware Control, from the Web Configuration region, select the
configuration section row that contains the parameter you want to delete.
2.
In the Sections region, from the Show menu list, select the parameter group that
contains the parameter you want to delete.
3.
Select the row that contains the parameter you want to delete.
4.
Click Delete.
5.
4-9
Note:
Note:
Runform parameters: The descriptions for some parameters indicate that they are
runform parameters. They are passed to the frmweb process using the serverArgs
applet parameter. For such a parameter, the syntax rules documented in
Section 3.3.4 must be adhered to when specifying a value that contains special
characters.
Parameter
Required/
Optional
envFile
Required
form
Required
Required/
Optional
height
Required
userid
Optional
width
Required
Parameter
Required /
Optional
ssoCancelUrl
Optional
ssoDynamicResourceCr
eate
Optional
Optional
Required /
Optional
ssoMode
Optional
ssoProxyConnect
Optional
Parameter
Required/
Optional
debug
Optional
EndUserMonitoringEnabl Optional
ed
EndUserMonitoringURL
Optional
host
Optional
log
Optional
port
Optional
Required/
Optional
record
Optional
tracegroup
Optional
Parameter
Required/
Optional
archive
Optional
codebase
Required
imageBase
Optional
Required
Required/
Optional
jpi_codebase
Required
jpi_download_page
Required
jpi_mimetype
Required
Parameter
Required/
Optional Parameter Value and Description
baseHTML
Required
baseHTMLjpi
Required
HTMLafterForm
Optional
HTMLbeforeForm
Optional
HTMLbodyAttrs
Optional
pageTitle
Optional
Table 412
Parameter
Required/
Optional
background
Optional
colorScheme
Optional
Optional
lookAndFeel
Optional
separateFrame
Optional
splashScreen
Optional
guiMode
Optional
Parameter
Required/
Optional Parameter Value and Description
allowAlertClipboa
rd
Optional
allowNewConnectio
ns
Optional
applet_name
Optional
array
Optional
buffer_records
Optional
clientDPI
Optional
connectionDisallo
wedURL
Optional
cursorBlinkRate
Optional
Required/
Optional Parameter Value and Description
debug_messages
Optional
defaultcharset
Optional
digitSubstitution
Optional
disableMDIScrollb
ars
Optional
Required/
Optional Parameter Value and Description
disableValidateCl
ipboard
Optional
enableJavascriptE
vent
Optional
escapeparams
Optional
formsMessageListe
ner
Optional
heartBeat
Optional
highContrast
Optional
HTMLdelimiter
Optional
JavaScriptBlocksH
eartBeat
Optional
Required/
Optional Parameter Value and Description
legacy_lifecycle
Optional
maxRuntimeProcess
es
Optional
networkRetries
Optional
networkStats
Optional
obr
Optional
otherparams
Optional
Required/
Optional Parameter Value and Description
pingStats
Optional
pingWait
Optional
prestartIncrement
Optional
prestartInit
Optional
prestartMin
Optional
prestartRuntimes
Optional
prestartTimeout
Optional
query_only
Optional
quiet
Optional
recordFileName
Optional
Required/
Optional Parameter Value and Description
Optional
restrictedURLchar
s
Optional
serverApp
Optional
serverURL
Required
term
Optional
allowNewConnections
baseHTML
baseHTMLjpi
connectionDisallowedURL
defaultCharset
envFile
escapeparams
HTMLdelimiter
maxRuntimeProcesses
prestartIncrement
prestartInit
prestartMin
prestartRuntimes
prestartTimeout
restrictedURLparams
restrictedURLchars
serverURL
ssoCancelURL
ssoDynamicResourceCreate
ssoErrorURL
ssoMode
workingDirectory
The server does not require restarting for configuration changes to take effect.
Existing Forms processes are not affected by environment variables that were
defined after they were started.
Environment variables not set in the environment file or Windows registry are
inherited from the environment of the parent process, which is the Oracle
WebLogic Managed Server.
2.
From the Fusion Middleware Control main page, click the link to the Oracle Forms
Services instance that you want to configure.
3.
From the Forms menu list, select Environment Configuration. The Environment
Configuration page (Figure 44) is displayed.
2.
Select the file which you want to duplicate and enter a unique name for the file.
3.
In the Environment Configuration page, from the Show menu list, select the
environment configuration file you want to delete.
2.
3.
Note:
In the Environment Configuration page, from the Show menu list, select the
environment configuration file that you want to view.
2.
In the Environment Configuration page, select the row of the parameter that
contains the environment variable you want to edit.
2.
3.
1.
From the Show menu list, select the environment configuration file to which you
want to add the variable.
2.
3.
4.
Click Create.
5.
From the Show menu list, select the environment configuration file where you
want to delete an environment variable.
2.
Select the rows of the parameters you want to delete. You can delete more than
one parameter at a time.
3.
Click Delete.
4.
Parameter
Valid Values
Description
ORACLE_HOME
ORACLE_HOME (default)
ORACLE_INSTANCE
ORACLE_INSTANCE (default)
PATH
ORACLE_HOME/bin (default)
FORMS_PATH
ORACLE_
HOME/forms:ORACLE_
INSTANCE/FormsComponen
t/forms (default)
FORMS_RESTRICT_
ENTER_QUERY
TRUE (default)
TNS_ADMIN
ORACLE_INSTANCE/config
Valid Values
Description
CLASSPATH
ORACLE_
HOME/jdk/bin/java
LD_LIBRARY_PATH
ORACLE_HOME/lib.
You can reset LD_LIBRARY_
PATH in the Bourne shell by
entering:
$ set LD_LIBRARY_
PATH=ORACLE_
HOME/lib:${LD_LIBRARY_
PATH}
$ export LD_LIBRARY_
PATH
or in the C shell by entering:
% setenv LD_LIBRARY_
PATH ORACLE_
HOME/lib:${LD_LIBRARY_
PATH}
WEBUTIL_CONFIG
ORACLE_
INSTANCE/config/FormsC
omponent/forms/server/
webutil.cfg
FORMS_MESSAGE_
ENCRYPTION
TRUE
LD_PRELOAD
<JDK_
HOME>/jre/lib/i386/lib
jsig.so
FORMS_PLSQL_BHVR_
COMMON_SQL
Valid Values
Description
FORMS_MODULE_PATH
Note:
2.
3.
Table 415
Field
Description
Process ID
Database
The database name used by the Forms application for the user
session. Click the Database name to view the Database Sessions
page.
CPU Usage
IP Address
Username
Connect Time
The time when the user connected to Forms Services. If the client
connection time and client IP are empty, the session is a
prestarted session, which is not yet connected to any client.
Trace Group
The trace group used for tracing the user session. When tracing
is enabled, this column shows the trace group name or the
events being traced. The events are displayed if the events of the
trace group that was enabled for the session have been later
modified in the trace configuration.
Note that the Trace group name that is displayed may not be
indicate the accurate events being traced if built-ins are used to
control the tracing.
Trace Log
Displays the trace log if one exists for the user session.
Configuration Section
Form Name
CPU Time
By default, new Forms user sessions are enabled. You can disable them by using
Fusion Middleware Control to set the allowNewConnections parameter to false.
1.
2.
3.
4.
In the Sections region, find and edit the value for the allowNewConnections
parameter. A value of true (default) enables new user sessions, whereas false
disables them.
5.
2.
3.
4.
In the Sections region, find and edit the value for the allowNewConnections
parameter. A value of true (default) enables new user sessions, whereas false
disables them.
5.
When new user sessions are disabled, attempted connections are directed to a URL
identified by the formsweb.cfg parameter connectionDisallowedURL (in the
default section). You must specify a complete and valid URL as the value.
If connectionDisallowedURL is not specified, then the following message is
displayed in the browser:
The Forms servlet will not allow new connections. Please contact
your System Administrator.
When you disable new user sessions, existing forms sessions are unaffected and the
Oracle WebLogic Managed Server instance remains up.
To enable tracing for a Forms user sessions:
1.
2.
In the User Sessions page, select the row that has the user session for which you
want to enable tracing.
3.
4.
From the Select Trace Group list, select an available trace group and click OK.
In the User Sessions page, select the row that has the user session for which you
want to disable tracing.
2.
3.
Click OK. The Disable Tracing dialog is dismissed and tracing is now stopped for
the selected Forms user session.
1.
Select the link to the Forms Services instance that has the user session to be
terminated.
2.
3.
4.
Click Stop.
5.
6.
Click Yes.
The user session is deleted and the Runform instance is terminated.
2.
For a user session that is active, click View Trace Log in the Trace Log column. Log
in to view the trace file.
2.
3.
4.
Click the blue arrow to search. The search results are displayed.
2.
3.
Click the up or down arrow to sort in ascending or descending order. The page is
refreshed showing the sorted user sessions. You can sort in order of all columns
except Trace Logs.
2.
2.
3.
Table 416, Table 417, and Table 418 describe the information displayed in the
Database Sessions page.
Table 416
Field
Description
Username
Session ID
Logon Time
Serial #
Status
SQL HASH
CPU Usage (in percentage) on the Database system for the given
session.
Logical Reads
Physical Reads
PGA (Program Global Area) Size of PGA (Program Global Area) Memory after an interval.
Memory
Table 417
Field
Description
Table 418
Field
Description
Operation
Object
Table 418 (Cont.) Execution Plan for the Selected Database Session
Field
Description
Object Type
ID
Parent ID
Depth
Position
Rows
Size (KB)
Cost
Time (sec)
CPU Cost
I/O Cost
baseHTMLjpi=basejpi.htm
These parameters are templates for the HTML information that are sent to the client.
Create an informational HTML page and have these variables point to that instead.
For example, in the $ORACLE_
INSTANCE/config/FormsComponent/forms/server directory, create a simple
HTML page called forbidden.html with the following content:
<html>
<head>
<title>Forbidden</title>
</head>
<body>
<h1>Forbidden!</h1>
<h2>You may not access this Forms application.</h2>
</body>
</html>
Note:
Note:
[myApp]
form=myApplication.fmx
lookandfeel=oracle
baseHTML=base.htm
baseHTMLjpi=basejpi.htm
If you do not specify these base HTML values, and when a user runs
an application, the forbidden.html page is displayed because the
application-specific configuration section has not overridden the
default values.
Note:
From the Forms menu list, select Font and Icon Mapping.
The Font and Icon Mapping page (Figure 48) is displayed.
From the Forms menu list, select Font and Icon Mapping.
3.
Select the row containing the parameter to modify and change the value(s) for it in
the Value text field.
4.
1.
2.
Click Add.
The Add dialog appears.
3.
4.
Click Create.
5.
Select the row containing the parameter to delete and click Delete.
3.
4.
Table 419
2.
From the Forms menu list, select Font and Icon Mapping.
3.
Change any of the settings to reflect your desired font setting, based on Table 419:
Font Name
Default Value
default.fontMap.defaultFontname
Dialog
Represents the default Java fontName.
default.fontMap.defaultSize
900
Represents the default fontSize. Note that the size is
multiplied by 100 (for example, a 10pt font has a size
of 1000).
default.fontMap.defaultStyle
PLAIN
Represents the default fontStyle, PLAIN or ITALIC.
Default Value
default.fontMap.defaultWeight
PLAIN
Represents the default fontWeight, PLAIN or BOLD.
default.fontMap.appFontnames
Courier
New,Courier,courier,System,Terminal,Fixedsys,Time
s,Times New Roman,MS Sans Serif,Arial
Default Font Face mapping. Represents a comma
delimited list of application font names.
The number of entries in the appFontname list
should match the number in the javaFontname list.
The elements of the list are comma separated and all
characters are taken literally; leading and trailing
spaces are stripped from Face names.
Note that this file uses the Java 1.1 font names to
handle the NLS Plane.
default.fontMap.javaFontnames
MonoSpaced,MonoSpaced,MonoSpaced,Dialog,Mon
oSpaced,Dialog,Dialog,Serif,Serif,Dialog,SansSerif
Represents a comma delimited list of Java font
names.
For example, to change your default font to Times New Roman, replace Dialog
with Times New Roman.
You can change the default font face mappings:
default.fontMap.appFontnames=Courier New,Courier,
courier,System,Terminal,Fixed,Fixedsys,Times,Times New Roman,
MS Sans Serif,Arial
default.fontMap.javaFontnames=MonoSpaced,MonoSpaced,MonoSpaced,Dialog,
MonoSpaced,Dialog,Dialog,Serif,Serif,Dialog,SansSerif
4.
Some fonts on Windows are not supported in Java. For this reason you can specify
(map) Java-supported fonts that appear when a non-supported font is encountered. In
the previous sample, each font in default.fontMap.appFontnames corresponds to a
font in default.fontMap.javaFontnames.
you can change the default.icons.iconpath value of the Registry.dat file in the
$DOMAIN_HOME/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_
11.1.2/config/forms/registry/oracle/forms/registry directory.
Setting the imageBase parameter to codebase enables Oracle Forms to search the
forms/java directory for the icon files. Use this setting if your images are stored in a
Java archive file. Changing the image location in the Registry.dat configuration file is
useful to store images in a central location independent of any application and
independent of the Oracle Forms installation.
Note:
2.
3.
Click Add.
The Add dialog appears.
4.
5.
6.
1.
2.
3.
Click Delete.
3.
4.
Table 420
Icon Location
When
How
DocumentBase
Default.
Applications with
few or no custom
icons.
Java Archives
Applications that
use many custom
icons.
When
How
Registry.dat
Applications with
custom icons that
are stored in a
different location
as the Oracle
Forms install (can
be another server).
Useful to make
other changes to
the Registry.dat file
such as font
mapping.
Note:
In this example, we use a JAR file containing the icons and we specify that the search
should be relative to codeBase. If the parameter imageBase is not set, the search is
relative to documentBase and the icons are not retrieved from the Jar file.
For example (formsweb.cfg):
archive=frmall.jar, icons.jar
imageBase=codeBase
What you specify in your custom application file (for the icons).
What you specified in the splashScreen and background parameters of your
default Forms configuration file or HTML file (for the images).
What you specify in the imageBase parameter in the Web Configuration page of
Fusion Middleware Control for the file or HTML file (for both icons and images).
Forms Services searches for the icons depending on what you specify. This example
assumes:
codebase is the URL pointing to the location of the starting class file (as specified
in the formsweb.cfg file or HTML file).
mydir is the URL pointing to your icons or images directory.
4.7.6.1 DocumentBase
The default search paths for icons and images are relative to the DocumentBase. In
this case, do not specify the imageBase parameter:
Table 421
Location Specified
default
http://host/documentbase
iconpath=mydir
http://host/documentbase/mydir
(specified in your
application file)
(relative path)
iconpath=/mydir
http://host/mydir
(specified in your
application file)
(absolute path)
Table 422
Location Specified
http://host/documentbase/file.gif
mydir/file.gif
http://host/documentbase/mydir/file.gif
(relative path)
/mydir/file.gif
http://host/mydir/file.gif
(absolute path)
4.7.6.2 codebase
Use the imageBase=codebase parameter to enable the search of the icons
(Table 423) and images (Table 424) in a Jar file:
Table 423
Location Specified
default
iconpath=mydir
(specified in your
application file)
(relative path)
iconpath=/mydir
http://host/mydir
(specified in your
application file)
(absolute path)
Table 424
Location Specified
file.gif
mydir/file.gif
(relative path)
/mydir/file.gif
http://host/mydir/file.gif
(absolute path)
No Jar file is used.
Services do not provide an integrated translation tool, you must have translated
application source files.
For more information about using baseHTML, see Appendix C.4, "base.htm and
basejpi.htm Files".
2.
Then, if not found, the value is looked for in the base configuration section
([myconfig],
3.
Then, failing that, in the language-specific default section (for example, [.fr]),
4.
Typically, the parameters which are most likely to vary from one language to another
are "workingDirectory" and "envFile". Using a different envFile setting for
each language lets you have different values of NLS_LANG (to allow for different
character sets, date and number formats) and FORMS_PATH (to pick up
language-specific fmx files). Using different workingDirectory settings provides
another way to pick up language-specific .fmx files.
Note:
It is possible to pass this parameter directly within the URL. For example:
http://hostname:port/forms/frmservlet?Form=test.fmx&term=fullpat
h/filename.res
You can also set this parameter in the formsweb.cfg file, for example:
otherParams=term=fullpath\filename.res
Note:
Note:
A file called fmrpcweb.res has also been provided which gives the Microsoft
Windows client/server keyboard mappings. To use this file, rename fmrpcweb.res
to fmrweb_orig.res, and copy fmrpcweb.res to fmrweb.res. Alternatively, use
the term parameter as described above.
Section 4.9.1.2.4, "Mapping for ESC Key to exit out of a Web Form"
4.9.1.2.1
Mapping F2
To map F2, change the default entry for F2, "List Tab Pages", to another key. Here is an
example of the default entry:
113: 0 : "F2" : 95 : "List Tab Pages"
This must be explicitly changed to another key mapping such as the following:
113: 8 : "F2" : 95 : "List Tab Pages"
To map the F2 function to the F2 key, comment out the lines that begin with "113 : 0"
and "113 : 8" with a # symbol and add the following lines to the bottom of the resource
file:
113: 0 : "F2" : 84 : "Function 2"
113: 8 : " " : 95 : " "
Since a new function has been added which uses F2 by default, it is necessary to
explicitly map this new function to something else to map the F2 key. This function
was added to allow for keyboard navigation between the tab canvas pages and it
defaults to F2. Even if it is commented out and not assigned to F2, the F2 key cannot be
mapped unless this function, Forms Function Number 95, is mapped to another key.
4.9.1.2.2
By default, whether deploying client/server or over the Web pressing the ENTER key
takes the cursor to the next navigable item in the block. To override this default
behavior it is necessary to modify the forms resource file to revise the key mapping
details.
Modify fmrweb.res and change the Forms Function Number (FFN) from 27 to 75 for
the Return Key. The line should be changed to the following:
10 : 0 : "Return" : 75 : "Return"
This line should NOT fire the Key-Enter trigger since the Return or Enter key is
actually returning the Return function represented by the FFN of 27. The FFN of 75
represents the Enter function and fires the Key-Enter trigger.
4.9.1.2.3
List the Java function key numbers that could be implemented in fmrweb.res file
for the Key Mapping. For example:
public static final int VK_1 = 0x31;
2.
49
3.
Use this decimal value for mapping the number key 1 in fmrweb.res. For
example, CTRL+1 can be mapped to 'Next Record' as:
49 : 2 : "CTRL+1" : 67 : "Next Record"
4.9.1.2.4
1.
2.
Open the fmrweb.res file present in the path ORACLE_HOME/FORMS and add the
following entry in it:
27 : 0 : "Esc" : 32 : "Exit"
3.
The first number (115) might differ on different versions or platforms. When you
run the Web Form and press the ESC key, then the Form exits.
5
5
Using Oracle Forms Services with the HTTP Listener and Oracle WebLogic Server
5-1
image. The Forms Listener servlet establishes a runtime process and is responsible for
on-going communication between the client browser and the runtime process. As
more users request Oracle Forms sessions, the requests are received by the Oracle
HTTP Server Listener. The HTTP Listener again passes them off to the Forms Listener
servlet, which establishes more runtime processes. The Forms Listener servlet can
handle many Forms runtime sessions simultaneously. While there is, of course, a limit
to the number of concurrent users, the architecture presents a number of opportunities
for tuning and configuration to achieve better performance (see the next section).
Figure 51 Oracle WebLogic Managed Server and Forms Services
Web Container
HTTP
Oracle HTTP
Server
powered
by Apache
mod_weblogic
Forms Servlet
Client.jar
JNDI
JMS
JDBC
Forms Client
JavaMail
JB Container
JAF
Starting and Stopping Forms Managed Server: For more information, refer to
"Overview of Starting and Stopping Procedures" in Oracle Fusion Middleware
Administrators Guide.
Deploying Forms Application to Forms Managed Server: For more information,
refer to "Install an Enterprise application" in WebLogic Administration Console
Online Help. For information on deploying, undeploying, and redeploying
applications, see "Deploying Applications" in Oracle Fusion Middleware
Administrator's Guide.
Custom deployment of Forms Java EE application: For more information, refer to
Section 5.2.1, "Custom Deployment of Forms Java EE Application".
Expanding Forms Managed Server Clusters: For more information, refer to
Section 5.2.2, "Expanding Forms Managed Server Clusters".
Managing Cloned Managed Servers: For more information on using Fusion
Middleware Control to manage cloned managed servers, see Section 5.2.3,
"Registering Forms Java EE Applications."
2.
MW_HOME: Set this variable to point to the Oracle Middleware Home location
(for more information, see "A.9 Specify Installation Location Screen" in Oracle
Fusion Middleware Installation Guide for Oracle Portal, Forms, Reports and
Discoverer).
ORACLE_HOME: Set this variable with the absolute path of the Oracle Home
directory. For more information, see "A.9 Specify Installation Location Screen"
in Oracle Fusion Middleware Installation Guide for Oracle Portal, Forms, Reports
and Discoverer.
DOMAIN_HOME: Set this variable with the location of the folder created by
Oracle WebLogic Server for the domain specified in "A.7 Select Domain
Screen" in Oracle Fusion Middleware Installation Guide for Oracle Portal,
Forms, Reports and Discoverer.
3.
4.
Specify the following properties of the managed server using the WebLogic
Administration Console.
Make sure all the entries are in a single line (without any carriage returns).
Replace <ORACLE_HOME>, <ORACLE_INSTANCE> with the absolute paths.
Replace <ORACLE_INSTANCE_NAME> with the name of the Oracle Instance
(default name asinst_1).
Using Oracle Forms Services with the HTTP Listener and Oracle WebLogic Server
5-3
On UNIX operating systems, create a new folder for the custom application.
For example, create customapp as follows:
mkdir -p $ORACLE_HOME/customapp
Create a Java folder in customapp and create a symbolic link for the folder as
follows:
For example:
cd $ORACLE_HOME/customapp
ln -s $ORACLE_HOME/forms/java $ORACLE_HOME/customapp/java
Copy the application files to the new folder.
For example:
cp -rpf $ORACLE_HOME/forms/j2ee $ORACLE_HOME/customapp/
b.
5.2.1.2 Override the Default Servlet Alias and the Context Root
1.
2.
cd %ORACLE_HOME%\customapp\j2ee\warfile
jar xvf %ORACLE_HOME%\customapp\j2ee\formsweb.war
3.
Override the servlet alias in web.xml deployment descriptor that is located in the
WEB-INF folder.
For example, on UNIX operating systems:
cd $ORACLE_HOME/customapp/j2ee/warfile/WEB-INF
On Windows operating systems:
cd %ORACLE_HOME%\customapp\j2ee\warfile\WEB-INF
Edit web.xml in an editor and replace frmservlet with customservlet (entries
under tags <Servlet-Name>, <url-pattern>, <welcome-file>).
4.
5.
6.
7.
5-5
2.
Replace the custom application name, location of EAR file, and managed
server with the names and locations in your environment.
Replace <DOMAIN_HOME>, <ORACLE_HOME> with the absolute paths.
<value><DOMAIN_HOME>/config/fmwconfig/servers/WLS_FORMS_CUSTOM_
APP/applications/customapp_11.1.2/config/customapp</value>
</variable>
</variable-definition>
<module-override>
<module-name>customapp.ear</module-name>
<module-type>ear</module-type>
<module-descriptor external="false">
<root-element>weblogic-application</root-element>
<uri>META-INF/weblogic-application.xml</uri>
</module-descriptor>
<module-descriptor external="false">
<root-element>application</root-element>
<uri>META-INF/application.xml</uri>
</module-descriptor>
<module-descriptor external="true">
<root-element>wldf-resource</root-element>
<uri>META-INF/weblogic-diagnostics.xml</uri>
</module-descriptor>
</module-override>
<module-override>
<module-name>formsweb.war</module-name>
<module-type>war</module-type>
<module-descriptor external="false">
<root-element>weblogic-web-app</root-element>
<uri>WEB-INF/weblogic.xml</uri>
<variable-assignment>
<name>vd-<ORACLE_HOME>/customapp</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="java/*"]/l
ocal-path</xpath>
</variable-assignment>
<variable-assignment>
<name>vd-<ORACLE_HOME>/customapp</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="webutil/*"
]/local-path</xpath>
</variable-assignment>
<variable-assignment>
<name>vd-<DOMAIN_HOME>/config/fmwconfig/servers/WLS_FORMS_CUSTOM_
APP/applications/customapp_11.1.2/config/customapp</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="registry/*
"]/local-path</xpath>
</variable-assignment>
</module-descriptor>
<module-descriptor external="false">
<root-element>web-app</root-element>
<uri>WEB-INF/web.xml</uri>
</module-descriptor>
</module-override>
</deployment-plan>
5-7
Copy the Forms J2EE application files to the customapp directory. On Unix
operating systems:
cp -rpf $ORACLE_HOME/forms/j2ee/* $ORACLE_
HOME/customapp/j2ee/*
On Windows operating systems:
xcopy /S /E %ORACLE_HOME%\forms\java %ORACLE_
HOME%\customapp\java
xcopy /S /E %ORACLE_HOME%\forms\j2ee %ORACLE_
HOME%\customapp\j2ee
2.
Repeat the steps in "Override the Default Servlet Alias and the Context Root".
3.
Perform the following steps to add a new Managed Server to the cluster
(cluster_forms):
a.
Using the Oracle WebLogic Server Administration Console, you can choose to
either clone the default Forms Managed Server (WLS_FORMS) or create a new
Managed Server (for example, WLS_FORMS_1, with port number 9010).
2.
b.
In the Server Properties page, add the newly created Managed Server to the
Forms cluster cluster_forms.
c.
d.
Perform the following steps to edit the configuration of the new managed server:
a.
Using the Oracle WebLogic Server Administration Console, in the Server Start
Tab, set the following Server Start properties.
b.
Add the following system properties without any carriage returns to the
arguments:
-Dclassic.oracle.home=<ORACLE_HOME
location>-Doracle.instance=<ORACLE_INSTANCE
location>-Doracle.instance.name=<ORACLE_INSTANCE Name>
-Doracle.forms.weblogic=1
c.
3.
4.
Add the new Managed Servers host and port information to the WebLogicCluster
entry in forms.conf.
<Location /forms>
SetHandler weblogic-handler
WebLogicCluster <HostName>:9001, <HostName>:9010
DynamicServerList OFF
</Location>
5.
Restart OHS.
Create a sample WLST script as shown in Example 52. In this example, the script
is named formsappRegistration.py.
Using Oracle Forms Services with the HTTP Listener and Oracle WebLogic Server
5-9
Using Oracle Forms Services with the HTTP Listener and Oracle WebLogic Server 5-11
if adminServerName == [] or \
managedServer == [] or formsappName == [] or not args:
print "invalid arguments passed to the script "
usage()
sys.exit(0)
argument = args[0]
print "enter the WLST connection paramters ..."
connect()
frmcompMbean = getFormsCompMbeanObjectName(asinstName,adminServerName)
print frmcompMbean
frmappMbean = getFormsAppMbeanObjectName(formsappName,managedServer)
print frmappMbean
if argument == "registerApp":
print "registering Forms J2EE application " + formsappName
registerFormsApp(frmcompMbean,frmappMbean)
elif argument == "unregisterApp":
print "unregistering Forms J2EE application " + formsappName
unregisterFormsApp(frmcompMbean,frmappMbean)
else:
print "invalid option passed to the scripts ..."
usage()
disconnect()
print "done... "
2.
Execute the script. You can use the help argument for more information as shown
in Example 53.
4.
5.
2.
Note:
Using Oracle Forms Services with the HTTP Listener and Oracle WebLogic Server 5-13
3.
4.
Restart the Forms J2EE application using the WebLogic Administration Console.
2.
Modify the deployment plan. The following is a sample of the deployment plan
with the added entries highlighted in bold:
<?xml version='1.0' encoding='UTF-8'?>
<deployment-plan xmlns="http://xmlns.oracle.com/weblogic/deployment-plan"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/weblogic/deployment-plan
http://xmlns.oracle.com/weblogic/deployment-plan/1.0/deployment-plan.xsd"
global-variables="false">
<application-name>formsapp</application-name>
<variable-definition>
<variable>
<name>vd-/scratch/t_work/Oracle/Middleware/as_1/forms</name>
<value>/scratch/t_work/Oracle/Middleware/as_1/forms</value>
</variable>
<variable>
<name>vd-/scratch/t_work/Oracle/Middleware/user_
projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_11.1.2/config/forms</name>
<value>/scratch/t_work/Oracle/Middleware/user_
projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_11.1.2/config/forms</value>
</variable>
<variable>
<name>FormsServlet_InitParam_testMode</name>
<value>true</value>
</variable>
</variable-definition>
<module-override>
<module-name>formsapp.ear</module-name>
<module-type>ear</module-type>
<module-descriptor external="false">
<root-element>weblogic-application</root-element>
<uri>META-INF/weblogic-application.xml</uri>
</module-descriptor>
<module-descriptor external="false">
<root-element>application</root-element>
<uri>META-INF/application.xml</uri>
</module-descriptor>
<module-descriptor external="true">
<root-element>wldf-resource</root-element>
<uri>META-INF/weblogic-diagnostics.xml</uri>
</module-descriptor>
Performance/Scalability Tuning
</module-override>
<module-override>
<module-name>formsweb.war</module-name>
<module-type>war</module-type>
<module-descriptor external="false">
<root-element>weblogic-web-app</root-element>
<uri>WEB-INF/weblogic.xml</uri>
<variable-assignment>
<name>vd-/scratch/t_work/Oracle/Middleware/as_1/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="java/*"]/local
-path</xpath>
</variable-assignment>
<variable-assignment>
<name>vd-/scratch/t_work/Oracle/Middleware/as_1/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="webutil/*"]/lo
cal-path</xpath>
</variable-assignment>
<variable-assignment>
<name>vd-/scratch/t_work/Oracle/Middleware/user_
projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_11.1.2/config/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="registry/*"]/l
ocal-path</xpath>
</variable-assignment>
</module-descriptor>
<module-descriptor external="false">
<root-element>web-app</root-element>
<uri>WEB-INF/web.xml</uri>
<variable-assignment>
<name>FormsServlet_InitParam_testMode</name>
<xpath>/web-app/servlet/[servlet-name="frmservlet"]/init-param/[param-name="tes
tMode"]/param-value</xpath>
</variable-assignment>
</module-descriptor>
</module-override>
</deployment-plan>
3.
Restart the Forms J2EE application using the WebLogic Administration Console.
Using Oracle Forms Services with the HTTP Listener and Oracle WebLogic Server 5-15
connection between the client (Browser) and the OHS server. It does not have
anything to do with the OHS to Oracle WebLogic Server connection.
Figure 52 shows the Oracle HTTP Server balancing incoming requests between
multiple Oracle WebLogic Managed Servers on the same host as the Oracle HTTP
Listener.
Figure 53 shows the Oracle HTTP Server balancing incoming requests between
multiple Oracle WebLogic Managed Servers on a different host to the Oracle HTTP
Listener.
Figure 54: shows the Oracle HTTP Server balancing incoming requests between
multiple Oracle WebLogic Managed Servers on multiple different hosts and
multiple different hosts each running an Oracle HTTP Listener.
Figure 55: shows the Oracle HTTP Server balancing incoming requests between
multiple Oracle WebLogic Managed Servers on a single host but with multiple
different hosts each running an Oracle HTTP Listener.
Figure 52 Multiple Oracle WebLogic Servers on the same host as the Oracle HTTP
Listener
Host 1
Oracle WebLogic
Managed Server
Forms Server
Runtime
Oracle HTTP
Listener
Oracle WebLogic
Managed Server
Forms Server
Runtime
Figure 53 Multiple Oracle WebLogic Servers on a different host to the Oracle HTTP
Listener
Host 1
Host 2
Oracle WebLogic
Managed Server
Forms Server
Runtime
Oracle WebLogic
Managed Server
Forms Server
Runtime
Oracle HTTP
Listener
Using Oracle Forms Services with the HTTP Listener and Oracle WebLogic Server 5-17
Figure 54 Multiple Oracle WebLogic Servers and multiple Oracle HTTP Listeners on
different hosts
Host 1
Host 2
Oracle WebLogic
Managed Server
Forms Server
Runtime
Oracle WebLogic
Managed Server
Forms Server
Runtime
Oracle HTTP
Listener
Host 3
Host 4
Oracle WebLogic
Managed Server
Forms Server
Runtime
Oracle HTTP
Listener
Oracle WebLogic
Managed Server
Forms Server
Runtime
Figure 55 Multiple Oracle HTTP Listeners on different hosts with multiple Oracle
WebLogic Servers on one host
Host 1
Oracle HTTP
Listener
Host 2
Oracle WebLogic
Managed Server
Forms Server
Runtime
Host 3
Oracle WebLogic
Managed Server
Forms Server
Runtime
Oracle HTTP
Listener
For more information about tuning and optimizing Forms Services with the HTTP
Listener and Oracle WebLogic Server, see Oracle Fusion Middleware Performance Guide,
available on Oracle Technology Network (OTN) at
http://www.oracle.com/technetwork/indexes/documentation/index.ht
ml.
Using Oracle Forms Services with the HTTP Listener and Oracle WebLogic Server 5-19
detect whether the user has logged on (or been authenticated). The cookie is sent in all
subsequent network requests to avoid further logon prompts.
The codebase and server URL values that are set up by the Oracle WebLogic Server
installation process include $ORACLE_HOME/forms/java and /forms/lservlet.
As these are under the document base of the page ($ORACLE_HOME/forms),
authenticating proxies will work.
For more information on the above topics, see the section "SSL Configuration in Oracle
Fusion Middleware" in the Oracle Fusion Middleware Administrator's Guide.
When you change the Oracle Web Cache port using Enterprise
Manager, regenerate the osso.conf and copy the generated
osso.conf file to $ORACLE_INSTANCE/config/OHS/<OHS_
INSTANCE>/moduleconf directory. Restart the Oracle HTTP Server
and Oracle Web Cache for the changes to take effect.
Note:
3.
4.
5.
6.
In the Export File Format page, select Base-64 encoded X.509 (.CER), then click
Next.
7.
8.
Click Finish.
A message appears saying that the export was successful.
9.
Click OK.
10. Close the Certificate Export Wizard, but keep the Security Alert dialog open.
11. Import the security certificate file that you saved earlier into the certificate store of
the JVM you are using. For more information, see the next section.
12. At the Security Alert dialog, click Yes to accept the security certificate and start the
Forms application.
Importing the certificate into Java Plugin
1. On the client machine, open the Control Panel.
2.
Open Java.
3.
4.
Click Certificate.
5.
6.
Click Apply.
Using Oracle Forms Services with the HTTP Listener and Oracle WebLogic Server 5-21
6
Oracle Forms and JavaScript Integration
HTML Page
Forms Applet
JavaScript
Forms Server
web.javascript_eval_expr
web.javascript_eval_function
Note that the PL/SQL string must use single quotes while JavaScript is flexible
enough to use single or double quotes. Using double quotes inside the expression
works without having to use escape sequences. You could also write a function in the
Web page:
<SCRIPT>
function set_field(field_id, myvalue){
document.getElementById(field_id).value=myvalue;
};
</SCRIPT>
To get the value of the outside field and assign it to the inside field, you could write
the following PL/SQL code:
:inside:=web.javascript_eval_function('
document.getElementById("outside_field_id").value
');
This PL/SQL code recognizes two events: 'show' and 'grab'. Any other name is
ignored.
Build a Forms application using the JavaScript events as described in Section 6.1,
"About Oracle Forms Calling External Events" and Section 6.2, "About JavaScript
Events Calling into Oracle Forms". Use the :system.javascript_event_name
and :system.javascript_event_value in the
WHEN-CUSTOM-JAVASCRIPT-EVENT trigger. Compile the module. For more
information, refer to the Forms Builder Online Help.
2.
Create an html file (for example, test.html) that the Forms servlet will use as a
template when generating the HTML page used to start an Oracle Forms
Configuration of formsweb.cfg
Copy any required images, html files, JavaScript files, and css files to the following
directory: $DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_
user/formsapp_11.1.2/<random_string2>/war/
4.
Create an html file that uses the JavaScripts (for example, js.html) and invokes
the servlet URL.
5.
6.
Using Enterprise Manager, edit the default.env file and add the directory
where you saved the forms application to the environment variable FORMS_PATH.
7.
7
Enhanced Java Support
7.1 Overview
Oracle Forms provides Java classes that define the appearance and behavior of
standard user interface components such as buttons, text areas, radio groups, list
items, and so on. A Forms pluggable Java component (PJC) can be thought of as an
extension of the default Forms client component. When you create a PJC, you write
your own Java code to extend the functionality of any of the provided default classes.
7-1
Create a Java class for a push button with simple PJC code such as:
// MyButtonPJC.java
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFileChooser;
import oracle.forms.ui.CustomEvent;
import oracle.forms.ui.VButton;
import oracle.forms.properties.ID;
public class MyButtonPJC extends VButton implements ActionListener
{
private static final ID CLIENT_SELECTED_FILE = ID.registerProperty("CLIENT_
SELECTED_FILE");
public MyButtonPJC()
{
addActionListener(this);
}
public void actionPerformed(ActionEvent event)
{
JFileChooser fc = new JFileChooser();
if(fc.showOpenDialog(getHandler().getApplet()) == JFileChooser.APPROVE_
OPTION)
{
CustomEvent ce = new CustomEvent(getHandler(), "MyButtonPJC_Event");
ce.setProperty(CLIENT_SELECTED_FILE,
fc.getSelectedFile().getAbsolutePath());
this.dispatchCustomEvent(ce);
}
}
public void destroy()
{
removeActionListener(this);
super.destroy();
}
}
2.
3.
Compile the Java class. For ease of creating the jar later, place the output class files
in a separate directory by using the -d <output-directory> option of the
javac (java compiler).
4.
Navigate to the output directory and create a jar file, for example,
MyButtonPJC.jar, containing the generated class files by using the command
jar cvf <jar-file-path> *
5.
6.
7.
8.
9.
the push button. This code handles the CustomEvent dispatched by the PJC and
then extracts the parameters in the event.
declare
filePath VARCHAR2(1024);
dataType
PLS_INTEGER;
begin
Message('Custom Event Name='||:SYSTEM.CUSTOM_ITEM_EVENT);
7-3
get_parameter_attr(:SYSTEM.CUSTOM_ITEM_EVENT_PARAMETERS,'CLIENT_SELECTED_
FILE',dataType, filePath);
Message('The selected client file path is '|| filePath);
end;
12. Add MyButtonPJC.jar to the list of comma-separated jars (only jar file name, not
8
Working with Server Events
Create a queue table: Define the administration and access privileges (AQ_
ADMINISTRATOR_ROLE, AQ_USER_ROLE) for a user to set up advanced
queuing. Define the object type for the payload and the payload of a message that
uses the object type. Using the payload, define the queue table.
Create a queue: Define the queue for the queue table. A queue table can hold
multiple queues with the same payload type.
Start the queue: Enable enqueue/dequeue on the queue.
Forms Builder
Create an event object: Create a new event in the Events node in the Object
Navigator in the Forms Builder.
Subscribe the event object to the queue: The name of the queue is specified in the
Subscription Name property.
Code necessary notification: Write the event handling function, which is queued
up for execution by Forms and is executed when the server receives a request from
the client. Write the trigger code for the When-Event-Raised trigger that is
attached to the Event node.
Forms Services
In earlier versions of Forms, handling external events was only possible through
custom programming, usually done in Java with the help of Forms' Java Bean support.
In Oracle Forms 11g it is possible to call into Forms from any technology that can
interface with Advanced Queuing (AQ), for example Java Messaging (JMS).
Figure 81 shows the flow of events that take advantage of the improved integration of
the different components your application might work with. In the left side of the
image, the Oracle Forms has two-way communication with the AQ functionality of
Oracle Database. In the center of the image, the AQ function of Oracle Database also
has two-way communication with the possible outside events that can trigger internal
Forms events. In the right side of the image, these external events can include
technologies such as files with dynamic content, Web services, mail, JMS, or database
content that interact with BPEL processes which in turn interact with AQ. BPEL,
however, is not necessary. JMS, as an example, can interact with AQ directly without
having to go through BPEL.
Third party tools such as antivirus and security software may
prevent Advanced Queuing from working correctly with Oracle
Forms. As a workaround, turn off any third party security tools.
Note:
Event Propagation
Figure 81 Oracle Forms Handles Outside Events with Advanced Queueing in Oracle Database
Files with
Dynamic Content
Forms
BPEL
Web Service
Mail, Wireless
JMS
Advanced
Queuing
Database Data
.Net
B2B, EDI
Event Propagation
until it receives the notification from the Forms Client (because of the HTTP
request/reply paradigm of the Forms Client and hence the need for the
MaxEventWait property).
Figure 82 Notification flow with idle or active clients
for that event receive the notification. This alleviates the need for the application
developer to code complex logic to deal with the event.
There is also a Form-level scope so that the event will only be handled if the
application is running the specific form from where the event is defined.
For more information about database events, see Oracle Database PL / SQL Reference.
9
Using Forms Services with Oracle Single
Sign-On
9.1 Overview
In addition to working with Oracle Single Sign-On Server 10g (OSSO), Oracle Forms
Services applications can now run in a Single Sign-on environment using Oracle
Access Manager 11g (OAM) and Oracle Internet Directory (OID) to eliminate the need
for additional or different logins to access many applications during the same user
session.
Oracle Forms Services applications in Oracle FMW 11g Release 2 can be protected by
one of the following authentication servers:
During the installation of Forms and Reports 11g Release 2, users can choose to
authenticate their Forms Applications using one of these authentication servers. It is
required that these authentication servers are configured to use Oracle Internet
directory as the backend Identity Store. Authentication servers are designed to work in
Web environments where multiple Web-based applications are accessible from a
browser. Without an authentication server, each user must maintain a separate identity
and password for each application they access. Maintaining multiple accounts and
passwords for each user is unsecure and expensive.
Oracle Access Manager 11g is a Java Platform, Enterprise Edition (Java EE)-based
enterprise-level security application that provides restricted access to confidential
information and centralized authentication and authorization services. Oracle Access
Manager 11g, a component of Oracle Fusion Middleware 11g, is a Single Sign-On
solution for authentication and authorization.
9-1
Overview
Note:
Overview
Authentication Server
Access Client
Identity Store
Oracle Internet Directory (OID) is an LDAP server that is used as the Identity
store by the authentication server and the Forms applications. An LDAP
server is a special database that is optimized for read access.
Forms Servlet - The Oracle Forms Services component that accepts the initial user
request to start a Forms application. The Forms servlet detects if an application
requires authentication, directs the request to the authentication server and
accesses the Oracle Internet Directory to obtain the database connect information.
9-3
Overview
7
Client
Browser
Access Client
2
Forms Servlet
Authentication
Server
Forms
Server
OID
(LDAP Server)
1.
Note:
2.
The Forms servlet redirects the user to the authentication server login page.
3.
The user provides user name and password through the login form.
4.
5.
6.
The Forms servlet retrieves the database credentials from Oracle Internet
Directory.
7.
The Forms servlet sets the sso_userid parameter in the Runform session and
permits the applet to connect to the Forms listener servlet.
8.
Setup Process
Figure 93 describes the authentication flow of single sign-on support in Oracle Forms
Services when a user, authenticated through another partner application, requests an
application that is protected by authentication server.
Figure 93 Authentication Flow for Subsequent Client Requests
5
Client
Browser
Access Client
2
Forms Servlet
Authentication
Server
Forms
Server
OID
(LDAP Server)
1.
2.
The Forms servlet redirects the user to the authentication server and its login page.
3.
4.
The Forms servlet retrieves the database credentials from Oracle Internet
Directory.
5.
The Forms servlet sets the sso_userid parameter in the Runform session and the
applet connects to the Forms listener servlet.
6.
9-5
Setup Process
The steps depicted in the flowchart are described in details in Table 91:
Setup Process
Table 91
Tasks
Options
Task 1: Select an
No
Application Identity Store
(OID)
Task2: Select an
Authentication (SSO)
server
Description
Comments
Yes
OAM Server
No
Yes
9-7
Setup Process
Note:
The steps depicted in the flowchart are described in details in Table 92:
Setup Process
Table 92
Tasks
Options
Description
Comments
OAM Server
OAM Server
Task2: Select an
Authentication (SSO)
server
9-9
Table 92 (Cont.) Tasks to Enable Single Sign-On for Forms Application Postinstallation
Tasks
Options
Description
No
Yes
Comments
Parameter Name
Valid values
Default Value
ssoMode
mod_osso
false
true
webgate
false
ssoProxyConnect
yes
yes
no
ssoDynamicResourceCreate true
true
false
ssoErrorUrl
String URL
ssoCancelUrl
String URL
Note:
These Oracle Forms parameters in the formsweb.cfg file are set in the User
Parameter section, which define the behavior for all Forms applications run by the
server. These parameters can also be set in a Named Configuration, which define the
settings for a particular application only. A single sign-on parameter set in a Named
Configuration section overrides the same parameter set in the User Parameter section.
To enable single sign-on for an application:
1.
2.
3.
Select the row that lists the configuration section for your application.
4.
In the Section region, select sso in the Show drop down list.
5.
6.
7.
2.
Select the row that lists the configuration section for your application.
3.
In the Section region, select sso in the Show drop down list.
4.
5.
6.
Click Apply.
Single sign-on is now disabled for the selected application.
9.4.1 ssoMode
The ssoMode parameter enables a Forms Services application to connect to an
authentication server. Following are the values that the single sign-on parameter,
ssoMode can assume:
ssoMode, when set to TRUE or mod_osso indicates that the application requires
authentication by OAM Server or OracleAS Single Sign-On Server.
ssoMode, when set to webgate indicates that the application requires
authentication by OAM server using webgate as the access client. Webgate must
be manually installed and configured.
ssoMode, when set to FALSE indicates that the application does not require
authentication with an authentication server.
By default, Oracle Forms applications are not configured to run in single sign-on
mode. The ssoMode parameter can be set in two places in the formsweb.cfg file:
9.4.2 ssoProxyConnect
The ssoProxyConnect parameter enables a user to control when Oracle Forms
should use a proxy connection to the database and when it should not. The
ssoProxyConnect parameter can be set in two ways:
9.4.3 ssoDynamicResourceCreate
The ssoDynamicResourceCreate parameter is set to true by default which
allows the user to create a Resource Access Descriptor (RAD) entry in Oracle Internet
Directory to run the application if this resource entry does not exist.
Allowing dynamic resource creation simplifies Oracle Internet Directory
administration because there is no longer the need for an administrator to create user
RAD information in advance. The ssoDynamicResourceCreate parameter can be
set as a system parameter in the formsweb.cfg file or as a parameter of a named
configuration. Because the default is set to true, this parameter may be used in a
named configuration for a specific application to handle a missing RAD entry
differently from the default.
Note that enabling an application for single sign-on with the value of the
ssoDynamicResourceCreate parameter set to false, while not specifying a value
for the ssoErrorURL, causes Oracle Forms to show an error message if no RAD
resource exists for the authenticated user and this application.
Since not all administrators want their users to create resources for themselves (and
potentially raising issues with Oracle Internet Directory), these parameters allow
administrators to control Oracle Internet Directory resource creation. Although the
default behavior is to direct users to an HTML form that allows them to create the
resource, the administrator can change the setting and redirect the user to a custom
URL.
For the configuration section for the Forms application, you need to set these
parameters:
[myApp]
form=myFmx
ssoMode=true
ssoDynamicResourceCreate=false
For information about setting these parameters through Enterprise Manager Fusion
Middleware Control, see Section 4.2.4, "Managing Parameters".
9.4.4 ssoErrorURL
The ssoErrorURL parameter allows an administrator to specify a redirection URL
that handles the case where a user RAD entry is missing for a particular application.
This parameter has effect only if the ssoDynamicResourceCreate parameter is set
to false, which disables the dynamic resource creation behavior. The ssoErrorURL
parameter can be defined in the default section and as a parameter in a named
configuration section. The URL can be of any kind of application, a static HTML file,
or a custom Servlet (JSP) application handling the RAD creation, as in the example
below.
[myApp]
form=myFmx
ssoMode=true
ssoDynamicResourceCreate=false
ssoErrorURL=http://example.com:7779/servlet/handleCustomRADcreation.jsp
9.4.5 ssoCancelUrl
The ssoCancelURL parameter is used in combination with the dynamic RAD
creation feature (ssoDynamicResourceCreate= true) and defines the URL that a
user is redirected to if the user presses the cancel button in the HTML form that is used
to dynamically create the RAD entry for the requested application.
The Forms application developer can obtain the SSO information such as single
sign-on user ID, subscriber distinguished name (subscriber dn), and user
distinguished name (dn) in SSO mode with either OracleAS Single Sign-On server or
Oracle Access Manager when using mod_osso or webgate as the access client.
Note:
cluster1:repserver1;cluster2:repserver2;cluster3:repserver3
</reports_servermap>
For example, if your Oracle Forms application includes 3 clusters with names
dev_cluster, prd_cluster, and qa_cluster in 10.1.2, you can map these
cluster names to respective server names in later releases, as follows:
<reports_servermap>
dev_cluster:dev_server;prd_cluster:prd_server;qa_cluster:qa_
server
</reports_servermap>
For more information, see Oracle Fusion Middleware Publishing Reports to the Web with
Oracle Reports Services.
time, but also duplicates functionality that is already implemented in the Oracle
Database.
The second issue is security. If that single user access is ever compromised, the
compromised user will have access to the entire application schema.
To address these two issues, Oracle Database supports proxy user authentication,
which allows a client user to connect to the database through an application server, as
a proxy user.
Figure 96 describes the authentication of a Forms proxy user.
Figure 96 Proxy User Authentication
Oracle Forms authenticates the user through Oracle Internet Directory or LDAP, as
shown in the center of the image.
Forms then connects as the proxy user with or without a password, passing in the
real username from the Oracle Internet Directory repository.
Typically, the proxy user is configured with least set of privileges. In the following
procedure, the proxy user has "connect" and "create session" privileges.
The database accepts the create session action for the proxy user and uses the
real username in audits and access control.
The Oracle Internet Directory user cannot connect to the database independently
without configuration of the proxy user account.
The proxy user account isolates the client from direct SQL*Plus connections.
2.
At this point, this proxy user has connect and create session privileges and has no
grants on any of the user schemas.
3.
Create a database user which has one-to-one mapping with a SSO username (that
is, if appuser is the SSO username create database user appuser).
SQL> CREATE USER appuser IDENTIFIED BY appuserPW;
4.
5.
To make it possible to connect through the midtier user you need to alter the
database user:
SQL> ALTER USER appuser GRANT CONNECT THROUGH midtier;
The user appuser can now connect through the midtier account.
Alternatively, you can define the roles that the proxy user can connect to the
database as
SQL> ALTER USER appuser GRANT CONNECT THROUGH midtier WITH ROLE <role_name>;
Repeat Step 3 and 4 for all database users who need to use the proxy user account.
It is also possible to set up the database users in Oracle Internet Directory with the
help of the database functionality called Enterprise User Security. If you choose this
method, the proxy user is the only user defined in the database and the additional
benefit of easy administration is gained. For more information on using Enterprise
User Security, refer to the Oracle Fusion Middleware Administrator's Guide for Oracle
Internet Directory 11g Release 1 (11.1.1).
The application user's password is not presented to the database; only the user name
and the proxy user's user name and password. Forms, with the help of OCI calls,
issues the equivalent of:
SQL> connect midtier[appuser]/midtierPW@databaseTnsName
For example, suppose your application always connects to the database using midtier.
This midtier now informs the database that the actual user is appuser. Without using
proxy users, the SQL command select USER from DUAL would return midtier,
but, using proxy users, this query returns appuser. This essentially tells the database
to trust that the user is authenticated elsewhere and to let the user connect without a
password and to grant the connect role.
Note:
2.
Use the single sign-on user name and password to log in (in this example given in
Section 9.6.2, "Enabling Proxy User Connections", the single sign-on username is
appuser and password is appuserPW).
Postinstallation Configuration
<dbProxyConnKeys>
<dbProxyKey name="frm_config_name"
database="dbname"/>
</dbProxyConnKeys>
In rwservlet.properties, ensure that Proxy mode is enabled.
<enabledbproxy>yes</enabledbproxy>
For more information about Reports configuration files, see Oracle Fusion Middleware
Publishing Reports to the Web with Oracle Reports Services.
Note:
3.
Postinstallation Configuration
Enter the Oracle Internet Directory Host details as described in Table 94, " Oracle
Internet Directory Host Details".
3.
Click Associate.
The Associate/Disassociate OID page reappears.
Table 94
Parameter
Description
OID Host
Select the Oracle Internet Directory Host from the list or select
New Oracle Internet Directory (OID) host to add new host
details.
Username
Password
4.
Generate and apply the access client file as described in Section 9.7.2, "Generating
the Access Client File,".
Postinstallation Configuration
Click Yes.
The Oracle Internet Directory host is disassociated from the Forms application.
3.
Restart the Oracle WebLogic Managed Server and the front-end OHS for the
changes to take effect.
To prevent users from being inadvertently disconnected from active forms
sessions, ensure you choose to restart Oracle WebLogic Managed Server and the
front-end OHS at a convenient time when users are not running any forms
sessions.
From the Associate/Disassociate OID page, select the Forms application. Click
Associate.
Enter the Oracle Internet Directory Host details as described in Table 94, " Oracle
Internet Directory Host Details".
3.
Generate and apply the access client file as described in Section 9.7.2, "Generating
the Access Client File,".
Note:
2.
3.
Restart Oracle WebLogic Managed Server (WLS_FORMS) and the front-end OHS
for the changes to take effect.
To prevent users from being inadvertently disconnected from active forms
sessions, ensure you choose to restart Oracle WebLogic Managed Server and the
Postinstallation Configuration
front-end OHS at a convenient time when users are not running any forms
sessions.
Generating the osso.conf file for the Oracle Access Manager
Perform the following steps to generate the osso.conf file for the OAM Server using
the OAM console:
1.
2.
Navigate to the System Configuration tab. Select Agents and navigate to the
OSSO Agents node. Click Create.
3.
Provide all the details such as the Base URL. Ensure that the Auto Create Policies
check box is checked.
4.
Click Apply.
The osso.conf file is generated for the OAM server. The location of the file is
mentioned in the OAM console.
5.
6.
Follow the steps to generate and copy the osso.conf file as described in
Section 9.7.2, "Generating the Access Client File,".
2.
Postinstallation Configuration
#______#
# 1. Here's what you need to add to protect a resource,
#
e.g. <ApacheServerRoot>/htdocs/private:
#
<Location /private>
require valid-user
AuthType Osso
</Location>
</IfModule>
#
# If you would like to have short hostnames redirected to
# fully qualified hostnames to allow clients that need
# authentication via mod_osso to be able to enter short
# hostnames into their browsers uncomment out the following
# lines
#
#PerlModule Apache::ShortHostnameRedirect
#PerlHeaderParserHandler Apache::ShortHostnameRedirect
3.
${ORACLE_HOME}/ohs/modules/mod_osso.so
4.
5.
Restart the Oracle WebLogic Managed Server (WLS_FORMS) and the front-end
OHS for the changes to take effect.
Create a webgate 11g agent by using either RREG tool or through OAM console.
While creating the webgate agent, you must add the following URL to the
Protected Resource List:
/forms/frmservlet?*oamMode=true*
Postinstallation Configuration
INSTANCE>/webgate/config
For information about registering webgate as an agent by using either OAM console or
RREG tool, see Register the New Webgate Agent in Oracle Fusion Middleware Installation
Guide for Oracle Identity Managment
After installing and configuring webgate access client to work
with Oracle Access Manager 11g, when the user accesses Forms
application for the first time with webgate as the access client, the user
will see a java exception error. As a workaround to this issue, the user
must disable the HTTPOnly parameter. To achieve this, perform the
following steps:
Note:
1.
2.
3.
4.
Click Apply.
Postinstallation Configuration
10
10
also be shared by multiple Forms runtime processes. The JVM controller process is not
a JVM itself, but a container that contains a JVM in a similar way that the Forms
Runtime process contains an in-process JVM. Using JVM pooling is optional.
Administrators can choose to not use JVM pooling and have the JVM contained in the
Forms runtime process.
Java Virtual Machine (JVM) pooling works in conjunction with the Java Importer. It
also works with Forms' ability to call out to Reports. The Java Importer allows
developers at design time to reference Java classes from PL/SQL within the Forms
Builder. At runtime, Forms uses a Java Virtual Machine (JVM) to execute Java code. In
earlier versions of Oracle Forms, each Forms session that used the Java Importer had
its own JVM instance to execute Java code. In this model, each JVM consumes memory
on the server, and if there are many concurrent users, the amount of memory
consumed by the multiple JVM processes becomes significant.
For more information on the Java Importer, see the Oracle Forms Developer online
help.
When you enable JVM pooling, administrators can consolidate the number of running
JVM instances so that the Forms sessions can share JVMs rather than each one having
its own instance. The result is a large reduction in memory consumption, thus freeing
up more resources on your server.
You also need to consider JVM pooling in application design and deployment. For
more information, see Chapter 10.5, "Design-time Considerations".
For example, different Forms applications may want to use different JVMs with
different options or classpaths. You can specify which JVM controller and Forms
application should be used in the named sections of the Forms configuration file
(formsweb.cfg). See Section 10.8.6, "Forms Configuration File Settings" for more
information.
Figure 101 shows an example of what an environment might look like using JVM
pooling. There are two JVM controllers: the first one is using only its in-process JVM,
the second one is using three JVMs.
Figure 101 Multiple JVM Controllers with Child Processes
Application Server
Client
Forms Runtime
Process
Client
Forms Runtime
Process
Client
Forms Runtime
Process
Client
Forms Runtime
Process
Client
Forms Runtime
Process
Client
Forms Runtime
Process
Client
Forms Runtime
Process
JVM Controller
In-process JVM
JVM Controller
In-process JVM
Child JVM
Child JVM
Although it's not shown in Figure 101, each JVM controller has a unique name which
is used in starting and stopping, or for referencing in the Forms configuration file.
Figure 101 is conceptual only in that it shows different Forms applications using
different JVM controllers. However, the Forms runtime process does not communicate
with the JVM controller, but directly with one of the available JVMs. Therefore, the
first two clients in the diagram can only use the in-process JVM; the rest have three
available JVMs to work with.
When the performance of a JVM degrades significantly, it probably means it is
servicing too many requests. In that case, it is possible to have multiple "child" JVMs
for the same JVM controller which get created dynamically as needed.
The JVM parameter maxsessions specifies how many Forms runtime processes are
allowed to attach to a JVM before a new child JVM is created. When a child JVM is
started, it inherits the same parameters as the JVM controller.
If any JVM has maxsessions connections, it does not take any request from new
Forms runtime processes. When a new Forms runtime process first attempts to execute
Java code, it attaches to a JVM that is available, that is, has fewer than maxsessions
connections. The method of choosing the JVM is entirely arbitrary; there is no load
balancing or round-robin algorithm.
If a JVM reaches maxsessions connections, but another JVM has not, no new JVM is
created. If all JVMs have simultaneously reached maxsessions connections, another
child JVM is created, and so on.
Child JVMs are not automatically removed when the load is reduced. So if you want to
remove some child JVMs, the JVM controller must be stopped, which also stops all
child JVMs. Then the JVM controller can be restarted.
The scope of a child JVM is within the context of a JVM controller namespace. For
example, if you have two JVM controllers, ordersJVM and hrJVM, ordersJVM and its
child JVMs do not affect nor are affected by hrJVM or its child JVMs.
You want each application to have its own JVM controller so that it can be started
and stopped independently of others.
Different applications require different settings. For example, you may not want to
mix classpaths or JVM settings between different controllers.
You want to monitor resource usage of the JVM controllers from Fusion
Middleware Control. If different JVM controllers are used by different
applications and/or groups of users, you can determine how resources are being
consumed by your Java Importer code.
You have multiple development, test, or production environments on the same
computer.
You do not want different applications to share static data.
Client
Forms Runtime
Process
JVM
Client
Forms Runtime
Process
JVM
Client
Forms Runtime
Process
JVM
Client
Forms Runtime
Process
JVM
Client
Forms Runtime
Process
JVM
Figure 103 shows the Forms Runtime processes sharing a single JVM process when
JVM pooling is enabled, as shown in the right side of the image.
Design-time Considerations
Client
Forms Runtime
Process
Client
Forms Runtime
Process
Client
Forms Runtime
Process
Client
Forms Runtime
Process
Client
Forms Runtime
Process
JVM
In this example, five clients working in the same application through their own
runtime processes are using a pooled JVM process instead of each Forms Runtime
process spawning its own JVM instance. This can be a significant savings in memory
usage and system resources.
one JVM, and one of the instances of your loan class changes interestRate, all of
the other instances will be affected (which is what you want).
However, if the JVM controller has one or more child JVMs, there may be at least two
JVMs. If interestRate changes in one JVM, the loan instances in the other JVMs won't
see this new value. For more information about managing child JVMs, see Section 10.2,
"About Child Java Virtual Machine Processes". Prior to JVM pooling, if you changed
interestRate it would not affect any other instances because each Oracle Forms
Runtime process had its own in-process JVM.
If you rely on static variables to share information between instances of your class,
ensure that no child JVM is spawned by setting maxsessions to 65535.
2.
3.
Using Fusion Middleware Control, configure the JVM parameters. For more
information, refer to Section 10.8.3, "Managing Parameters".
4.
Start the JVM controller. For more information, refer to Section 10.8.5, "Starting
and Stopping JVM Controllers with Fusion Middleware Control".
Note:
The available commands for the JVM controller (or the dejvm process) are specified in
Table 101. If you are using Enterprise Manager, there are screens that have an
interface for issuing these commands. If you are using the command line, you may not
be able to manage the JVM controller using the Enterprise Manager.
JVM Parameters
Parameter
Description
jvmcontroller
Enter a name for this JVM. This name must contain a legal
Oracle identifier that starts with a letter and contains an
alphanumeric character, '_', '$' or '#' . An Oracle identifier has a
maximum length of 30 bytes.
Hint: You may want to enter a name based on the application
that will be accessing it. You cannot change the name of this JVM
controller later.
maxsessions
Description
classpath
jvmoptions
Enter any valid options to pass to the JVM. This value will
override any set for the default JVM controller. Refer to the
Oracle Java documentation for a list of valid JVM startup
options.
logdir
Leave Log Directory blank to use the log location for the default
JVM controller. If any other directory is set, the log file may not
be accessible through Enterprise Manager.
logging
On, or Off.
Fusion Middleware Control reads the JVM controller configuration file. It works in a
similar way to the Forms configuration file (formsweb.cfg) in that it contains
name-value pairs, has a default section, and has named sections. The parameters
contained in jvmcontrollers.cfg correspond to the start parameters of the JVM
controller.
You cannot change the location or name of the JVM controllers
configuration file.
Note:
When you start a JVM controller, it takes its settings from the configuration file. You
may specify none, some, or all options in this file, both in the default section and in
named sections.
Use the JVM Configuration and JVM Controller pages in Fusion Middleware Control
to manage JVM pooling tasks:
Section 10.8.5, "Starting and Stopping JVM Controllers with Fusion Middleware
Control"
Task
Description
Comment
Create Like
Creates a copy of a
configuration section.
Edit
Delete
Irrevocably deletes a
configuration section and its
contents when you press Delete
in the Confirmation dialog.
Create
Table 103 describes the tasks that you can do to modify the parameters within a
named configuration section:
Table 103
Task
Description
Comment
Revert
Apply
Add
Add a parameter to a
configuration section
based on a mandatory
name and an optional
value and description.
Table 103 (Cont.) Tasks for Working with Parameters in a Named Configuration Section
Task
Description
Comment
Delete
Deletes a parameter.
2.
From the Fusion Middleware Control main page, click the link to the Forms
Services instance that you want to configure.
3.
From the Forms menu list, select the JVM Configuration menu item.
The JVM Configuration page (Figure 104) is displayed.
From the Fusion Middleware Control main page, click the link to the Forms
Services instance that you want to configure.
2.
3.
Click Create.
The Create dialog appears.
Configuring and Managing Java Virtual Machines
10-11
4.
Enter a name and description for your new configuration section and click Create.
The new configuration section is added.
Click Edit.
3.
4.
5.
Click Save.
The Edit Description dialog box is dismissed, and your changes are saved and
displayed.
In the Create Like dialog, from the Section to Duplicate menu, select the name of
an existing configuration section you want to duplicate.
3.
In the New Section Name field, enter a name for the new configuration section.
The name for the new configuration section must be unique.
4.
Click Create.
A new section with exactly the same parameters, parameter values and comments
of the section you are duplicating is created.
Click Delete.
The Confirmation dialog appears.
3.
Click Delete.
The configuration section is deleted.
Oracle Enterprise Manager returns to the JVM Configuration page and displays
the remaining configurations.
Note:
Select the row of the parameter you want to edit. Enter the Value and Comments.
3.
3.
4.
5.
1.
2.
Select the row that contains the parameter you want to delete.
3.
Click Delete.
4.
Parameter
Description
Default Value
Maximum
Sessions per
JVM
65535
Classpath
$ORACLE_
When you specify a classpath, it will override the
system classpath or any classpath specified in your HOME/jdk/bin/java
environment.
JVM Options Enter any valid options to pass to the JVM. Refer to Null
the Oracle Java documentation for a list of valid
JVM startup parameters.
10-13
Description
Default Value
Log
Directory
$ORACLE_
INSTANCE/FRCompone
nt/frcommon/tools/
jvm/log
Logging
On
Comment
Null
10.8.5 Starting and Stopping JVM Controllers with Fusion Middleware Control
Fusion Middleware Control is the recommended tool for managing Oracle Forms
Services, such as starting, stopping, and restarting a JVM controller.
If a JVM controller is down, you can start it. If a JVM controller is already running, you
can restart it without first having to manually stop it. Fusion Middleware Control does
this step for you.
Ensure that users have stopped the forms sessions that are
using the JVM controller before you stop or restart the JVM. Users
may want to restart sessions when the JVM is restarted.
Note:
2.
Select the JVM controller that you want to start. A JVM that is not running is
indicated by a red, down arrow.
3.
Click Start.
When the JVM controller has started, a green, up arrow (Figure 105) is displayed
in the Status.
3.
Click Restart.
4.
Select the running JVM controller that you want to stop, indicated by a green, up
arrow.
3.
Click Stop.
4.
Click the plus symbol next to the JVM controller. The row is expanded to display
additional details (Figure 105) of the JVM controller.
10-15
Table 105
Parameter
Description
jvmcontroller
JVM Configuration
default
jvmcontroller=commonJVM
ordersApp
None
hrApp
jvmcontroller=hrJVM
salesApp
jvmcontroller=
If a user starts an ordersApp application, and the application executes Java code, the
Forms runtime process will route the request to the JVM controller named
commonJVM. Because the [ordersApp] application section does not specify which
JVM controller to use, the Forms runtime process uses the global one. If the JVM
controller is not started, it will be dynamically started. If a second user starts the same
application, it too will attach to commonJVM.
When a user starts an hrApp application and it executes Java code, the Forms runtime
process sends the request to the JVM controller named hrJVM because the [hrApp]
application section overrides the global setting. If the JVM controller is not started, it
will be dynamically started. When a second user starts the same application, it too will
attach to hrJVM.
When a user starts a salesApp application and it executes Java code, the Forms
runtime process starts an in-process JVM in the same way the Java Importer works
without JVM pooling. When a second user starts the same application, the application
will get their own in-process JVM, thus consuming more memory, as shown in
Figure 106:
Figure 106 Multiple JVMs for multiple applications
Application Server
ordersApp Client
Forms Runtime
Process
ordersApp Client
Forms Runtime
Process
hrApp Client
Forms Runtime
Process
hrApp Client
Forms Runtime
Process
salesApp Client
Forms Runtime
Process
In-process JVM
salesApp Client
Forms Runtime
Process
In-process JVM
commonJVM
hrJVM
When an Forms runtime process starts a new connection, along with its process ID
This is useful for knowing which Forms runtime processes are connected to which
JVM controller for diagnostics or administration;
When an Forms runtime process session ends and disconnects from the JVM.
10-17
1.
In the JVM Configuration page, select the the JVM configuration section.
2.
3.
Click Apply.
Add the Log Directory parameter. For more information, see Section 10.8.3,
"Managing Parameters."
If you have duplicated a named configuration section that has Log Directory
parameter defined in it, you can edit the existing parameter as given in the
Section 10.8.3, "Managing Parameters."
3.
Click the Log File link in the Logfile column that is available for that JVM
controller.
The Log File page appears and displays the log information.
3.
Click Delete.
The logfile is deleted and the JVM Controllers page reappears.
If you delete a log file of a JVM that is running, the log file will
be available again when the JVM is restarted. Logging is possible only
when the JVM is restarted.
Note:
Two additional .jar files are required by dejvm for Reports integration. Set the
classpath in jvmcontrollers.cfg to include these jars: zrcclient.jar
($ORACLE_HOME/jlib/zrclient.jar) and rwrun.jar ($ORACLE_
HOME/reports/jlib/rwrun.jar).
Note:
[myjvm]
jvmoptions=-DREPORTS_SERVERMAP=<value> <other-jvmoption-parameters>
10-19
11
11
The ability to control user access to Web content and to protect your site against people
breaking into your system is critical. This chapter describes the architecture and
configuration of security for Oracle Forms Services:
configure Oracle Forms Services to allow users to create the RAD for this application
on the fly if it does not exist. The funtionality to redirect to DAS pages is achieved with
the single sign-on parameter ssoDynamicResourceCreate.
For more information about associating and disassociating Oracle Internet Directory,
see Section 9.7, "Postinstallation Configuration."
11.2.2 Configuring Oracle Forms Options for Oracle Fusion Middleware Security
Framework
For more detailed information about configuring and securing Oracle Forms, see the
following chapters:
3.
When this command is run, it will prompt for the cn=orcladmin password since
the password is not included as a command-line parameter.
To undo these changes, issue the same command (subject to the notes as above), but
using the following contents in the .ldif file:
---aci-revert.ldif--dn: cn=Extended Properties,%s_OracleContextDN%
changetype: modify
delete: orclaci
orclaci: access to attr=(orclUserIDAttribute,orclPasswordAttribute)
DenyGroupOverride by guidattr=(orclOwnerGUID)(read,search,compare,write) by
dnattr=(orclresourceviewers) (read,search, compare, write) by
groupattr=(orclresourceviewers) (read,search, write) by * (none)
add: orclaci
orclaci: access to attr=(orclUserIDAttribute,orclPasswordAttribute) by
guidattr=(orclOwnerGUID)(read,search,compare,write) by
dnattr=(orclresourceviewers) (read,search, compare, write) by
groupattr=(orclresourceviewers) (read,search, write) by * (none)
---aci-revert.ldif---
12
12
event set specifies a group of events that you can trace simply by specifying the event
set name rather than each event number individually when you start the trace.
Use the Trace Configuration selection in the Forms menu of Oracle Enterprise
Manager page to define the events that you want to trace. This page manages all
changes in the ftrace.cfg file for you.
Keep these items in mind when working with Forms Trace:
If you first switch off trace, and then switch it on again with new settings, then
trace is enabled with the new trace group.
In order to trace Forms Processes on Windows, the Process Manager Service needs
to have the check box "Allow service to interact with the desktop" selected. When
this is not set, attempting to switch on Trace will result in the error:
oracle.sysman.emSDK.emd.comm.RemoteOperationException. Check
the User Name and Password.
Backup the ftrace.cfg and default.env files before editing them with Fusion
Middleware Control.
As with most Web applications, it is easy to lose unsaved changes by switching
pages. Be sure to save any changes you make through Fusion Middleware Control
to Forms configuration, trace, or environment files before proceeding to other
pages.
The length of time it takes for changes to be saved is affected by the number of
lines you have changed. For example, an additional fifty lines of comments will
take longer to save than just deleting a single entry.
See Section 12.5, "List of Traceable Events" for a list of events and their corresponding
event numbers.
From the Fusion Middleware Control main page, click the link to the Oracle Forms
Services instance that you want to configure.
3.
3.
Click Add.
The Add dialog is displayed.
4.
5.
The trace group name must not contain spaces. For example, a_b_c is an
acceptable trace group name.
There must be a comma between each event number you specify in the Value.
For example, 65,66,96,194 is an acceptable value.
You can use a range of numbers. For example, 32-46 is an acceptable range.
Click Add.
The new trace group is added.
6.
In the Trace Configuration page, select the group you want to delete.
2.
Click Delete.
The trace group is deleted and the Trace Configuration page reappears.
3.
In the Trace Configuration page, select the group you want to edit.
2.
3.
Parameter
Values
Description
Record
forms
Tracegroup
Name, event
number, or event
range
Tracegroup=<keyword>, where
<keyword> is specified in ftrace.cfg (for
example, Tracegroup=MyEvents).
This lets you log the events in the named
set MyEvents.
Select the row containing the Forms user session for which you want to enable
tracing.
3.
4.
From the Select Trace Group list, select an available trace group and click OK.
The Enable Tracing dialog is dismissed and tracing is now enabled for the selected
Forms user session.
1.
Select the row containing the Forms user session for which you want to disable
tracing.
3.
4.
Click OK.
The Disable Tracing dialog is dismissed and tracing is now stopped for the
selected Forms user session.
1.
2.
3.
From the Select Trace Group list, select the new trace group and click OK.
The Enable Tracing dialog is dismissed. Refresh the page.
1.
From the Forms menu in Fusion Middleware Control, select the User Sessions
menu item.
2.
Select a User Session row and click Trace Log to see the contents of the trace log.
3.
1.
Set the PATH variable to include the path to the directory containing the
Java executable.
2.
Point event: An event that happens in Oracle Forms as the result of a user action
or internal signal for which there is no discernible duration, for example,
displaying an error message on the status line. Each instance of this event type
creates one entry in the log file.
Duration event: An event with a start and end, for example, a trigger. Each
instance of this event type creates a pair of entries in the log file (a start and end
event).
Built-in event: An event associated with a built-in. Each instance of this event type
provides a greater quantity of information about the event (for example, argument
values).
Table 122
Event
Number
Definition
Type
Abnormal Error
point
point
point
4-31
NA
32
Startup
point
33
Menu
point
34
Key
point
35
Click
point
36
Double-click
point
37
Value
point
38
Scroll
point
39
LOV Selection
point
40
not used
not used
41
Window Close
point
42
Window Activate
point
43
Window Deactivate
point
44
Window Resize
point
45
Tab Page
point
46
Timer
point
47
DB Event
point
48
NA
49-63
NA
64
duration
65
duration
66
duration
67
duration
68
Opening a Editor
point
69
Canvas
point
70
Alert
duration
71
GetFile
point
72-95
NA
96
builtin
Definition
Type
97
duration
98
duration
99
duration
100
duration
101
Execute Query
duration
102-127
NA
128
Client Connect
point
129
Client Handshake
point
130
Heartbeat
point
131
HTTP Reconnect
point
132
duration
133
duration
134
duration
135
136
duration
137
duration
138-159
NA
160-168
NA
169-191
NA
192*
Environment Dump
N/A
193*
State Delta
N/A
194*
Builtin Arguments
N/A
195*
UserExit Arguments
N/A
196*
N/A
256 and
higher
User defined
NA
1024 and
higher
NA
* These event numbers do not have a TYPE because they are not really events, but
rather details for events. For example, the State Delta is something you can choose to
see - it is triggered by a real action or event.
Action
Details
Number
Menu Selection
33
Key
34
Click
35
DoubleClick
36
Value
37
Scroll
38
LOV Selection
39
Alert
AlertName, Selection
40
Tab
Form
45
DB Event
Queue Name
47
Window Activate,
Deactivate,Close, Resize
41,42,43,44
Event Name
Details
Number
Form
64
Program Unit
65
Trigger
TriggerName, FormName,
BlockName, ItemName, FormID
66
LOV
67
Editor
68
Canvas
69
Detailed Events
Event Name
Details
Number
Builtin
BuiltinName, FormId
96
User Exit
UserExitName, FormId
97
MenuCreate
MenuName, FormID
99
PLSQL
PLSQLSTmt, FormID
100
Details
Number
ExecQuery
Block Name
101
Event Name
Details
Number
Client Connect
Timestamp
128
Client Handshake
Timestamp
129
Heartbeat
Timestamp
130
HTTP Reconnect
NA
131
Socket
132
HTTP
133
HTTPS
134
DB Processing
FormId, Statement
135
DB Logon
FormId
136
DB Logoff
FormId
137
Event Name
Details
Number
Environment Dump
192
State Delta
193
Builtin Args
194
Userexit args
195
Procedure Args
196
Recording of all Oracle Forms sessions, including session start and end times, and
the user's IP address and host name (session-level logging)
Monitoring of Oracle Forms-related network traffic and performance
(session-performance and request-performance-level logging)
Generating debugging information for site configuration issues (debug-level
logging)
Logging handled through Fusion Middleware Control
Handling of log size restriction by the mechanism rather than by OS level scripts
as was done previously
String appended
to serverURL
client parameter
Description of logging
(none)
/session
/sessionperf
/perf
/debug
12-11
From the Fusion Middleware Control, select the managed server (for example
WLS_FORMS).
2.
From the WebLogic Server menu, select Logs, then Log Configuration.
3.
In the Logger Name field, expand Root Logger. Expand each of the following:
oracle, oracle.forms. The Logger name defined in serverURL as described in
Section 12.6.1.1, "Specifying Logging" is displayed, for example
(oracle.forms.servlet.debug).
4.
Choose the Log level as required from the list in the Oracle Diagnostic Logging
Level field. Refer to Table 129 for the mapping of the internal Forms log level to
the Java levels.
Table 129
DEBUG
TRACE:32
REQUEST_PERFORMANCE
TRACE:16
SESSION_PERFORMANCE
TRACE:1
SESSION_START_END
NOTIFICATION:16
NOTIFICATION
NOTIFICATION:1
WARNING
WARNING:1
ERROR
ERROR:1
INTERNAL_ERROR
INTERNAL_ERROR
This configuration modifies the logging.xml file for the managed server.
12.6.1.3 Specifying Full Diagnostics in the URL that Invokes the Forms Servlet
To start full diagnostics, specify the parameter serverURL in formsweb.cfg as
follows:
serverURL=/forms/lservlet/debug
Start the Oracle Forms application using a URL as follows:
http://example.com/forms/frmservlet/debug?
3.
Click the corresponding Logs link for the target deployed application.
The Log Messages page is displayed.
(none)
/session
/sessionperf
/perf
/debug
12.6.5.1 (none)
[2008-09-10T06:58:47.106-07:00] [WLS_FORMS] [NOTIFICATION] [FRM-93100]
[oracle.forms.servlet] [tid: 11] [ecid: 0000HlCYKnmD4i8nvgy0V118lx4u000000,0]
[APP: formsapp] [arg:
configFileName:
<configfilename>
testMode:
false] Initializing the Forms Servlet. Initialization
parameters are:[[
configFileName:
<configfilename>
testMode:
false
]]
[2008-09-10T06:58:53.517-07:00] [WLS_FORMS] [NOTIFICATION] [FRM-93180]
[oracle.forms.servlet] [tid: 11] [ecid: 0000HlCZfTDD4i8nvgy0V118lx4u000003,0]
[APP: formsapp] [arg:
envFile:
null
WorkingDirectory:
null
executable:
null
WaitTime:
500
MaxBlockTime:
1000]
Initializing ListenerServlet. Initialization parameters
12-13
are:[[
envFile:
WorkingDirectory:
executable:
WaitTime:
MaxBlockTime:
]]
null
null
null
500
1000
12.6.5.2 /session
[2008-09-11T07:35:01.507-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93251]
[oracle.forms.servlet.session] [tid: 14] [ecid:
0000HlHpYGDD4i8nvgy0V118mFuv00000V,0] [SRC_CLASS:
oracle.forms.servlet.RunformSession] [APP: formsapp] [SRC_METHOD: <init>] [FORMS
SESSION_ID: ..8] [arg: supadhya-pc1] [arg: 10.177.254.46] Runtime session started
for client <pc1> (IP address <ip address>).
2008-09-11T07:35:01.798-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93548]
[oracle.forms.servlet.session] [tid: 14] [ecid:
0000HlHpYGDD4i8nvgy0V118mFuv00000V,0] [SRC_CLASS:
oracle.forms.servlet.RunformProcess] [APP: formsapp] [SRC_METHOD: connect] [FORMS
SESSION_ID: ..8] [arg: 7765] Runtime process ID is 7765.
2008-09-11T07:38:11.372-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93252]
[oracle.forms.servlet.session] [tid: 14] [ecid:
0000HlHpYGDD4i8nvgy0V118mFuv00000V,0] [SRC_CLASS:
oracle.forms.servlet.RunformSession] [APP: formsapp] [SRC_METHOD: stop] [FORMS
SESSION_ID: ..8] Forms session ended.
12.6.5.3 /sessionperf
[2008-09-11T07:40:25.923-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93251]
[oracle.forms.servlet.sessionperf] [tid: 17] [ecid:
0000HlHqlS9D4i8nvgy0V118mFuv00000Y,0] [SRC_CLASS:
oracle.forms.servlet.RunformSession] [APP: formsapp] [SRC_METHOD: <init>] [FORMS
SESSION_ID: ..9] [arg: <pc1>] [arg: 10.177.254.46] Runtime session started
for client <pc1> (IP address 10.177.254.46).
2008-09-11T07:40:26.223-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93548]
[oracle.forms.servlet.sessionperf] [tid: 17] [ecid:
0000HlHqlS9D4i8nvgy0V118mFuv00000Y,0] [SRC_CLASS:
oracle.forms.servlet.RunformProcess] [APP: formsapp] [SRC_METHOD: connect] [FORMS
SESSION_ID: ..9] [arg: 8023] Runtime process ID is 8023.
2008-09-11T07:40:43.593-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93252]
[oracle.forms.servlet.sessionperf] [tid: 17] [ecid:
0000HlHqlS9D4i8nvgy0V118mFuv00000Y,0] [SRC_CLASS:
oracle.forms.servlet.RunformSession] [APP: formsapp] [SRC_METHOD: stop] [FORMS
SESSION_ID: ..9] Forms session ended.
[2008-09-11T07:40:43.594-07:00] [WLS_FORMS] [TRACE] [FRM-93710]
[oracle.forms.servlet.sessionperf] [tid: 17] [ecid:
0000HlHqlS9D4i8nvgy0V118mFuv00000Y,0] [SRC_CLASS:
oracle.forms.servlet.RunformSession] [APP: formsapp] [SRC_METHOD: stop] [FORMS
SESSION_ID: ..9] [arg: 1.557] [arg: 6] [arg: 0] [arg: 1.000] [arg: 0.259] [arg:
5106] [arg: 352] Total duration of network exchanges is 1.557.[[
Total number of network exchanges is 6 (0 long ones over 1.000 sec).
Average time for one network exchange (excluding long ones) is 0.259.
Total number of bytes sent is 5106.
Total number of bytes received is 352.
]]
12.6.5.4 /perf
[2008-09-11T07:42:46.560-07:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93251]
12.6.5.5 /debug
[2009-02-11T14:39:03.016+00:00] [WLS_FORMS] [NOTIFICATION:16] [FRM-93250]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_lhDcD4i8nvgy0V119Xz350000HZ,0] [APP: formsapp#11.1.2] Forms session started.
[2009-02-11T14:39:03.017+00:00] [WLS_FORMS] [TRACE:32] [FRM-94200]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_lhDcD4i8nvgy0V119Xz350000HZ,0] [SRC_CLASS: oracle.forms.servlet.FormsServlet]
[APP: formsapp#11.1.2] [SRC_METHOD: doRequest] [FORMS_SESSION_ID: ..43] [arg:
GET] [arg:
cmd:
frmservlet
config:
null
requestCharset:
null
QueryString:
null
Content-Type:
null
Accept-Charset:
null
responseCharset:
null] FormsServlet receiving GET request. Details:[[
cmd:
frmservlet
config:
null
requestCharset:
null
QueryString:
null
Content-Type:
null
Accept-Charset:
null
responseCharset:
null
]]
[2009-02-11T14:39:03.017+00:00] [WLS_FORMS] [TRACE:32] [FRM-94281]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_lhDcD4i8nvgy0V119Xz350000HZ,0] [SRC_CLASS: oracle.forms.servlet.ListenerServlet]
[APP: formsapp#11.1.2] [SRC_METHOD: printSessionDetails] [FORMS_SESSION_ID: ..43]
No current servlet session ID.
[2009-02-11T14:39:03.017+00:00] [WLS_FORMS] [TRACE:32] [FRM-94170]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_lhDcD4i8nvgy0V119Xz350000HZ,0] [SRC_CLASS: oracle.forms.servlet.FormsServlet]
[APP: formsapp#11.1.2] [SRC_METHOD: findFile] [FORMS_SESSION_ID: ..43] [arg:
basejpi.htm] [arg: <config folder>] File basejpi.htm is missing from the
12-15
.
.
.
.
[2009-02-11T14:39:21.716+00:00] [WLS_FORMS] [TRACE:32] [FRM-94201]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_llloD4i8nvgy0V119Xz350000Hf,0] [SRC_CLASS: oracle.forms.servlet.ListenerServlet]
[APP: formsapp#11.1.2] [SRC_METHOD: doGet] [FORMS_SESSION_ID: ..43] [arg: GET]
[arg:
cmd:
getinfo
QueryString:
ifcmd=getinfo&ifhost=supadhya-pc1&ifip=10.177.254.239]
ListenerServlet receiving GET request. Details:[[
cmd:
getinfo
QueryString:
ifcmd=getinfo&ifhost=supadhya-pc1&ifip=10.177.254.239
]]
[2009-02-11T14:39:21.717+00:00] [WLS_FORMS] [TRACE:32] [FRM-94282]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_llloD4i8nvgy0V119Xz350000Hf,0] [SRC_CLASS: oracle.forms.servlet.ListenerServlet]
[APP: formsapp#11.1.2] [SRC_METHOD: printSessionDetails] [FORMS_SESSION_ID: ..43]
[arg:
HyLhJSjZ85F5GWbZLDgwp1MY02FK5tC6yVDP1LylbCvgmv9y3CfK!126690176!1234363161461]
Existing servlet session, ID =
HyLhJSjZ85F5GWbZLDgwp1MY02FK5tC6yVDP1LylbCvgmv9y3CfK!126690176!1234363161461
[2009-02-11T14:39:21.717+00:00] [WLS_FORMS] [TRACE:32] [FRM-94286]
[oracle.forms.servlet] [tid: [ACTIVE].ExecuteThread: '2' for queue:
'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000Hx
_llloD4i8nvgy0V119Xz350000Hf,0] [SRC_CLASS: oracle.forms.servlet.ListenerServlet]
[APP: formsapp#11.1.2] [SRC_METHOD: printSessionDetails] [FORMS_SESSION_ID: ..43]
Session ID is not from cookie.
12-17
13
13
For upgrading from Oracle Forms 10g and prior releases, you can use the Upgrade
Assistant. Refer to the following documents for more information.
Table 131
Upgrade Item
6iserver/conf/
Oracle HTTP
Server
configuration
file:
6iserver.co
nf
(upgrades
to
forms.conf)
Forms
application
modules
(fmb/fmx
files)
Section 13.2.6, "Upgrading the Forms Listener Servlet Architecture to Oracle Forms
Services" on page 13-9
Keep the Oracle6i Forms Services installation available until applications are
successfully deployed and tested.
Back up and secure all files, then upgrade the source files.
Replace Run_Product calls to integrated Reports with Run_Report_Object
calls to Oracle Reports (or use the PL/SQL conversion utility, Forms Migration
Assistant in Oracle Forms).
Install Oracle Fusion Middleware and configure the formsweb.cfg file with the
information used by your applications.
Copy the environment files used by the applications to the same relative directory.
Copy the upgraded Oracle Forms application module files to the computer on
which Oracle WebLogic Server is installed, if it is not the same computer.
After starting Oracle WebLogic Server, access the Forms Services Listener Servlet
test page with this URL (default port 8888):
http://<hostname>:<port>/forms/frmservlet?form=test.fmx
Verify that any application settings are added to the formsweb.cfg file and that
the environment variable Forms_Path contains the directory of the application
modules.
2.
Optionally, use the Forms Migration Assistant to upgrade the Forms Application
Modules (.fmb files), Forms menu modules (.mmb files), and the Library modules
(.pll files).
3.
For more information, see Oracle Forms Upgrading Oracle Forms 6i to Oracle Forms
11g at:
http://www.oracle.com/technetwork/developer-tools/forms/document
ation/index.html.
13.2.3 Upgrading Common Gateway Interface (CGI) to the Oracle Forms Servlet
This section provides instructions to upgrade Forms CGI to the Forms servlet
deployment. Follow these steps if you are using the Oracle 6i Forms Services Common
Gateway Interface to dynamically render the Forms Applet start HTML file for
applications.
CGI deployment for Forms applications was introduced in Oracle Forms Services
Release 6i to enable the Forms Applet Start HTML file to render dynamically. Forms
CGI uses the formsweb.cfg configuration file and an HTML template to create the
start HTML file for an application. The CGI interface is configured by an entry in the
Forms HTTP configuration file 6iserver.conf (it is referenced by an Include
directive in the Oracle HTTP Server oracle_apache.conf file), which contains a
ScriptAlias directive identifying dev60cgi for the directory structure containing
the ifcgi60.exe file.
The Forms servlet renders the HTML in the same manner as the CGI, but also provides
an automatic browser type detection. The Forms servlet is configured when you install
Oracle Forms Services, and is named frmservlet.
To access the Forms servlet, request the URL:
http://<hostname>:<port>/forms/frmservlet
This URL is similar to the URL used with the CGI Interface in Oracle 6i Forms
Services. To call an application configured as myapp in the custom configuration
section of the formsweb.cfg file, request the URL:
http://<hostname>:<port>/forms/frmservlet?config=myapp
The Forms servlet is automatically configured during installation. The installer creates
a virtual path /forms/ pointing to the Oracle Forms Services configuration,
formsapp and formsweb.
Follow these steps to upgrade an Oracle 6i Forms Services Release 6i CGI environment
to an Oracle Forms Services servlet environment:
1.
Note:
2.
Note:
3.
If you changed the Oracle 6i Forms HTML template files, then make the same
changes to the Oracle Forms Services HTML template files.
You must make these changes in basejpi.htm rather than
basejini.htm because the servlet supports the Oracle Java plug-in.
Note:
13.2.4 Upgrading Static HTML Start Files to Generic Application HTML Start Files
Each application deployed to Oracle Forms Services has a custom application
definition, configured in the formsweb.cfg configuration file. It automatically
inherits the general system settings, such as the names and locations of the base HTML
template files.
The name of the custom application definition becomes part of the Forms application
URL. The following custom settings define two different applications:
[MyHR_app]
serverURL=/forms/lservlet
Form = hr_main.fmx
lookAndFeel=oracle
Otherparams=myParam1=12
Userid=scott/tiger@orcl
archive=frmall.jar, custom.jar
ServerURL=/forms/lservlet
Form = book.fmx
lookAndFeel=oracle
Otherparams=
Userid=
Edit the default.env file, adding the location of the Oracle Forms Services
application modules to the Forms_Path.
2.
Edit the formsweb.cfg file, appending a custom application section for each
static HTML application that you want to replace.
3.
Name each custom application section, using a name that contains no spaces and
is enclosed in square brackets, for example: [booking_app], [MyHR_app].
4.
2.
3.
4.
5.
Navigate to $DOMAIN_
HOME/deploymentplans/formsapp/11.1.2/plan.xml.
6.
<name>vd-/scratch/t_work/Oracle/Middleware/as_1/forms</name>
<value>/scratch/t_work/Oracle/Middleware/as_1/forms</value>
</variable>
<variable>
<name>vd-/scratch/t_work/Oracle/Middleware/user_
projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_11.1.2/config/forms</name>
<value>/scratch/t_work/Oracle/Middleware/user_
projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_11.1.2/config/forms</value>
</variable>
<variable>
<name>FormsServlet_InitParam_testMode</name>
<value>true</value>
</variable>
<variable>
<name>lServlet_InitParam_envFile</name>
<value>complete path to default.env</value>
</variable>
</variable-definition>
<module-override>
<module-name>formsapp.ear</module-name>
<module-type>ear</module-type>
<module-descriptor external="false">
<root-element>weblogic-application</root-element>
<uri>META-INF/weblogic-application.xml</uri>
</module-descriptor>
<module-descriptor external="false">
<root-element>application</root-element>
<uri>META-INF/application.xml</uri>
</module-descriptor>
<module-descriptor external="true">
<root-element>wldf-resource</root-element>
<uri>META-INF/weblogic-diagnostics.xml</uri>
</module-descriptor>
</module-override>
<module-override>
<module-name>formsweb.war</module-name>
<module-type>war</module-type>
<module-descriptor external="false">
<root-element>weblogic-web-app</root-element>
<uri>WEB-INF/weblogic.xml</uri>
<variable-assignment>
<name>vd-/scratch/t_work/Oracle/Middleware/as_1/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="java/*"]/local
-path</xpath>
</variable-assignment>
<variable-assignment>
<name>vd-/scratch/t_work/Oracle/Middleware/as_1/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="webutil/*"]/lo
cal-path</xpath>
</variable-assignment>
<variable-assignment>
<name>vd-/scratch/t_work/Oracle/Middleware/user_
projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_11.1.2/config/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="registry/*"]/l
ocal-path</xpath>
</variable-assignment>
</module-descriptor>
<module-descriptor external="false">
<root-element>web-app</root-element>
<uri>WEB-INF/web.xml</uri>
<variable-assignment>
<name>lServlet_InitParam_envFile</name>
<xpath>/web-app/servlet/[servlet-name="lservlet"]/init-param/[param-name="envFi
le"]/param-value</xpath>
</variable-assignment>
</module-descriptor>
</module-override>
</deployment-plan>
Copy the Forms application files to a new directory and upgrade them to Oracle
Forms Services modules as described in Section 13.2.2, "Upgrading Oracle Forms
Services Application Modules". on page 13-3.
2.
3.
4.
If you changed the Oracle 6i Forms Services HTML template files, then make the
same changes to the Oracle Forms Services HTML template files.
If you need to change the underlying HTML files, you should
make a copy of the provided template files before editing them. Save
the edited HTML files under a different name, and leave the default
templates provided with the installation unchanged. This prevents
overwriting of your customized HTML template files when patch sets
are applied to the application.
Note:
13.2.6 Upgrading the Forms Listener Servlet Architecture to Oracle Forms Services
In Oracle9iAS Forms Services Release 6i, the Listener Servlet, if not aliased, is accessed
by the oracle.forms.servlet.ListenerServlet. The Listener Servlet
configuration exists in the jserv.properties file and the zone.properties file.
In Oracle Forms Services, the Forms Listener servlet is the same except for the servlet
names, which are frmservlet and lservlet, and the servlet container. The
configuration is performed during installation. The Listener Servlet configuration in
Oracle WebLogic Managed Server is stored in $DOMAIN_HOME/servers/WLS_
FORMS/tmp/_WL_user/formsapp_11.1.2/<random_
string>/war/WEB-INF/web.xml. Some initialization parameters, like the
envFile parameter, need no longer be configured with the servlet engine, because
they are moved to the formsweb.cfg file.
The Forms Listener servlet is automatically configured during the Oracle WebLogic
Server installation. The installer creates a virtual path /forms/ pointing to the Oracle
Forms Services configuration, formsapp and formsweb.
To access the Forms Listener servlet test form, request the following URL:
Upgrading to Oracle Forms Services 11g 13-9
http://<hostname>:<port>/forms/frmservlet?form=test.fmx
Ability to access this page means that the Forms Listener servlet is configured and
ready to use. frmservlet is the access name configured for the Forms servlet during
installation. The name of the Listener Servlet is lservlet.
Follow these steps to upgrade the Listener Servlet architecture to Oracle Forms
Services:
1.
Copy the Forms application files to a new directory and upgrade them to Oracle
Forms Services modules.
2.
3.
4.
If you changed the Forms Services Release 6i HTML template files, then make the
same changes to the Oracle Forms Services HTML template files.
If you need to change the underlying HTML files, you should
make a copy of the provided template files before editing them. Save
the edited HTML files under a different name, and leave the default
templates provided with the installation unchanged. This prevents
overwriting of your customized HTML template files when patch sets
are applied to the application.
Note:
With the Forms 6i listener, the Metrics Server (a separate process) performs load
balancing.
With the Forms 6i servlet, load balancing is configured with the JServ servlet
engine, using round robin load balancing among JServ engines.
In Oracle Forms Services, load balancing is managed by Oracle WebLogic
Managed Server process. It binds Web requests to the servlet container processing
the Forms servlet and the Forms Listener servlet.
Verify that the jar command succeeds. If it does not, then you need to ensure that
there is a JDK installed on your system with a correct PATH environment variable
entry (pointing to the JDK_HOME/bin directory).
2.
Navigate to the directory containing the application images and issue the
command:
jar -cvf <application>_images.jar *.<extension>
where:
4.
5.
See Section 4.7, "Deploying Fonts, Icons, and Images Used by Forms Services" for more
information on deploying custom icon files with Oracle Forms Services.
1.
2.
Add the location of the applications Reports modules to use the Reports_Path
of Oracle Reports.
3.
14
14
Tuning the connection between Oracle Forms Services and the Oracle Database Server
is beyond the scope of this chapter.
Section 14.1.6, "Maximizing the Efficiency of Packets Sent Over the Network"
Events
User Sessions
Forms Trace
2.
From the Enterprise Manager Fusion Middleware Control main page, select the
link to the Forms Services instance that you want to monitor.
The Forms Home page for the Forms Services instance displays the following:
Performance Summary
Servlet Logs
Session Details
Web Configuration
Environment Configuration
Trace Configuration
User Sessions
JVM Configuration
JVM Controllers
In the Performance Summary page, you can add charts for other Forms
metrics to the page dynamically by using the Show Metric Palette. You can
also overlay metrics to compare them. For example, drag and drop Private
Memory consumed by two JVM Controllers into one chart to compare them.
For more information, see the Oracle Fusion Middleware Performance Guide.
Task
See Section
Parameter Name
Data type
Description
Default Value
prestartRuntimes
boolean
Runtime pre
starting or
pooling is
enabled only if
true
false
prestartInit
integer
Number of the
1
runtime processes
that should be
spawned initially
prestartTimeout
integer
0 (When set to
Time in minutes
after which all the zero the timer
never starts)
prestarted
processes of this
pool
(configuration
section) will be
stopped. A
runtime process
is removed from
the prestart pool
once client
connection is
made and thus
will not be
stopped.
prestartMin
integer
Minimum
0
number of
runtime processes
to exist in the
pool.
prestartIncrement integer
The number of
0
runtime processes
to be created
when the number
of prestarted
runtime processes
is less than
minRuntimes.
Note that prestartMin defines the minimum number of pre-started runtimes that
must exist at any time while runtime pooling is still active for a specific application.
The minimum value must be less than or equal to what's defined for the
prestartInit parameter. The prestartMin parameter can be modified at any time
and does not require the application server to be restarted. The new entries will be
picked up when a client requests a connection to a pre-started runtime process and the
prestarted runtime processes have not timed out. Once they have timed out, an
application uses default behavior and a minimum threshold is not maintained.
Each configuration section can specify values for these parameter. If the
prestartRuntimes = true entry is found, but there is no associating prestart
parameter, then default values are used.
In a load balanced system that has multiple instances of Oracle WebLogic Managed
Server, the various values provided for the above parameters are on a per JVM basis,
and not the total for the application.
2.
3.
4.
5.
In Prestart Init, enter a numerical value for the number of runtime processes that
must be spawned initially. Ensure that the value is greater than or equal to 1.
6.
In Prestart Timeout, enter a numerical value for the time in minutes after which
the unused prestart process will be stopped. If this value is set to zero, the timer
never starts and thus the processes do not time out.
7.
From the Schedule Type options, select the appropriate schedule type.
Following are the three types of schedules that you can set:
8.
One Time(Delay based): Select this option if you want to schedule a single
occurence prestart based on the initial delay. Initial delay is a time based
parameter that specifies the number of hours or minutes after which the
prestart will begin. If you select this option, you must enter the initial delay
time (in hours or minutes) in the Initial delay field that appears below the
schedule type.
One Time(Date based): Select this option if you want to schedule a single
occurence prestart based on a date. If you select this option, you must enter
the date and time in the Start Date field that appears below the Schedule type.
Repeating: Select this option if you want to schedule a repeat prestart. From
the Frequency list, you can select one of the following options:
Repeat date and interval: If you select this option, you must specify the
start date and interval after which you want the prestart to repeat.
Repeat initial delay and interval: If you select this option, you must
specify the initial delay and interval after which you want the prestart to
repeat.
Click Submit.
You can click Show Jobs to view all the prestart schedules that are created.
2.
From the Scheduled Jobs region, select the row of the scheduled prestart that you
want to delete.
You can select multiple rows to delete at the same time.
3.
Click Delete.
The selected prestart schedule is deleted.
2.
3.
4.
Click Ok.
This will create an xml file that contains the attributes of all prestart schedules.
Depending on your browser settings, you will either be prompted to choose a
location to save the file in, or the file will be saved at a default location on you
local machine.
5.
To import the schedules (that you have exported in the above steps) to some other
managed server, go to the Schedule Prestart page of that server, and click Import.
A dialog box appears.
6.
Enter the name of the file that you created while exporting the schedules. You can
also click Browse on the dialog box and upload the xml file from you local
machine.
7.
Click Ok.
The imported schedules will now be listed in the Scheduled Jobs region.
Note: If there is an error in any schedule entry in the xml file, the
server skips that particular schedule and imports the next schedule
entry. If there are any expired schedules in the xml file, they are
ignored and not imported.
Boilerplate Objects/Images
Data Segments
The first user to load a given FMX file will use the full memory requirement for that
form. However, subsequent users will have a greatly reduced memory requirement,
which is dependent only on the extent of local data. This method of mapping shared
components reduces the average memory required per user for a given application.
When sets of similar messages (collections of name-value pairs) are sent, the
second and subsequent messages include only the differences from the previous
message. This results in significant reductions in network traffic. This process is
called message diff-ing.
When the same string is to be repeated on the client display (for example, when
displaying multiple rows of data with the same company name), Oracle Forms
Services sends the string only once, and then references the string in subsequent
messages. Passing strings by reference increases bandwidth efficiency.
Data types are transmitted in the lowest number of bytes required for their value.
and font. When sending a VGS tree for an object to the Java client, the only attributes
that are sent are those that differ from the defaults for the given object type.
Images are transmitted and stored as compressed JPEG images. This reduces both
network overhead and client memory requirements.
Minimizing resources includes minimizing the memory overhead of the client and
server processes. Optimal use of the network requires that bandwidth be kept to a
minimum and that the number of packets used to communicate between the client and
Oracle Forms Services be minimized in order to contain the latency effects of the
network.
14.2.1 Location of the Oracle Forms Services with Respect to the Data Server
The Forms Java client is only responsible to display the GUI objects. All of the Oracle
Forms logic runs in Oracle Forms Services, on the middle tier. This includes inserting
or updating the data to the database, querying data from the database, executing
stored procedures on the database, and so on. Therefore, it is important to have a
high-speed connection (high bandwidth and not low latency) between the application
server and the database server.
All of this interaction takes place without any communication to the Forms Java client.
Only when there is a change on the screen is there any traffic between the client and
Forms Services. This allows Oracle Forms applications to run across slower networks
(high latency networks), such as with modems or satellites.
The configuration in Figure 142, displays how Forms Services and the database
server are co-located in a data center.
Figure 142 Co-Locating the OracleAS Forms Services and Database Server
Data Center
High Speed
LAN
Client Connection
(internet, intranet,
modem, satellite, etc.)
Forms Services
Database
Desktop Client
2.
Load all initial Java client classes, and authenticate security of classes.
3.
4.
Initialize form:
a.
b.
c.
d.
5.
6.
An application developer has little influence on the time it takes to launch the JVM.
However, the Java deployment model and the structure of the Oracle Forms Developer
Java client allow the developer to decide which Java classes to load and how. This, in
turn, minimizes the load time required for Java classes.
The Java client requires a core set of classes for basic functionality (such as opening a
window) and additional classes for specific display objects (such as LOV items). These
classes must initially reside on the server, but the following techniques can be used to
improve the time it takes to load these classes into the client's JVM:
Using Caching
Accept default values for properties, and change only those attributes needed
for the object.
Reduce the use of boilerplate text. As a developer, you should use the PROMPT
item property rather than boilerplate text wherever applicable. Forms Developer
6.0 and higher includes the Associate Prompt feature, which allows boilerplate text
to be re-designated as the prompt for a given item.
Reduce the use of boilerplate items (such as arcs, circles, and polygons). All
boilerplate items for a given Form are loaded at Form initialization. Boilerplate
items take time to load and use resources on the client whether they are displayed
or not. Common boilerplate items, namely rectangles and lines, are optimized.
Therefore, restricting the application to these basic boilerplate items reduces
network bandwidth and client resources while improving startup times.
Keep navigation to a minimum. An Event Bundle is sent each time a navigation
event finishes, whether the navigation extends over two objects or many more.
Design Forms that do not require the user to navigate through fields when default
values are being accepted. A Form should encourage the user to quickly exit once
the Form is complete, which causes all additional navigation events to fire as one
Event Bundle.
Reduce the time to draw the initial screen. Once the Java client has loaded the
required classes, it must load and initialize all of the objects to be displayed before
it can display the initial screen. By keeping the number of items to a minimum, the
initial screen is populated and displayed to the user more promptly. Techniques
that reduce the time to draw the initial screen include:
Providing a login screen for the application with a restricted set of objects
(such as a title, small logo, username, and password).
On the Form's initial display, hiding elements not immediately required. Use
the canvas properties:
RAISE ON ENTRY = YES (Canvas only)
VISIBLE = NO
Pay attention to TAB canvases that consist of several sheets where only one
will ever be displayed. For responsive switching between tabs, all items for all
sheets on the canvas are loaded, including those that are hidden behind the
initial tab. Consequently, the time taken to load and initialize a TAB canvas is
related to all objects on the canvas and not just to those initially visible.
Tip: When using Tab canvases, use stacked canvases and display the
right canvas in the when-tab-page-changed trigger. Remember to set
the properties RAISE ON ENTRY = YES and VISIBLE = NO for
all the canvases not displayed in the first screen.
menu at once is the most efficient method of updating the menu on the client.)
However, a given application may make only minimal changes to a menu. In this
case, it may be more efficient to send each change as it happens. You can achieve
this using the statement:
Set_Application_Property (MENU_BUFFERING, 'false');
Menu buffering applies only to the menu properties of LABEL, ICON, VISIBLE,
and CHECKED. An ENABLE/DISABLE event is always sent and does not entail
the retransmission of an entire menu.
Examine timers and replace with JavaBeans. When a timer fires, an asynchronous
event is generated. There may not be other events in the queue to bundle with this
event. Although a timer is only a few bytes in size, a timer firing every second
generates 60 network trips a minute and almost 30,000 packets in a typical
working day. Many timers are used to provide clocks or animation. Replace these
components with self-contained JavaBeans that achieve the same effect without
requiring the intervention of Forms Services and the network.
Consider localizing the validation of input items. It is common practice to
process input to an item using a When-Validate-Item trigger. The trigger itself is
processed on the Forms Services. You should consider using pluggable Java
components to replace the default functionality of standard client items, such as
text boxes. Then, validation of items, such as date or max/min values, are
contained within the item. This technique opens up opportunities for more
complex, application-specific validation like automatic formatting of input, such
as telephone numbers with the format (XXX) XXX-XXXX.
Reduce the application to many smaller forms, rather than one large form. By
providing a fine-grained application, the user's navigation defines which objects
are loaded and initialized from the Forms Services. With large Forms, the danger is
that the application is delayed while objects are initialized, many of which may
never be referenced. When chaining Forms together, consider using the built-ins
OPEN_FORM and NEW_FORM:
With OPEN_FORM, the calling Form is left open on the client and the server,
so that the additional Form on both the client and the server consumes more
memory. However, if the Form is already in use by another user, then the
increase in server memory is limited to just the data segments. When the user
returns to the initial Form, it already resides in local memory and requires no
additional network traffic to redisplay.
With NEW_FORM, the calling Form is closed on the client and the server, and
all object properties are destroyed. Consequently, it consumes less memory on
the server and client. Returning to the initial Form requires that it be
downloaded again to the client, which requires network resources and startup
time delays. Use OPEN_FORM to display the next Form in an application
unless it is unlikely that the initial form will be called again (such as a login
form).
Avoid unnecessary graphics and images. Wherever possible, reduce the number
of image items and background images displayed in your applications. Each time
an image is displayed to application users, the image must be downloaded from
the application server to the user's Web browser. To display a company logo with
your Web application, include the image in the HTML file that downloads at
application startup. Do this instead of including it as a background image in the
application. As a background image, it must be retrieved from the database or file
system and downloaded repeatedly to users' computers.
Figure 143 assumes a setup where a single Web Cache instance is load balancing two
Application Server tiers. This can be described as following:
1.
2.
Oracle HTTP Server instance and Oracle WebLogic Managed Server on Host B
running Oracle Forms application D
3.
Oracle HTTP Server instance and Oracle WebLogic Managed Server on Host C
running Oracle Forms application D
There can be more Oracle HTTP Server/Oracle WebLogic
Managed Server, but only two instance pairs are described here for
purpose of simplification. The Oracle HTTP Server/Oracle WebLogic
Managed Server is not configured for clustering/active failover
because Oracle Forms applications cannot take advantage of Oracle
WebLogic Server active failover.
Note:
Prerequisites
1.
<variable-assignment>
<name>vd-/scratch/t_work/Oracle/Middleware/as_1/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="webutil/*"]/lo
cal-path</xpath>
</variable-assignment>
<variable-assignment>
<name>vd-/scratch/t_work/Oracle/Middleware/user_
projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_11.1.1/config/forms</name>
<xpath>/weblogic-web-app/virtual-directory-mapping/[url-pattern="registry/*"]/l
ocal-path</xpath>
</variable-assignment>
<variable-assignment>
<name>Frmapp_url-rewriting-enabled_variable</name>
<xpath>/weblogic-web-app/session-descriptor/url-rewriting-enabled
</xpath>
</variable-assignment>
<variable-assignment>
<name>Frmapp_cookies-enabled_variable</name>
<xpath>/weblogic-web-app/session-descriptor/cookies-enabled</xpath>
</variable-assignment>
<variable-assignment>
<name>Frmapp_cookie-http-only_variable</name>
<xpath>/weblogic-web-app/session-descriptor/cookie-http-only</xpath>
</variable-assignment>
</module-descriptor>
<module-descriptor external="false">
<root-element>web-app</root-element>
<uri>WEB-INF/web.xml</uri>
</module-descriptor>
</module-override>
</deployment-plan>
2.
Note:
3.
The Application Server hosts (Host B and Host C) must have the same FMW patch
set version.
4.
Ensure that the Forms configuration files are synchronized across the Application
Server hosts. This means that you must create matching entries in the Forms
configuration files (formsweb.cfg, default.env, Registry.dat, and so on)
across all the Application Server hosts.
Set up Web Cache running on Host A as described in Configuring Oracle Web Cache
as a Software Load Balancer in Oracle Fusion Middleware Administrator's Guide for
Oracle Web Cache.
2.
Add the Application servers, Host B and Host C as Origin Servers as described in
Specify Origin Server Settings in Oracle Fusion Middleware Administrator's Guide for
Oracle Web Cache.
Ensure to specify the URL as /forms/lservlet in the Ping URL field.
3.
Create ordered mappings of sites to origin servers, Host B and Host C as described
in Map Site Definitions to Origin Servers in Oracle Fusion Middleware Administrator's
Guide for Oracle Web Cache.
4.
Using a browser, point it to the Web Cache host and access Oracle Forms
application D. Ensure that the application works as expected. Keep the browser
window open.
2.
Use the OHS access logs to identify the Oracle HTTP Server/Oracle WebLogic
Managed Server that handled the requests. For example, assume this is Host B and
shut down the Oracle HTTP Server/WebLogic Managed Server on that host. Now
only the Oracle HTTP Server/WebLogic Managed Server running on Host C will
be accessible.
3.
Using the same browser that is running the Oracle Forms client, access Oracle
Forms application D again. The request will fail, and the Forms client will lose its
session. Note that Oracle Forms session state is not replicated among Oracle
WebLogic Managed Server.
4.
Next, clear the browser cookies and open a browser window. Point it to the Web
Cache host and access Oracle Forms application D. Web Cache will direct the
requests to the remaining Oracle HTTP Server/WebLogic Managed Server
running on Host C. Ensure that the application works as expected.
5.
6.
In the Oracle Enterprise Manager navigator panel, select Web Cache and navigate
to the Home page.
7.
In the Web Cache Home page, ensure that Host B listed under Origin Servers is
checked.
15
Forms Diagnostics Agent
15
Forms Diagnostics Agent or Forms Metrics Agent enables the user to analyze various
performance-related information about Forms applications running in your
environment. This agent accesses the metrics data (available in DMS) at regular time
intervals and populates the database tables. This process allows the user to access the
data collected as historical data.
Forms Diagnostics agent works only with Oracle Forms 11gR2. The deployment of this
application is optional. The agent application provides an interactive interface where
the user can specify the frequency of data collection and also control the starting and
stopping of data collection. This can be achieved by performing the following tasks:
Note: Before creating a user in the database, ensure that the user
name provided by you is new and does not already exist. This is
because the .sql script (used to create the user in the database)
overwrites the user (user name provided during the creation) with the
new user.
1.
2.
3.
1.
Log in to the database as the user that you created in the above steps:
sqlplus <user>/<password>@<DB>
2.
3.
2.
In the left navigation panel, select Services and navigate to Data Sources.
Click Lock and Edit in the Change Center window to make changes.
3.
4.
oracle/forms/agentDS
Database Type
Choose type of database that you used to create user and schema in the previous
steps.
Click Next. The Create a new JDBC data sources page appears.
5.
Select Database driver from the list of drivers available for the type of database
you have selected. Click Next.
6.
7.
In the next page, click Test Configurations at the top left corner to check if the
database has been configured successfully.
Click Next.
8.
9.
2.
3.
4.
5.
7.
Select Admin Server as a target to deploy Forms Diagnostics Agent. Click Next.
8.
Leave the optional settings at their default values and click Finish.
Click Activate Changes in the Change Center window to save changes. The Forms
Diagnostics agent has been successfully deployed to the Weblogic Admin Server.
To start the application, select formsagentapp from the list of deployed
applications and Click Start.
2.
3.
Enter a value for the Frequency of Data Collection. This parameter is the time
difference between two consecutive data collections.
The default value is 10 minutes. The minimum value should be one minute.
4.
Click Start.
You will see a message indicating that the Forms Diagnostics Agent is running.
Click Stop whenever you want to stop the collection of metrics by the agent.
Serial
Number
Column Name
Sample Value
Description
01
AGENT_ID
Column Name
Sample Value
Description
02
03
ADMIN_PORT
Table 152
7001
Serial
Number
Column Name
Sample Value
Description
01
AGENT_STATUS
Running
02
REAL_TIME
2009.07.23 at
17:11:41
03
SEQUENCE_ID
205
04
FREQUENCY
40
05
AGENT_ID
Table 153
Serial
Number
Column Name
Sample Value
Description
01
FRM_DB_ID
8769
02
DB_NAME
v11g
Column Name
Sample Value
Description
03
TNS_ENTRY
(DESCRIPTION =
(ADDRESS_
LIST =
(ADDRESS =
(PROTOCOL =
TCP)(HOST =
sample.host.com)(P
ORT = 1521)))
(CONNECT_
DATA =
(SERVICE_
NAME = v11g)))
04
Table 154
USER_NAME
scott
Serial
Number
Column Name
Sample Value
Description
01
FRM_DB_LOGIN_ID
345
FRM_DB_LOGIN_ID is the
primary key in the FRM_DB_
LOGIN database table.
ID assigned to each row in the
table
02
FRM_RUNTIME_ID
107
FRM_RUNTIME_ID is a
foreign key in this database
table. It refers to FRM_
RUNTIME_ID in the FRM_
RUNTIME database table
03
FRM_DB_ID
1025
04
REAL_TIME
2009.07.23 at
17:11:41
Table 155
Serial
Number
Column Name
Sample Value
Description
01
FRM_RUNTIME_ID
107
FRM_RUNTIME_ID is a
primary key in the FRM_
RUNTIME database table.
ID that identifies the Forms
process
Column Name
Sample Value
Description
02
WLS_APP_ID
5005
03
FRM_USER_ID
1310
04
CONFIG_VALUE
05
CONNECT_TIME
06
DISCONNECT_TIME
2009.07.23 at
18:15:43
07
STARTING_FORM_
NAME
emp
08
PROCESS_ID
8020
09
FRM_STATUS
Running / Exited
Status of frmweb
10
FRM_CPU_TIME_
ON_EXIT
256
11
FRM_PRIVATE_
MEMORY_ON_EXIT
6385
12
FRM_EXIT_CODE
Table 156
Serial
Number
Column Name
Sample Value
Description
01
FRM_TRACE_ID
2679
FRM_TRACE_ID is the
primary key in this database
table.
ID assigned to the rows in the
FRM_TRACE database table
02
TRACE_FILE
forms_1055.trc
03
TRACING
mytrace
Table 157
Serial
Number
Column Name
01
FRM_TRACE_USE_ID 1906
Sample Value
Description
FRM_TRACE_USE_ID is the
primary key in this database
table.
ID assigned to the rows in the
database table
02
FRM_RUNTIME_ID
107
FRM_RUNTIME_ID is a
foreign key in this database
table. It refers to FRM_
RUNTIME_ID in the FRM_
RUNTIME database table
ID that identifies the Forms
process
03
FRM_TRACE_ID
2679
FRM_TRACE_ID is a foreign
key in this database table. It
refers to FRM_TRACE_ID in
the FRM_TRACE database
table
ID assigned to the row in the
database table
04
REAL_TIME
2009.07.23 at
17:11:41
Table 158
Serial
Number
Column Name
Sample Value
Description
01
FRM_USER_ID
1310
02
CLIENT_IP
255.255.255.255
03
SSO_USERID
Table 159
Serial
Number
Column Name
Sample Value
Description
01
FRM_RUNTIME_ID
107
FRM_RUNTIME_ID is a
foreign key in this database
table. It refers to FRM_
RUNTIME_ID in the FRM_
RUNTIME database table
ID that identifies the Forms
process
02
REAL_TIME
2009.07.23 at
17:11:41
03
SEQUENCE_ID
205
04
FRM_BYTES_SENT
400
05
FRM_BYTES_SENT_
DELTA
37
06
FRM_BYTES_
RECEIVED
200
07
FRM_BYTES_
RECEIVED_DELTA
23
08
FRM_NETWORK_
ROUND_TRIPS
30
09
FRM_NETWORK_
ROUND_TRIPS_
DELTA
10
FRM_CPU_TIME
230
11
FRM_CPU_TIME_
DELTA
47
12
FRM_PRIVATE_
MEMORY
7998
13
ITERATION
50
Table 1510
Serial
Number
Column Name
Sample Value
Description
01
WLS_APP_ID
5005
02
SERVER_TYPE
MANAGED
03
SERVER_NAME
WLS_FORMS
04
DEPLOYED_APPLN_ formsapp
NAME
05
06
INSTANCE_HOME_
NAME
asinst_1
07
CLUSTER_NAME
cluster_xyz
08
AGENT_ID
A
A
This chapter provides information to help you resolve problems that might occur
when you run an application over the Web using Oracle Forms. It contains an outline
of common causes for errors, the method you can use to verify your installation, and
the tools and techniques provided to diagnose problems.
This chapter is also a subset of the whitepaper Oracle Forms Diagnostic Techniques that
can be found at
http://www.oracle.com/technetwork/developer-tools/forms/overview
/index.html.
1.
Start the Admin server for the WebLogic Server domain by selecting Start |
Program Files |Oracle WebLogic Server | User Projects | Domain | Start
Admin Server for WLS Domain, if it is not already started.
2.
Start the node manager by selecting Start | Program Files |Oracle WebLogic
| WebLogic Server 11gR1 | Tools | Node Manager, if it is not already
started.
2.
3.
4.
Alternatively, you can run the Web Form Tester by selecting Start | Program Files
| <Oracle_Home> | Forms Services | Run a Form on the Web from the
Windows Start menu for Oracle Fusion Middleware.
5.
Enter the Web port and click the Run Form button. See Section A.1.2, "Find Port
Information" to learn how to find out the Web port.
6.
If the installation of Oracle Fusion Middleware is correct, you will see a success
message in the Web browser. Also, it can be tested from a client computer whether
the basic Forms setup in Oracle Fusion Middleware on the middle tier is installed
correctly or not by the installer. You can run the test form from any client
computer by running it from the browser with the URL
http://example.com:NNNN/forms/frmservlet?form=test.fmx.
If the Forms web runtime terminates unexpectedly, then it writes a stack trace to the
directory $ORACLE_INSTANCE/FormsComponent/forms/trace. The filename will
have the format <forms_runtime_process>_dump_<process id>.The dump file
contains a stack trace of the running process, and shows the last successful operation
performed by Forms. This core file can be used to assemble a stack trace with symbol
names using GNU Debugger, dbx or similar debugging tool on the machine where the
dump occurred.
The information in the stack can be used to identify a known issue. It is not 100%
reliable, but an identical stack trace is a good indicator of a matching problem.
Even if it is not the same, there may be a workaround or patch for an existing bug
that can be tested.
If the problem is not a known bug, then the stack may provide valuable
information to assist development efforts to pinpoint the cause.
the Forms runtime process reads all the .sym files that correspond to the forms
executable files loaded into memory. It then uses the information in the .sym files to
lookup the symbol name.
Note:
A typical method used to spot memory leaks is to repeat a series of steps, and observe
the memory in use by the application - if the memory usage continues to rise with each
iteration, then the assumption is often that the program has a memory leak.
However, some complex applications may choose to retain control of memory it has
previously allocated so that it can reuse it at a later point - memory allocation can be
an expensive operation, and if the program expects that it will need more memory
later it may be more efficient to keep the unused memory available for reuse.
Get the form into an initial base state, and record the memory usage,
2.
3.
Return to the initial base state, and record the memory usage.
Troubleshooting Tips
class files bundled into one compressed file. Typically, the size of the Jar file will be
much smaller than the combined size of the class files it contains.
When the JVM first references a class, it checks the local computer to see if any of the
previously cached Jar files contain this class. If the class does exist in one of the
pre-cached Jar files, then the JVM checks to see if there is a newer version of this Jar
file on the application server. If there is a newer Jar file available then the new copy of
the Jar file is downloaded to the client cache. If the cached Jar file is up to date, then
the class file is loaded from the cached Jar file rather than from over the network.
Caching is important because if the application Jar files do not change, then after the
application has run once, and all the Jar files required have been cached on the client,
then subsequent invocations of the application will always load the classes from the
local cached copies. This can lead to significant performance improvements in the
startup time for the application. If new classes are needed to run a specific part of the
application, these will be downloaded as required.
Chop the problem into manageable sections - this helps eliminate whole areas
from investigation. As you investigate an area and satisfy yourself that the
problem does not lie there, you can proceed to the next section. An approach to
diagnosing a problem that is often successful is to reduce it to its essential parts.
This will be important if you need to discuss the problem with Oracle Support
Services to obtain a solution.
meant to happen. If you can reproduce the problem then you have already started the
first step to resolve it.
Make sure you understand the tools you are trying to use
If you decide to use a diagnostic tool, make sure you know how to use it, and how to
interpret the data it produces. Time spent in investigating the usage of a tool before the
problem happens is time well invested. Make time to learn the tool as well.
B
B
This section describes the use of Oracles Java Plug-in as a Web browser plug-in.
Oracle Java Plug-in enables users to run Oracle Forms applications using Mozilla
Firefox or Internet Explorer. It provides the ability to specify the use of a specific Java
Virtual Machine (JVM) on the client. For more information, see the white paper "Using
Suns Java Plug-in" at
http://www.oracle.com/technetwork/developer-tools/forms/overview
/index.html.
The browser must re-issue the request for the applet definition, and
The response to that request produces an applet definition that differs from the
applet definition that was returned by the original request.
1.
The base HTML file must define the serverURL attribute to the value of the
serverURL variable (serverURL="%serverURL%"), in the COMMENT node
that has the ID forms_plugin_info.
2.
The base HTML file must define the serverURL applet parameter, and its value
must be the value of the appletServerURL variable. (Prior to Forms 11g, it was
set to the value of the serverURL variable). This can be accomplished by
including
<PARAM NAME="serverURL" VALUE="%appletServerURL%">
and
serverURL="%appletServerURL%"
in the OBJECT definition and the EMBED comment in user-written base HTML
files. Note that the appletServerURL variable should not be set in a
configuration file. (If it is, the value is ignored.) Instead, Forms computes its value
automatically: if legacy_lifecycle=true (in the configuration file or in the
initial URL), then the appletServerURL variable evaluates to "?", which causes
Forms to look for the serverURL attribute of the COMMENT node (see above).
Otherwise, the appletServerURL evaluates to the value of the serverURL
variable.
3.
The base HTML file must define the legacy_lifecycle applet parameter, and
the value must not be hard-coded: it must match the value of the legacy_
lifecycle variable. That is because in Forms 11g, the variable also affects the
value of the appletServerURL variable (as explained above). This can be
accomplished by including
<PARAM NAME="legacy_lifecycle" VALUE="%legacy_lifecycle%">
and
legacy_lifecycle="%legacy_lifecycle%"
in the OBJECT definition and the EMBED comment in user-written base HTML
files.
C
C
File Name
formsweb.cfg
$DOMAIN_
HOME/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_
11.1.2/config
default.env
$DOMAIN_
HOME/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_
11.1.2/config
C-1
Default formsweb.cfg
base.htm
$ORACLE_
INSTANCE/config/FormsComponent/forms/
server
basejpi.htm
$ORACLE_
INSTANCE/config/FormsComponent/forms/
server
webutilbase.htm
$ORACLE_
INSTANCE/config/FormsComponent/forms/
server
webutiljpi.htm
$ORACLE_
INSTANCE/config/FormsComponent/forms/
server
ftrace.cfg
$ORACLE_
INSTANCE/config/FormsComponent/forms/
server
web.xml
$DOMAIN_HOME/servers/WLS_FORMS/tmp/_
WL_user/formsapp_11.1.2/<random_
string>/war/WEB-INF
weblogic.xml
$DOMAIN_HOME/servers/WLS_FORMS/tmp/_
WL_user/formsapp_11.1.2/<random_
string>/war/WEB-INF
forms.conf
$ORACLE_INSTANCE/config/OHS/<OHS
INSTANCE NAME>/moduleconf
jvmcontroller.cfg
$ORACLE_
INSTANCE/config/FRComponent/frcommon/
tools/jvm/
webutil.cfg
$ORACLE_
INSTANCE/config/FormsComponent/forms/
server/
Registry.dat
$DOMAIN_
HOME/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_
11.1.2/config/forms/registry/oracle/f
orms/registry
Default formsweb.cfg
C-3
Default formsweb.cfg
Default formsweb.cfg
ssoCancelUrl=
# Single Sign-On parameter: indicates whether the url is protected in which
# case mod_osso will be given control for authentication or continue in
# the FormsServlet if not. It is false by default. Set it to true in an
# application-specific section to enable Single Sign-On for that application.
ssoMode=false
# Single Sign-On parameter: indicates whether session should operate in proxy
# user support or not. Specify ssoProxyConnect=yes to enable for particular
application.
ssoProxyConnect=no
# The parameter allow_debug determines whether debugging is permitted.
# Administrators should set allow_debug to "true" if servlet
# debugging is required, or to provide access to the Forms Trace Xlate utility.
# Otherwise these activities will not be allowed (for security reasons).
allow_debug=false
# Parameter which determines whether new Forms sessions are allowed.
# This is also read by the Forms EM Overview page to show the
# current Forms status.
allowNewConnections=true
# EndUserMonitoring
# EndUserMonitoringEnabled parameter
# Indicates whether EUM/Chronos integration is enabled
EndUserMonitoringEnabled=false
# EndUserMonitoringURL
# indicates where to record EUM/Chronos data
EndUserMonitoringURL=
# Config for javascript integration
applet_name=
enableJavascriptEvent=true
# Config variable that will indicate if heartbeat will
# be blocked when a javascript call is a blocking call.
# The default value if false, i.e heart beat will not be
# blocked for any javascript calls.
JavaScriptBlocksHeartBeat=false
# Example Named Configuration Section
# Example 1: configuration to run forms in a separate browser window with
# "generic" look and feel (include "config=sepwin" in the URL)
# You may define your own specific, named configurations (sets of parameters)
# by adding special sections as illustrated in the following examples.
# Note that you need only specify the parameters you want to change. The
# default values (defined above) will be used for all other parameters.
# Use of a specific configuration can be requested by including the text
# "config=<your_config_name>" in the query string of the URL used to run
# a form. For example, to use the sepwin configuration, your could issue
# a URL like "http://myhost.example.com/forms/frmservlet?config=sepwin".
[sepwin]
separateFrame=True
lookandfeel=Generic
# Example Named Configuration Section
# Example 2: configuration running the Forms ListenerServlet in debug mode
# (debug messages will be written to the servlet engine's log file).
[debug]
serverURL=/forms/lservlet/debug
# Sample configuration for deployingWebUtil. Note that WebUtil is
# only installed with the Forms Builder and is also available for download
# from OTN.
[webutil]
WebUtilArchive=frmwebutil.jar,jacob.jar
WebUtilLogging=off
WebUtilLoggingDetail=normal
C-5
WebUtilErrorMode=Alert
WebUtilDispatchMonitorInterval=5
WebUtilTrustInternal=true
WebUtilMaxTransferSize=16384
baseHTML=webutilbase.htm
baseHTMLjpi=webutiljpi.htm
archive=frmall.jar
lookAndFeel=oracle
#
# Search path for Forms applications (.fmx files, PL/SQL libraries)
# If you need to include more than one directory, they should be semi-colon
# separated (e.g. c:\test\dir1;c:\test\dir2)
#
FORMS_PATH=D:\Oracle2\Middleware\as_2\forms;D:\Oracle2\Middleware\asinst
_2\FormsComponent\forms
# webutil config file path
WEBUTIL_CONFIG=D:\Oracle2\Middleware\asinst
_2\config\FormsComponent\forms\server\webutil.cfg
# Disable/remove this variable if end-users need access to the query-where
# functionality which potentially allows them to enter arbitrary SQL
# statements when in enter-query mode.
FORMS_RESTRICT_ENTER_QUERY=TRUE
#
# The PATH setting is required in order to pick up the JVM (jvm.dll and
# java.exe). Since PATH is being set, it needs to also include
# D:\Oracle2\Middleware\as_2\bin so relevant files are correctly found.
#
PATH=D:\Oracle2\Middleware\as_2\bin;D:\Oracle2\Middleware\as
2\jdk\jre\bin\client;D:\Oracle2\Middleware\as_2\jdk\bin
#
#
#
#
#
#
#
#
#
#
#
#
#
# System settings
# --------------# You should not normally need to modify these settings
#
FORMS=D:\Oracle2\Middleware\as_2\forms
#
# Java class path
#
This is required for the Forms debugger
#
You can append your own Java code here)
# frmsrv.jar and ldapjclnt11.jar are required for
# the password expiry feature to work(#2213140).
#
CLASSPATH=D:\Oracle2\Middleware\as
_2\forms\j2ee\frmsrv.jar;D:\Oracle2\Middleware\as
_2\jlib\ldapjclnt11.jar;D:\Oracle2\Middleware\as
_2\jlib\debugger.jar;D:\Oracle2\Middleware\as
_2\jlib\ewt3.jar;D:\Oracle2\Middleware\as
_2\jlib\share.jar;D:\Oracle2\Middleware\as
_2\jlib\utj.jar;D:\Oracle2\Middleware\as
_2\jlib\zrclient.jar;D:\Oracle2\Middleware\as
_2\reports\jlib\rwrun.jar;D:\Oracle2\Middleware\as
_2\forms\java\frmwebutil.jar;D:\Oracle2\Middleware\as_2/jlib/start
_dejvm.jar;D:\Oracle2\Middleware\as_2\opmn\lib\optic.jar
C-7
#
ORACLE_HOME=/as_1
ORACLE_INSTANCE=/asinst_1
#
# TNS Entry to locate the database
#
TNS_ADMIN=/asinst_1/config
#
# Search path for Forms applications (.fmx files, PL/SQL libraries)
#
FORMS_PATH=/as_1/forms:/asinst_1/FormsComponent/forms
#
# WebUtil config file path. WebUtil is available for download from OTN.
#
WEBUTIL_CONFIG=/asinst_1/config/FormsComponent/forms/server/webutil.cfg
# Disable/remove this variable if end-users need access to the query-where
# functionality which potentially allows them to enter arbitrary SQL
# statements when in enter-query mode.
FORMS_RESTRICT_ENTER_QUERY=TRUE
# Java class path
#
This is required for the Forms debugger
#
You can append your own Java code here)
# frmsrv.jar and ldapjclnt11.jar are required for
# the password expiry feature to work(#2213140).
#
CLASSPATH=/as
_1/forms/j2ee/frmsrv.jar:/as
_1/jlib/ldapjclnt11.jar:/as
_1/jlib/debugger.jar:/as
_1/jlib/ewt3.jar:/as_1/jlib/share.jar:/as
_1/jlib/utj.jar:/as
_1/jlib/zrclient.jar:/as
_1/reports/jlib/rwrun.jar:/as
_1/forms/java/frmwebutil.jar:/as_1/jlib/start
_dejvm.jar:/as_1/opmn/lib/optic.jar
#
# The PATH setting is not required for frmweb if the Forms executables are
# in <ORACLE_HOME>/bin. JDK/bin is also required for dejvm to be
# auto-started by frmweb.
#
PATH=/scratch/cls0223/bea/as_1/bin:/scratch/cls0223/bea/as_1/jdk/bin
#
# Settings for Reports
# ------------------------------# NOTE: This setting is only needed if Reports applications
# are called from Forms applications
# However, because of bug 2336698 where a report is started from
# a forms debugger session with an already running JVM, then
# the report's class path should also be included in the forms
# class path.
# We no longer need to set REPORTS_CLASSPATH as forms will
# always start the JVM before calling reports.
#
#
#
#
#
#
#
#
#
#
#
#
#
# System settings
# --------------# You should not normally need to modify these settings
#
#
# Path for shared library objects
#
This is highly platform (if not machine) specific ! At install time
#
<percent>LD_LIBRARY_PATH<percent> should be replaced with the
#
actual value of the LD_LIBRARY_PATH environment variable (at install
#
time). That should ensure we have the paths for such necessities as
#
the motif and X11 libraries.
# Explanations:
#
- Reports needs the path for libjava.so
#
(.../jre/lib/sparc)
#
- Forms needs two paths to the jre, for libjvm.so and libhpi.so
#
- In JDK 1.4.1 the location of libjvm.so is lib/sparc (there is no
#
classic directory) so we do not include the .../classic directory
#
below. There are other versions of libjvm.so (in directories server,
#
client and hotspot) but we will use the version in lib/sparc for now.
#
LD_LIBRARY_PATH=/bea/as_1/lib:/bea/as
_1/jdk/jre/lib/i386:/bea/as
_1/jdk/jre/lib/i386/server:/bea/as_1/jdk/jre/lib/i386/native
_threads
#
# Setting to take care of signal-chaining facility offered by JVM 1.5
# Without this Forms/Reports integration could have issues on Unix/Linux
#
LD_PRELOAD=/as_1/jdk/jre/lib/i386/libjsig.so
C-9
When a user first starts an Oracle Forms application (by clicking a link to the
applications URL), a baseHTML file is read by Forms servlet.
Any variables (%variablename%) in the baseHTML file are replaced with the
appropriate parameter values specified in the formsweb.cfg file described in
Section 4.2, "Configuring Forms Services", and from query parameters in the URL
request (if any). Query parameter values override the values in the formsweb.cfg
file.
Then, the baseHTML file is downloaded to the users Web browser.
The following baseHTML starter files are available in the $ORACLE_
INSTANCE/config/FormsComponent/forms/server/ directory:
basejpi.htm: This is the baseHTML file for Java Plug-in. The Forms servlet uses
this default file if the client browser is on Windows.
base.htm: This is a baseHTML file containing the APPLET tags required to run the
Forms applet in the AppletViewer, or in any Web browser certified by Oracle with
a native JVM that is certified with Oracle Forms. See Default base.htm File for an
example.
3.
Add or modify any text that is visible to the user (for example, text contained
within <TITLE> and <BODY> tags).
4.
Modify the parameters as needed. It is recommended that you use variables in the
baseHTML file, and specify the actual values in the formsweb.cfg file, as
described in formsweb.cfg.
The baseHTML tags can also be set in the specific named configuration section,
overwriting the system default value. This is recommended if an individual
custom baseHTML template needs to be used. However, if a custom template is
used for all applications, then it is recommended you change the default
configuration section in the formsweb.cfg file.
5.
VALUE="%logo%">
Then, specify the actual parameter values in the formsweb.cfg file. All variables are
replaced with the appropriate parameter values at runtime.
You can use a variable value anywhere in the baseHTML file. Variables are
specified as a name enclosed in a special delimiter (the default delimiter is %). For
example, you could have the following line in your HTML file:
ARCHIVE="%Archive%"
You must then assign a value to %Archive% either in the formsweb.cfg file or in
the URL query string.
All variables must receive values at runtime. If a variable does not receive a value,
Forms Services cannot build a proper HTML file to pass back to the user's Web
browser, resulting in an error.
To streamline performance, use only one Web server as a source for Jar file
downloads. This will prevent multiple downloads of the same files from different
servers.
C-11
NAME="%applet_name%" MAYSCRIPT>
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/forms/frmjscript/forms_base_ie.js">
</SCRIPT>
<PARAM NAME="serverURL" VALUE="%appletServerURL%">
<PARAM NAME="networkRetries" VALUE="%networkRetries%">
<PARAM NAME="serverArgs"
VALUE="%escapeParams% module=%form% userid=%userid% debug=%debug% host=%host%
port=%port% %otherParams%">
<PARAM NAME="separateFrame" VALUE="%separateFrame%">
<PARAM NAME="splashScreen" VALUE="%splashScreen%">
<PARAM NAME="background" VALUE="%background%">
<PARAM NAME="lookAndFeel" VALUE="%lookAndFeel%">
<PARAM NAME="colorScheme" VALUE="%colorScheme%">
<PARAM NAME="serverApp" VALUE="%serverApp%">
<PARAM NAME="logo" VALUE="%logo%">
<PARAM NAME="imageBase" VALUE="%imageBase%">
<PARAM NAME="formsMessageListener" VALUE="%formsMessageListener%">
<PARAM NAME="recordFileName" VALUE="%recordFileName%">
<PARAM NAME="EndUserMonitoringEnabled" VALUE="%EndUserMonitoringEnabled%">
<PARAM NAME="EndUserMonitoringURL" VALUE="%EndUserMonitoringURL%">
<PARAM NAME="heartbeat" VALUE="%heartbeat%">
<PARAM NAME="MaxEventWait" VALUE="%MaxEventWait%">
<PARAM NAME="allowAlertClipboard" VALUE="%allowAlertClipboard%">
<PARAM NAME="disableValidateClipboard" VALUE="%disableValidateClipboard%">
<PARAM NAME="enableJavascriptEvent" VALUE="%enableJavascriptEvent%">
<PARAM NAME="digitSubstitution" VALUE="%digitSubstitution%">
<PARAM NAME="legacy_lifecycle" VALUE="%legacy_lifecycle%">
<PARAM NAME="JavaScriptBlocksHeartBeat" VALUE="%JavaScriptBlocksHeartBeat%">
<PARAM NAME="highContrast" VALUE="%highContrast%">
</Applet>
<!--Forms applet deinition (end) -->
&HTMLafterForm%
</BODY>
</HTML>
<!--(formsweb.cfg) -->
<!-- to point to your new file instead of this one. -->
<HEAD>
<TITLE>%pageTitle%</TITLE>
</HEAD>
<BODY %HTMLbodyAttrs%>
%HTMLbeforeForm%
<COMMENT id="forms_plugin_info"
serverURL="%serverURL%"
plug_ver="%jpi_classid%"
appheight="%Height%"
appwidth="%Width%"
appcodebase="%jpi_codebase%"
appname="%applet_name%">
</COMMENT>
<!-- Forms applet definition (start) -->
<NOSCRIPT>
<OBJECT classid="%jpi_classid%"
codebase="%jpi_codebase%"
WIDTH="%Width%"
HEIGHT="%Height%"
HSPACE="0"
VSPACE="0"
ID="%applet_name%">
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/forms/frmjscript/forms_ie.js">
</SCRIPT>
<PARAM NAME="TYPE"
VALUE="%jpi_mimetype%">
<PARAM NAME="CODEBASE"
VALUE="%codebase%">
<PARAM NAME="CODE"
VALUE="oracle.forms.engine.Main" >
<PARAM NAME="ARCHIVE"
VALUE="%archive%" >
<PARAM NAME="serverURL" VALUE="%appletServerURL%">
<PARAM NAME="networkRetries" VALUE="%networkRetries%">
<PARAM NAME="serverArgs"
VALUE="%escapeParams% module=%form% userid=%userid% debug=%debug%
host=%host% port=%port% %otherParams%">
<PARAM NAME="separateFrame" VALUE="%separateFrame%">
<PARAM NAME="splashScreen" VALUE="%splashScreen%">
<PARAM NAME="background" VALUE="%background%">
<PARAM NAME="lookAndFeel" VALUE="%lookAndFeel%">
<PARAM NAME="colorScheme" VALUE="%colorScheme%">
<PARAM NAME="serverApp" VALUE="%serverApp%">
<PARAM NAME="logo" VALUE="%logo%">
<PARAM NAME="imageBase" VALUE="%imageBase%">
<PARAM NAME="formsMessageListener" VALUE="%formsMessageListener%">
<PARAM NAME="recordFileName" VALUE="%recordFileName%">
<PARAM NAME="EndUserMonitoringEnabled" VALUE="%EndUserMonitoringEnabled%">
<PARAM NAME="EndUserMonitoringURL" VALUE="%EndUserMonitoringURL%">
<PARAM NAME="heartBeat" VALUE="%heartBeat%">
<PARAM NAME="MaxEventWait" VALUE="%MaxEventWait%">
<PARAM NAME="allowAlertClipboard" VALUE="%allowAlertClipboard%">
<PARAM NAME="disableValidateClipboard" VALUE="%disableValidateClipboard%">
<PARAM NAME="enableJavascriptEvent" VALUE="%enableJavascriptEvent%">
<PARAM NAME="MAYSCRIPT" VALUE="%enableJavascriptEvent%">
<PARAM NAME="digitSubstitution" VALUE="%digitSubstitution%">
<PARAM NAME="legacy_lifecycle" VALUE="%legacy_lifecycle%">
<PARAM NAME="JavaScriptBlocksHeartBeat" VALUE="%JavaScriptBlocksHeartBeat%">
<PARAM NAME="highContrast" VALUE="%highContrast%">
<COMMENT>
<EMBED SRC="" PLUGINSPAGE="%jpi_download_page%"
C-13
web.xml
TYPE="%jpi_mimetype%"
java_codebase="%codebase%"
java_code="oracle.forms.engine.Main"
java_archive="%archive%"
WIDTH="%Width%"
HEIGHT="%Height%"
HSPACE="0
VSPACE="0"
NAME="%applet_name%"
serverURL="%appletServerURL%"
networkRetries="%networkRetries%"
serverArgs="%escapeParams% module=%form% userid=%userid% debug=%debug%
host=%host% port=%port% %otherparams%"
separateFrame="%separateFrame%"
splashScreen="%splashScreen%"
background="%background%"
lookAndFeel="%lookAndFeel%"
colorScheme="%colorScheme%"
serverApp="%serverApp%"
logo="%logo%"
imageBase="%imageBase%"
recordFileName="%recordFileName%"
EndUserMonitoringEnabled="%EndUserMonitoringEnabled%"
EndUserMonitoringURL="%EndUserMonitoringURL%"
heartBeat="%heartBeat%"
MaxEventWait="%MaxEventWait%"
disableValidateClipboard="%disableValidateClipboard%"
allowAlertClipboard="%allowAlertClipboard%"
enableJavascriptEvent="%enableJavascriptEvent%"
MAYSCRIPT="%enableJavascriptEvent%"
digitSubstitution="%digitSubstitution%"
legacy_lifecycle="%legacy_lifecycle%"
JavaScriptBlocksHeartBeat="%JavaScriptBlocksHeartBeat%"
highContrast="%highContrast%"
<NOEMBED>
</COMMENT>
</NOEMBED>
</EMBED>
</OBJECT>
<!-- Forms applet definition (end) -->
%HTMLafterForm%
</BODY>
</HTML>
C.5 web.xml
The web.xml file is the web application deployment descriptor file for forms Java EE
application. This file is located at $DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_
user/formsapp_11.1.2/<random_string>/war/WEB-INF/. Advanced users
might want to edit the web.xml file to:
web.xml
Run Oracle Forms using static HTML pages (rather than the Forms servlet).
When Oracle Forms applications are run using a method other than the Forms
servlet (for example, static HTML pages, or JSPs), parameter settings in the
formsweb.cfg file are not used. You may therefore need to define servlet
parameters for the Listener Servlet, such as workingDirectory and envFile
(specifying the current working directory for the Forms runtime processes, and the
file containing environment settings to be used).
Servlet mappings are defined in web.xml. Table C2 describes some of the servlet
mappings.
Table C2
URL Path
Type
Maps to
Purpose
/forms/frmservlet
Servlet
mount
point
Forms servlet
/forms/lservlet
Servlet
mount
point
Forms Listener
servlet
C-15
weblogic.xml
<welcome-file-list>
<welcome-file>lservlet</welcome-file>
<welcome-file>frmservlet</welcome-file>
</welcome-file-list>
<listener>
<listener-class>oracle.forms.config.mbeans.FormsappLifeCycleCallBack</listener-cla
ss>
</listener>
<!-- Define security constraints to limit access to the defined url to a
particular role. Logical roles are defined in web.xml and these roles are
mapped
to actual roles(principal roles) in weblogic.xml
-->
<security-constraint>
<web-resource-collection>
<web-resource-name>TraceLog</web-resource-name>
<url-pattern>/frmservlet/trace/*</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<description>Admin users only</description>
<role-name>formsadmin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>WebApp</realm-name>
</login-config>
<security-role>
<description>admin role</description>
<role-name>formsadmin</role-name>
</security-role>
</web-app>
C.6 weblogic.xml
The weblogic.xml is the web application deployment descriptor file. This file is
located at $DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_
11.1.2/<random_string>/war/WEB-INF.
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<session-descriptor>
<timeout-secs>7200</timeout-secs>
<invalidation-interval-secs>120</invalidation-interval-secs>
<debug-enabled>false</debug-enabled>
<id-length>52</id-length>
<tracking-enabled>true</tracking-enabled>
<cache-size>1024</cache-size>
<max-in-memory-sessions>-1</max-in-memory-sessions>
<cookies-enabled>false</cookies-enabled>
</session-descriptor>
<!--logical roles defined in web.xml are mapped to the real users below -->
<security-role-assignment>
<role-name>formsadmin</role-name>
forms.conf
<principal-name>Administrators</principal-name>
</security-role-assignment>
</weblogic-web-app>
C.7 forms.conf
Prior to 11g, virtual path mappings were defined in forms.conf. In 11g, forms.conf
defines WebLogic handler mappings for the Managed Server where the Forms
Services applications are deployed. For more information, see the Section 3.2.3,
"Oracle HTTP Listener Configuration File." The location of the file is $ORACLE_
INSTANCE/config/OHS/<OHS INSTANCE NAME>/moduleconf.
Note: When including any user-defined aliasMatch with the
prefix /forms/ in forms.conf, add the directive
WLExcludePathOrMimeType. For example, in Linux, when defining
the aliasMatch for /forms/usericons in forms.conf, the
directive WLExcludePathOrMimeType is defined as following:
AliasMatch /forms/usericons/(..*) "/home/userx/myicons/$1"
WLExcludePathOrMimeType /forms/usericons/
# Purpose
#
It should include the weblogic managed server (routing) directives for
#
the servers where Forms applications are deployed and other miscellaneous
#
Forms component OHS directives.
#
#
# Remarks
#
This file is included with the OHS configuration under
#
$OI/config/OHS/<OHS Node Name>/moduleconf sub-directory.
#
#
<IfModule !mod_osso.c>
LoadModule osso_module ${ORACLE_HOME}/ohs/modules/mod_osso.so
</IfModule>
<IfModule mod_osso.c>
OssoHTTPOnly off
</IfModule>
<Location /forms>
SetHandler weblogic-handler
WebLogicCluster
dadvma0190.example.com:9001
DynamicServerList OFF
</Location>
#
# virtual mapping for the /forms/html mapping.
#
RewriteEngine on
RewriteRule ^/forms/html/(..*) /workaroundhtml/$1 [PT]
AliasMatch ^/workaroundhtml/(..*)
"/scratch/fmw/ps1/rc3/asinst_2/config/FormsComponent/forms/html/$1"
C-17
Registry.dat
C.8 Registry.dat
Location: $DOMAIN_HOME/config/fmwconfig/servers/WLS_
FORMS/applications/formsapp_
11.1.2/config/forms/registry/oracle/forms/registry
This file enables you to change the default font, font mappings, and icons that Forms
Services uses.
C.8.1 Registry.dat
# This is the Registry file.
#
# This file contains the logical [Java] Class name and an associated
# [numerical] identifier that will be used to refer to objects of the
# class in order to reduce the amount of information that needs to be
# repeatedly transmitted to the client.
#
# This file is of the Form understood by java.util.Properties (for now)
#
# The System Level sound file is relative to the CODEBASE
#
# The oracle classes which used to be defined here have now been moved to
# within the code.
#
# #
# Defaults for the Font details, all names are Java Font names. Each of
# these parameters represents the default property to use when none is
# specified.
# defaultFontname represents the default Java fontName.
# defaultSize
represents the default fontSize. Note that the size is
#
multiplied by 100 (e.g. a 10pt font has a size of 1000).
# defaultStyle
represents the default fontStyle, PLAIN or ITALIC.
# defaultWeight
represents the default fontWeight, PLAIN or BOLD.
#
default.fontMap.defaultFontname=Dialog
default.fontMap.defaultSize=900
default.fontMap.defaultStyle=PLAIN
default.fontMap.defaultWeight=PLAIN
#
#
# Default Font Face mapping.
#
# appFontname represents a comma delimited list of Application Font Names.
# javaFontname represents a comma delimited list of Java Font Names.
#
# The number of entries in the appFontname list should match the number in
# the javaFontname list. The elements of the list are comma separated and
# *all* characters are taken literally, leading and trailing spaces are
# stripped from Face names.
#
# Note that this file uses the Java 1.1 Font names in order to be able to
# handle the NLS Plane (BUG #431051)
#
default.fontMap.appFontnames=Courier
New,Courier,courier,System,Terminal,Fixed,Fixedsys,Times,Times New Roman,MS Sans
Serif,Arial
default.fontMap.javaFontnames=MonoSpaced,MonoSpaced,MonoSpaced,Dialog,MonoSpaced,D
ialog,Dialog,Serif,Serif,Dialog,SansSerif
# The Application Level icon files are relative to the DOCUMENTBASE
Default webutil.cfg
#
example: icons/
# or an absolute URL.
#
example: http://www.example.net/~luser/d2k_project/
#
default.icons.iconpath=
default.icons.iconextension=gif
#
# Application level settings to control UI features
#
app.ui.lovButtons=false
app.ui.requiredFieldVA=false
#
The background color is specified as an RGB triple.
app.ui.requiredFieldVABGColor=255,0,0
C-19
Default webutil.cfg
# --------------------------------------------------------------------------# This file provides all of the configuration settings for webutil. These are
# divided into the following sections:
# 1. Logging Options
# 2. Installation Options
# 3. File Upload and Download Options
# 1. Server Side Logging Options for logging errors and log messages
# You must set logging.enabled to true to allow mid-tier logging. Without this
# mid-tier logging will not take place no matter what PL/SQL or URL options
# are supplied to switch it on. Once logging is enabled the other settings come
# into play.
#
# Details
# ------# logging.file
: Defines the file name and location of the log file.
#
Note that WebUtil does no log file management. You may
#
need to manually clean this file up from time to time.
# logging.enabled
: Can be TRUE or FALSE
# logging.errorsonly : Can be TRUE or FALSE. Setting to true will ensure that
#
only errors and not normal informational log messages
#
are written to the log file. For product use this would
#
normally be set to TRUE
# logging.connections: Can be TRUE or FALSE. Setting to true will cause each
#
connection from a client using WebUtil to write into
#
the log as it sets up.
logging.file=
logging.enabled=FALSE
logging.errorsonly=FALSE
logging.connections=FALSE
# 2. Installation Options
# WebUtil needs to download some files to the client in order to perform
# certain integration operations such as OLE or Registry Access. These files
# are downloaded to the client when webutil is being run for the first time.
# Subsequent runs will use the cached dll. You have to define the location of
# these files on the server and the location on the client.
#
# Here is a table that shows various numeric constants and their meanings. They
# are used in the install options configurations. These constants are defined
# in WEBUTIL_CORE package spec. Note that the Client OS Processor Architecture
# is typically the architecture of the JVM that will be running on the client,
# not necessarily same as the actual client OS architecture.
#
# <os> Client OS Family
<arch> Client OS Processor Architecture
# 0
Windows
0
32 bit architecture
# 1
Linux
1
64 bit architecture
# 2
SOLARIS
# 3
HP
# 4
AIX
# 5
Mac
# 9
Unknown
#
# <package> Package Name
#
7
WEBUTIL_OLE2
#
9
WEBUTIL_C_API
# We don't yet have downloads for other packages. If there is a need, refer
# WEBUTIL_CORE package spec for the constants of other packages
#
# Details
# ------# NOTE: For all settings <arch> field is optional. Without this field, the
Default webutil.cfg
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
setting will be applicable for both 32 bit and 64 bit client OS (JVM)
architectures.
install.syslib.location.<os>.<arch> :
The virtual path to the directory holding the webutil library files on the
server side. This must either be an absolute URL or a URL that is relative
to the documentbase.
NOTE: <os> field is optional for this setting. In the absence of a setting
that has the matching client OS and ARCH, it will use
install.syslib.location. <arch> cannot be specified if <os> is omitted.
install.syslib.location.client.<os>.<arch> :
The path to the directory on the client machine where webutil library
files will be downloaded. This must either be an absolute path or a path
that is relative to client user profile or HOME. Directory will be created
if necessary along with other required parent directories. If the path is
not set, it will be treated as a special case where libraries will be
downloaded to client JRE\bin (windows) or JRE/lib (unix). If this
directory is changed, all the libraries will be redownloaded again.
Please keep in mind that other Forms server could also have a similar
location setting and thus libraries could be overwritten when the same
client runs webutil from different forms server. It is therefore
advisable that the location has a subdirectory that can be unique to your
server, such as server host name. You could use $(SERVERHOST) in the
location. This string will be replaced with the actual server host name
install.syslib.<os>.<arch>.<package>.<n> :
The name(s) of the libraries required for particular webutil beans. The
format of this is name|size|version|showDownloadDialog. Multiple libraries
can be downloaded per package. But ensure that the <n> values are
consecutive and start at 1 for a given os, arch and package set.
install.syslib.location=/webutil
install.syslib.location.0.0=/webutil/win32
install.syslib.location.0.1=/webutil/win64
# Add/change the following if you want to specify a different client location
# where the syslib libraries can be downloaded.
# Format:
# install.syslib.location.client.<os>.<arch>=<location>
install.syslib.location.client.0.0=webutil\syslib\$(SERVERHOST)\win32
install.syslib.location.client.0.1=webutil\syslib\$(SERVERHOST)\win64
# Change size and version if necessary, like when upgrading the library.
# Normally this would not be required since most of these libraries come with
# install itself. Jacob however does not come with install
# Format:
# install.syslib.<os>.<arch>.<package>.<n>=name|size|version|showDownloadDialog
install.syslib.0.0.7.1=jacob-1.14.3-x86.dll|102400|1.14.3|true
install.syslib.0.1.7.1=jacob-1.14.3-x64.dll|117760|1.14.3|true
install.syslib.0.0.9.1=JNIsharedstubs.dll|45056|1.0|true
install.syslib.0.1.9.1=JNIsharedstubs.dll|58368|1.0|true
install.syslib.0.0.9.2=d2kwut60.dll|81920|1.0|true
install.syslib.0.1.9.2=d2kwut60.dll|102400|1.0|true
# You can also add your own libraries in here, e.g.
#install.syslib.0.0.user.1=testwebutil.dll|204872|1.0|true
#install.syslib.0.0.user.1=ffisamp.dll|40960|1.0|true
#install.syslib.0.1.user.1=ffisamp.dll|35328|1.0|true
# 3. Upload / Download Options
# For the file upload and download options you can define the default locations
# on the server that webutil can use as a work area. Optionally you can switch
C-21
Default webutilbase.htm
-->
-->
-->
-->
-->
Default webutilbase.htm
<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!--
-->
-->
-->
-->
-->
-->
-->
This file uses several extra tags that are not present in the -->
default template files. You should ensure that these are
-->
present in the configuration that uses this template
-->
The extra substitution Tags are:
-->
%webUtilArchive% = jar file containing the WebUtil code
-->
(by default this should be frmwebutil.jar) -->
%WebUtilLogging% = Defines the current logging mode.
-->
Valid values: off|on|console|server|all
-->
(on == console)
-->
%WebUtilLoggingDetail% = Specifies the level of error logging.-->
Valid values: normal|detailed
-->
%WebUtilErrorMode% = Should errors be displayed in an alert
-->
as well as the programmer defined
-->
locations
-->
Valid values: console|server|alert|all
-->
%WebUtilDispatchMonitorInterval% = Counts in second to
-->
indicate how often the monitor thread
-->
checks to see if the Forms session is still-->
alive. Used with the WebUtil_Session
-->
package.
-->
%WebUtilTrustInternal% = Should intranet without domain suffix-->
be trusted.
-->
Valid values: true|yes|false|no
-->
%WebUtilMaxTransferSize% = Size in bytes of file transfer
-->
segments. Default and maximum allowed is
-->
16384, i.e. 16K.
-->
IMPORTANT NOTES:
Default values for all the variables which appear below
(enclosed in percent characters) are defined in the servlet
configuration file (formsweb.cfg). It is preferable to make
changes in that file where possible, rather than this one.
<HEAD><TITLE>%pageTitle% - WebUtil</TITLE></HEAD>
<BODY %HTMLbodyAttrs%>
%HTMLbeforeForm%
<!-- Registration applet definition (start) -->
<APPLET CODEBASE="%codebase%"
CODE="oracle.forms.webutil.common.RegisterWebUtil"
ARCHIVE="%webUtilArchive%"
WIDTH="0"
HEIGHT="0"
HSPACE="0"
VSPACE="0">
</APPLET>
<!-- Registration applet definition (end) -->
<COMMENT id="forms_plugin_info"
serverURL="%serverURL%"
appcodebase="%codebase%"
apparchive="%archive%,%webUtilArchive%"
appheight="%Height%"
appwidth="%Width%"
appname="%applet_name%">
</COMMENT>
C-23
Default webutiljpi.htm
Default webutiljpi.htm
<HTML>
<!-- FILE: webutiljpi.htm (Oracle Forms)
-->
<!--->
<!-- This is the default base HTML file for running a form on the
-->
<!-- web using the JDK Java Plugin. This is used for example when
-->
<!-- running with Netscape on Unix.
-->
<!-- and a certificate regsitration applet for the WebUtil utility -->
<!--->
<!-- IMPORTANT NOTES:
-->
<!-- Default values for all the variables which appear below
-->
<!-- (enclosed in percent characters) are defined in the servlet
-->
<!-- configuration file (formsweb.cfg). It is preferable to make
-->
<!-- changes in that file where possible, rather than this one.
-->
<!--->
<!-- This file uses several extra tags that are not present in the -->
<!-- default template files. You should ensure that these are
-->
<!-- present in the configuration that uses this template
-->
<!-- The extra substitution Tags are:
-->
<!-- %webUtilArchive% = jar file containing the WebUtil code
-->
<!-(by default this should be frmwebutil.jar) -->
<!-- %WebUtilLogging% = Defines the current logging mode.
-->
<!-Valid values: off|on|console|server|all
-->
<!-(on == console)
-->
<!-- %WebUtilLoggingDetail% = Specifies the level of error logging.-->
<!-Valid values: normal|detailed
-->
<!-- %WebUtilErrorMode% = Should errors be displayed in an alert
-->
<!-as well as the programmer defined
-->
<!-locations
-->
<!-Valid values: console|server|alert|all
-->
<!-- %WebUtilDispatchMonitorInterval% = Counts in second to
-->
<!-indicate how often the monitor thread
-->
<!-checks to see if the Forms session is still-->
<!-alive. Used with the WebUtil_Session
-->
<!-package.
-->
<!-- %WebUtilTrustInternal% = Should intranet without domain suffix-->
<!-be trusted.
-->
<!-Valid values: true|yes|false|no
-->
<!-- %WebUtilMaxTransferSize% = Size in bytes of file transfer
-->
<!-segments. Default and maximum allowed is
-->
<!-16384, i.e. 16K.
-->
<HEAD><TITLE>%pageTitle% - WebUtil</TITLE></HEAD>
<BODY %HTMLbodyAttrs%>
%HTMLbeforeForm%
<!-- Registration applet definition (start) -->
<OBJECT classid="%jpi_classid%"
codebase="%jpi_codebase%"
WIDTH="0"
HEIGHT="0"
HSPACE="0"
VSPACE="0">
<PARAM NAME="TYPE"
VALUE="%jpi_mimetype%">
<PARAM NAME="CODEBASE"
VALUE="%codebase%">
<PARAM NAME="CODE"
VALUE="oracle.forms.webutil.common.RegisterWebUtil" >
<PARAM NAME="ARCHIVE"
VALUE="%webUtilArchive%" >
<COMMENT>
<EMBED SRC="" PLUGINSPAGE="%jpi_download_page%"
TYPE="%jpi_mimetype%"
C-25
Default webutiljpi.htm
java_codebase="%codebase%"
java_code="oracle.forms.webutil.common.RegisterWebUtil"
java_archive="%webUtilArchive%"
WIDTH="1"
HEIGHT="1"
HSPACE="0"
VSPACE="0"
>
<NOEMBED>
</COMMENT>
</NOEMBED></EMBED>
</OBJECT>
<!-- Registration applet definition (end) -->
<COMMENT id="forms_plugin_info"
serverURL="%serverURL%"
plug_ver="%jpi_classid%"
appheight="%Height%"
appwidth="%Width%"
appcodebase="%jpi_codebase%"
appname="%applet_name%">
</COMMENT>
<!-- Forms applet definition (start) -->
<NOSCRIPT>
<OBJECT classid="%jpi_classid%"
codebase="%jpi_codebase%"
WIDTH="%Width%"
HEIGHT="%Height%"
HSPACE="0"
VSPACE="0"
ID="%applet_name%">
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="/forms/frmjscript/forms_ie.js"></SCRIPT>
<PARAM NAME="TYPE"
VALUE="%jpi_mimetype%">
<PARAM NAME="CODEBASE"
VALUE="%codebase%">
<PARAM NAME="CODE"
VALUE="oracle.forms.engine.Main" >
<PARAM NAME="ARCHIVE"
VALUE="%archive%,%webUtilArchive%" >
<PARAM NAME="serverURL" VALUE="%appletServerURL%">
<PARAM NAME="networkRetries" VALUE="%networkRetries%">
<PARAM NAME="serverArgs"
VALUE="%escapeParams% module=%form% userid=%userid% debug=%debug%
host=%host% port=%port% %otherParams%">
<PARAM NAME="separateFrame" VALUE="%separateFrame%">
<PARAM NAME="splashScreen" VALUE="%splashScreen%">
<PARAM NAME="background" VALUE="%background%">
<PARAM NAME="lookAndFeel" VALUE="%lookAndFeel%">
<PARAM NAME="colorScheme" VALUE="%colorScheme%">
<PARAM NAME="serverApp" VALUE="%serverApp%">
<PARAM NAME="logo" VALUE="%logo%">
<PARAM NAME="imageBase" VALUE="%imageBase%">
<PARAM NAME="formsMessageListener" VALUE="%formsMessageListener%">
<PARAM NAME="recordFileName" VALUE="%recordFileName%">
<PARAM NAME="EndUserMonitoringEnabled" VALUE="%EndUserMonitoringEnabled%">
<PARAM NAME="EndUserMonitoringURL" VALUE="%EndUserMonitoringURL%">
<PARAM NAME="heartBeat" VALUE="%heartBeat%">
<PARAM NAME="MaxEventWait" VALUE="%MaxEventWait%">
<PARAM NAME="allowAlertClipboard" VALUE="%allowAlertClipboard%">
<PARAM NAME="disableValidateClipboard" VALUE="%disableValidateClipboard%">
Default webutiljpi.htm
C-27
Default webutiljpi.htm
>
<NOEMBED>
</COMMENT>
</NOEMBED></EMBED>
</OBJECT>
<!-- Forms applet definition (end) -->
%HTMLafterForm%
</BODY>
</HTML>
D
D
D-1
Trigger: None
FRM-10212: Login failed for this username and password.
Cause: You specified an illegal username and password.
Action: Check the username and password and try again.
Level: 25
Trigger: None
FRM-10213: Login procedure terminated.
Cause: You failed to logon to ORACLE three times in a row.
Action: No action required. If you are a valid user, check your user name and
password.
Level: 25
Trigger: None
FRM-10214: No authorization to run any application.
Cause: You are not a valid user of any module in Oracle Forms.
Action: No action required. If you think that you should be a valid user, ask your
DBA to grant you access to the module you wish to run.
Level: 25
Trigger: None
FRM-10215: No help available.
Cause: You pressed [Help], but none is available for this item.
Action: No action required.
Level: 25
Trigger: None
FRM-10216: Failed to spawn a command to the operating system.
Cause: The operating system could not spawn a sub-process.
Action: Refer to the error message that the operating system issued.
Level: 25
Trigger: None
FRM-10217: No authorization for any item in selected menu.
Cause: You tried to move to a menu that has no items you can access.
Action: Check the menu name you entered and try again.
Level: 25
Trigger: None
FRM-10218: Error for menu %s.
Cause: Oracle Forms could not read the library information for this menu, or an
invalid menu name was specified.
Action: Recompile the library or correct the menu name.
Level: 25
Trigger: None
Forms Error Messages
D-3
Level: 25
Trigger: None
FRM-10226: Could not read bind variable data.
Cause: The application library is invalid.
Action: Recompile the application library and try again. If this is unsuccessful,
contact your DBA.
Level: 25
Trigger: None
FRM-10227: Too many menu parameters.
Cause: The application contains more menu parameters than can be used on your
operating system.
Action: Revise and recompile the application, or contact your DBA.
Level: 25
Trigger: None
FRM-10228: Could not read help text.
Cause: The application library is invalid.
Action: Recompile the application library and try again. If this is unsuccessful,
contact your DBA.
Level: 25
Trigger: None
FRM-10229: Could not close file %s.
Cause: Operating system error or internal error.
Action: Contact your DBA.
Level: 25
Trigger: None
FRM-10230: Application procedure module does not exist.
Cause: The procedure information could not be located in the library. This may be
due to an invalid library file.
Action: Recompile the application library and try again. If this is unsuccessful,
contact your DBA.
Level: 25
Trigger: None
FRM-10231: Could not read procedure data.
Cause: The application library is invalid.
Action: Recompile the application library and try again. If this is unsuccessful,
contact your DBA.
Level: 25
Trigger: None
FRM-10233: Navigational procedures/macros not valid in current menu style.
D-5
Cause: Forms Runtime command did not give the name of a form to execute.
Action: Notify your DBA.
Level: 25
Trigger: None
FRM-10241: Illegal operation when the Form Builder is active.
Cause: The menu designer specified a Built-in or macro that cannot be used when
the Form Builder calls Forms Runtime.
Action: Notify your DBA.
Level: 25
Trigger: None
FRM-10242: Cannot call linked-in Forms from Oracle Forms.
Cause: The menu designer specified a call to linked-in Forms from within Oracle
Forms.
Action: Notify your DBA.
Level: 25
Trigger: None
FRM-10243: Error occurred during invocation of Oracle Forms.
Cause: A call to Forms Runtime failed.
Action: Notify your DBA.
Level: 25
Trigger: None
FRM-10244: Application %s does not exist.
Cause: The application name you specified does not exist in the database, or you
do not have access privileges to it.
Action: Check the application name and try again, or contact your DBA.
Level: 25
Trigger: None
FRM-10245: Already on first item.
Cause: You pressed [Previous Item] from the first item in the parameter form.
Action: No action required. You cannot go to an item prior to the first item in a
parameter form.
Level: 25
Trigger: None
FRM-10246: Error executing packaged procedure - inactive form.
Cause: The menu designer specified a built-in that cannot be executed in the
current context.
Action: Notify your DBA.
Level: 25
Trigger: None
D-7
Level: 25
Trigger: None
FRM-10254: Cannot open file for screen shot.
Cause: The operating system could not open a file (e.g. permission problems, lack
of disk space).
Action: Resolve the operating system condition that caused the error.
Level: 25
Trigger: None
FRM-10255: Error occurred during printing of screen shot.
Cause: The operating system had trouble with a file.
Action: Resolve the operating system condition that caused the error.
Level: 25
Trigger: None
FRM-10256: User is not authorized to run Oracle Forms Menu.
Cause: You are not enrolled in Oracle Forms. You do not have SELECT
permission on the Oracle Forms base tables.
Action: Notify your DBA.
Level: 25
Trigger: None
FRM-10257: User is not authorized to select specified option.
Cause: You tried to select a menu item to which you do not have access.
Action: Choose another item or notify your DBA.
Level: 25
Trigger: None
FRM-10258: Specified menu is already active.
Cause: You tried to navigate to the current menu.
Action: No action required.
Level: 25
Trigger: None
FRM-10259: Invalid null argument to packaged procedure or function.
Cause: You did not specify an argument to a built-in, or the argument is invalid.
Action: Check the online Help for the proper built-in syntax.
Level: 25
Trigger: None
FRM-10260: No active items in selected menu.
Cause: You do not have access privileges for any items in this menu.
Action: Contact your DBA for access privileges if you think you should have
access to the items on this menu.
Level: 25
Forms Error Messages
D-9
Trigger: None
FRM-10261: Menu %s was created by a new version of the Form Compiler.
Cause: You are using an old version of Forms Runtime with a new version of the
Form Compiler.
Action: Upgrade to new version of Forms Runtime.
Level: 25
Trigger: None
FRM-10262: Cannot put radio items, check boxes, or separators in menu bar.
Cause: You attempted to put radio items, check boxes, or separators in menu bar.
Action: Put these items in a submenu.
Level: 25
Trigger: None
FRM-10263: Cannot find icon file for iconic menu item.
Cause: No directory name for this icon.
Action: Contact the person who created the menu application.
Level: 25
Trigger: None
FRM-10264: Specified menu item does not exist.
Cause: You specified a menu item that does not exist in the form.
Action: Try retyping the name or choose another item name.
Level: 25
Trigger: None
FRM-10265: Library was created by an old version of the Form Compiler.
Cause: Oracle Forms cannot use library.
Action: Recompile the library with the current version of the Form Compiler.
Level: 25
Trigger: None
FRM-10266: Library was created by a new version of the Form Compiler.
Cause: Oracle Forms cannot use library.
Action: Recompile the library with current version of the Form Compiler.
Level: 25
Trigger: None
FRM-10267: Help type magic menu item must be placed on top-level menu.
Cause: You placed a help magic menu item on a submenu.
Action: Move the help magic menu item to the top-level menu (main menu).
Level: 25
Trigger: None
FRM-10268: Error: Program unit %s in library %s is uncompiled.
D-11
Level: 99
Trigger: None
FRM-40021: Item in form file is too large.
Cause: An internal error occurred while Oracle Forms was reading the form.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: None
FRM-40023: Error creating record manager context.
Cause: Oracle Forms could not initialize its internal record manager.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-40024: Out of memory.
Cause: Internal error. Your computer does not have enough memory to run the
form.
Action: The designer might be able to modify the form so that it will run. If that is
not feasible, your installation must make more memory available, either by
modifying the operating system parameters or by adding more memory to the
computer.
Level: 99
Trigger: ON-ERROR
FRM-40025: Cannot suppress screen output without file input.
Cause: You tried to run a form on the command line using incompatible
preferences. The output_file preference works only in conjunction with the keyin
preference.
Action: Retype the command to include both the output_file and keyin
preferences.
Level: 99
Trigger: None
FRM-40026: Error opening key script file.
Cause: Oracle Forms cannot open the file you specified with the keyin preference.
Action: Make sure the file exists and the file protections are set properly. Or
create a file with the keyin preference.
Level: 99
Trigger: None
FRM-40027: Error opening display spool file.
Cause: Operating system error. Oracle Forms cannot open a file specified with the
output_file preference because there is insufficient disk space or because you have
specified an incorrect filename.
Action: Contact your system administrator.
Level: 99
D-13
Trigger: None
FRM-40028: Error opening message file %s%s%s.MSB.
Cause: Oracle Forms cannot find the message file.
Action: Make sure the message file exists and the appropriate path is set.
Level: 99
Trigger: None
FRM-40029: Already logged on. Must logout before changing connections.
Cause: The Login() Built-in was issued while already logged on.
Action: Use the Logout() Built-in first.
Level: 25
Trigger: ON-ERROR
FRM-40030: File %s is not a Forms file.
Cause: The file specified on the command line was not a valid Oracle Forms file.
Action: Re-enter Forms Runtime startup command with the name of a valid file.
Level: 99
Trigger: ON-ERROR
FRM-40031: File %s is not a Forms Runtime file.
Cause: The file specified on the command line is not a Forms Runtime (.FMX) file.
Action: Re-enter a valid Forms Runtime (.FMX) file.
Level: 99
Trigger: ON-ERROR
FRM-40032: Internal Error: file %s contains an improper chunk size.
Cause: Internal error. File was compiled incorrectly or is corrupted.
Action: Recompile your file.
Level: 99
Trigger: ON-ERROR
FRM-40033: Internal Error: file %s contains a bad chunk table.
Cause: Internal error. File was compiled incorrectly or is corrupted.
Action: Recompile your file.
Level: 99
Trigger: ON-ERROR
FRM-40034: Cannot attach the library file.
Cause: Oracle Forms was unable to find the specified library file.
Action: Exit Forms Runtime and try again.
Level: 99
Trigger: ON-ERROR
FRM-40036: Library was created by a new version of Oracle Forms.
Cause: Oracle Forms unable to use library.
D-15
Trigger: ON-ERROR
FRM-40102: Record must be entered or deleted first.
Cause: You pressed [Next Record] or [Down] in a context where it is meaningless.
Either:
1. The last record in a block is the current record.
2. The block is empty.
3. You are in a new record in the middle of the block created by pressing [Insert
Record].
Action: No action is necessary.
Level: 5
Trigger: ON-ERROR
FRM-40103: Cannot position to a key item. None are queryable.
Cause: You tried to use [Next Primary Key Item], but none of the primary key
items in the block allow you to enter query criteria.
Action: No action is necessary.
Level: 10
Trigger: ON-ERROR
FRM-40104: No such block: %s.
Cause: Runtime error. A GO_BLOCK statement references a nonexistent block.
Action: Correct the statement.
Level: 99
Trigger: ON-ERROR
FRM-40105: Unable to resolve reference to item %s.
Cause: Runtime error. A GO_ITEM statement references a nonexistent item.
Action: Correct the statement.
Level: 99
Trigger: ON-ERROR
FRM-40106: No navigable items in destination block.
Cause: Runtime error. A GO_BLOCK statement references a block with no
enterable items.
Action: Remove the statement or make at least one item in the block enterable.
Level: 99
Trigger: ON-ERROR
FRM-40107: Cannot navigate to non-displayed item %s.
Cause: Runtime error. A GO_ITEM statement references a non-displayed item.
Action: Remove the statement or turn on the Displayed Property for the indicated
item.
Level: 20
Trigger: ON-ERROR
D-17
Cause: You have not entered a value (or you have deleted a value) in a field that
requires data input.
Action: You must enter a value in this field.
Level: 15
Trigger: ON-ERROR
FRM-40203: Field must be entered completely.
Cause: You have not entered a complete value (or you have deleted part of a
value) in a field that has a fixed length requirement.
Action: Enter a complete value (one that extends to the end of the field).
Level: 15
Trigger: ON-ERROR
FRM-40204: Cursor is at beginning of field value.
Cause: You tried to delete a character before the first character position of the
field.
Action: Use [Delete Character] to delete the character that the cursor is on.
Level: 10
Trigger: ON-ERROR
FRM-40205: Cursor is beyond the current field value.
Cause: On a block mode terminal, you positioned the cursor out of a field.
Action: Move the cursor into the field and try the entry again.
Level: 99
Trigger: None
FRM-40206: Previous character is currently hidden.
Cause: You tried to delete a character that is off the screen.
Action: Scroll the character you want to delete into view using the arrow keys or
[Scroll Left] and [Scroll Right].
Level: 10
Trigger: ON-ERROR
FRM-40207: Must be in range %.30s to %.30s.
Cause: You entered a value not in the valid item range.
Action: Enter a value in the range shown.
Level: 99
Trigger: None
FRM-40208: Form running in query-only mode. Cannot change database fields.
Cause: You entered a value on a query-only form.
Action: Do not enter values on this form. You can execute queries and view data,
but you cannot alter existing data or enter new data.
Level: 15
Trigger: ON-ERROR
D-19
Trigger: ON-ERROR
FRM-40216: Cannot open the clipboard for the paste.
Cause: Clipboard unavailable.
Action: Platform specific.
Level: 99
Trigger: ON-ERROR
FRM-40217: Cannot get the data size from the clipboard.
Cause: Invalid data.
Action: Platform specific.
Level: 99
Trigger: ON-ERROR
FRM-40218: Cannot read from the clipboard.
Cause: Invalid data.
Action: Platform specific.
Level: 99
Trigger: ON-ERROR
FRM-40219: Cannot format the data read from the clipboard.
Cause: Invalid data.
Action: Platform specific.
Level: 99
Trigger: ON-ERROR
FRM-40220: Cannot paste from the clipboard; value too long.
Cause: Invalid data.
Action: Platform specific.
Level: 99
Trigger: ON-ERROR
FRM-40221: Cannot Paste_Region; region not selected.
Cause: Paste_Region was invoked while no portion of the image item was
selected.
Action: Select a region of the image item prior to calling Paste_Region.
Level: 99
Trigger: ON-ERROR
FRM-40222: Disabled item '%s.%s' failed validation.
Cause: Probable application design error. Forms determined that the item
contains an invalid value, but it cannot give focus to the item because it is
disabled. This could happen because either:
The application programmatically assigned an invalid valid to the item.
The application programmatically disabled the item after the end user entered an
invalid valid in the item (and before the item was validated).
D-21
Cause: You pressed [Exit/Cancel] in Enter Query mode, or you pressed CTRL-C
(or its equivalent) while Oracle Forms was fetching rows from the database.
Action: No action is necessary.
Level: 5 when the query was canceled by CTRL-C; 10 otherwise
Trigger: ON-MESSAGE
FRM-40355: Query will retrieve 1 record.
Cause: You pressed [Count Query Hits]. If you now press [Execute Query], the
number of records will be retrieved.
Action: No action is necessary.
Level: 25
Trigger: ON-MESSAGE
FRM-40356: Invalid number in example record. Query not issued.
Cause: In Enter Query mode, you entered an invalid number in the example
record.
Action: Correct the entry and retry the query.
Level: 99
Trigger: ON-ERROR
FRM-40357: Invalid string in example record. Query not issued.
Cause: In query mode, you entered an invalid ALPHA or CHAR value in the
example record.
Action: Correct the entry and retry the query.
Level: 99
Trigger: ON-ERROR
FRM-40358: Invalid date in example record. Query not issued.
Cause: In Enter Query mode, you entered an invalid DATE in the example record.
Action: Correct the entry and retry the query.
Level: 99
Trigger: ON-ERROR
FRM-40359: Invalid date or time in example record. Query not issued.
Cause: In Enter Query mode, you entered an invalid JDATE, EDATE, or TIME
value in the example record.
Action: Correct the entry and retry the query.
Level: 99
Trigger: ON-ERROR
FRM-40360: Cannot query records here.
Cause: You attempted to query a block that does not allow queries.
Action: Do not attempt to query this block.
Level: 10
Trigger: ON-ERROR
D-23
Trigger: ON-ERROR
FRM-40404: Database apply complete: %d records applied.
Cause: Apply complete.
Action: No action is necessary.
Level: 5
Trigger: ON-MESSAGE
FRM-40405: No changes to apply.
Cause: No records were added or modified since the last apply or save.
Action: No action is necessary.
Level: 5
Trigger: ON-ERROR
FRM-40406: Transaction complete: %d records applied; all records saved.
Cause: You finished an apply that recorded your changes and saved previously
applied changes.
Action: No action is necessary.
Level: 5
Trigger: ON-MESSAGE
FRM-40407: Transaction complete: applied records saved.
Cause: You finished a save that saved previously applied changes.
Action: No action is necessary.
Level: 5
Trigger: ON-MESSAGE
FRM-40408: database commit failure.
Cause: A database commit failed.
Action: Examine integrity constraints on the database tables that were updated. If
any were violated, redo the updates without violating the constraints. If necessary,
do the updates and the commit in sqlplus, and see if it issues an ORA-nnnnn
message that will identify the constraint that was violated.
Level: 99
Trigger: ON-ERROR
FRM-40501: ORACLE error: unable to reserve record for update or delete.
Cause: A fatal error occurred while trying to select the record for update.
Action: Pressing [Display Error] provides more information, if it is available. You
can also try to update or delete this record later. If necessary, contact your DBA.
Level: 99
Trigger: ON-ERROR
FRM-40502: ORACLE error: unable to read list of values.
Cause: A fatal error occurred while trying to read a list of values.
Action: Contact your system administrator. If the problem persists, contact Oracle
Support Services.
Level: 99
Trigger: ON-ERROR
FRM-40504: ORACLE error: unable to execute a %s trigger.
Cause: A fatal error occurred while trying to execute a trigger.
Action: Contact your system administrator. If the problem persists, contact Oracle
Support Services.
Level: 99
Trigger: ON-ERROR
FRM-40505: ORACLE error: unable to perform query.
Cause: Processing error encountered. The table associated with the current block
of the form might not exist, or your username might not have authority to perform
the specified action on the table.
Action: Pressing [Display Error] provides more information, if it is available. You
can also try to update or delete this record later. If necessary, contact your DBA.
Level: 99
Trigger: ON-ERROR
FRM-40506: ORACLE error: unable to check for record uniqueness.
Cause: Processing error encountered while checking a record's primary key items
for uniqueness. The table associated with the current block of the form does not
exist, or you do not have authority to access the table.
Action: Contact your DBA.
Level: 99
Trigger: ON-ERROR
FRM-40507: ORACLE error: unable to fetch next query record.
Cause: One of the following:
1. A fatal error occurred while trying to fetch the next query record.
2. If you are connected to an non-Oracle datasource through ODBC, the cursor
loses its position in the result set after a commit.
Action: Requery if you are connected with a non-Oracle datasource. If not, contact
your DBA.
Level: 99
Trigger: ON-ERROR
FRM-40508: ORACLE error: unable to INSERT record.
Cause: A fatal error occurred while trying to insert a record. The table associated
with the current block of the form might not exist, your username might not have
authority to perform the specified action on the table, or some other reason might
have caused the fatal error.
Action: Contact your DBA.
Level: 99
Trigger: ON-ERROR
FRM-40509: ORACLE error: unable to UPDATE record.
D-25
Cause: A fatal error occurred while trying to update a record. The table associated
with the current block of the form might not exist, your username might not have
authority to perform the specified action on the table, or some other reason might
have caused the fatal error.
Action: Contact your DBA.
Level: 99
Trigger: ON-ERROR
FRM-40510: ORACLE error: unable to DELETE record.
Cause: A fatal error occurred while trying to delete a record. The table associated
with the current block of the form might not exist, your username might not have
authority to perform the specified action on the table, or some other reason might
have caused the fatal error.
Action: Contact your DBA.
Level: 99
Trigger: ON-ERROR
FRM-40511: ORACLE error occurred while executing a %s trigger.
Cause: A fatal error occurred while trying to execute a trigger. The table
associated with the current block of the form might not exist, your username
might not have authority to perform the specified action on the table, or some
other reason might have caused the fatal error.
Action: Contact your DBA
Level: 99
Trigger: None
FRM-40512: ORACLE error: unable to issue SAVEPOINT command.
Cause: While attempting to call a new form or to commit, the issued SAVEPOINT
command failed. This generally means that the module has run out of savepoints.
Action: Press [Display Error] to display the specific ORACLE error. You might be
able to increase the maximum number of savepoints in the INIT.ORA file.
Level: 99
Trigger: ON-ERROR
FRM-40513: ORACLE error: unable to get date/time from database.
Cause: An error occurred while trying to resolve a database date/time initial
value.
Action: Connect if you have not already done so. Verify database status.
Level: 10
Trigger: ON-ERROR
FRM-40514: Operation requires a database connection.
Cause: You tried to perform an database operation without connecting to the
database.
Action: Connect to the database and retry.
Level: 20
Trigger: ON-ERROR
D-26 Forms Services Deployment Guide
D-27
FRM-40654: Record has been updated by another user. Re-query to see change.
Cause: Another user has updated this record since you performed a query and
has changed at least one field in the record. Your actions have not changed the
record in memory.
Action: You can update or delete this record now only if another user has
restored the field values back to the way they were when you performed the
query. Otherwise, you must re-query to fetch and display the new record into the
form before you can update or delete it.
Level: 20
Trigger: ON-ERROR
FRM-40655: SQL error forced rollback: clear form and re-enter transaction.
Cause: A deadlock or some other error has caused the current transaction to fail.
Your changes were rolled back.
Action: Clear the form (or exit and re-enter the form) and re-enter the transaction.
You might have to modify the form's design to prevent the error from recurring.
Level: 25
Trigger: ON-ERROR
FRM-40656: Update cannot be made due to prior rollback. Clear the record.
Cause: This record was already updated, but when you attempted to commit
your changes, a serious error prevented this update or any further update or
delete from being performed. The error might have occurred due to one of the
following reasons:
1. A deadlock forced the loss of row locks.
2. The record had a database cluster key, and the previous attempt to update the
record in the database was rolled back due to an error somewhere else in the form.
Action: You must clear this record before you can commit any other transactions
in the form.
Level: 25
Trigger: ON-ERROR
FRM-40657: Record changed or deleted by another user.
Cause: Another user has deleted the record since the query was executed, or
database access control does not allow the operation.
Action: You can clear this record from your screen, but you cannot update or
delete it since it no longer exists in the database, or database access control does
not allow the operation. Check database access control policy.
Level: 20
Trigger: ON-MESSAGE
FRM-40659: Last row of query retrieved. Re-query to see remaining records.
Cause: A FOR_UPDATE query has been closed by executing a commit. Because
the query was open prior to the commit, there may be more records to retrieve.
Action: Re-query to see remaining records.
Level: 5
Trigger: ON-MESSAGE
D-29
Trigger: None
FRM-40730: Invalid message suppress level--unchanged from %d.
Cause: Application design error. A trigger attempted to set the system message
level to an invalid number.
Action: Reset the SYSTEM.MESSAGE_LEVEL system variable to a valid number.
Level: 99
Trigger: ON-ERROR
FRM-40732: Target of GOTO does not exist in this macro.
Cause: Application design error. The label referenced in PL/SQL does not exist.
Action: Correct the statement.
Level: 99
Trigger: ON-ERROR
FRM-40733: PL/SQL Built-in %s failed.
Cause: A fatal error occurred in Oracle Forms or in PL/SQL during trigger
execution.
Action: Examine application logic to see if the Built-in is invoked incorrectly. If
the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-40734: Internal Error: PL/SQL error occurred.
Cause: An internal error occurred in PL/SQL during trigger execution.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-40735: %s trigger raised unhandled exception %s.
Cause: Application design error. The current trigger raised an exception (other
than FORM_TRIGGER_FAILURE), but it did not handle the exception.
Action: Rewrite the trigger text to handle the exception.
Level: 99
Trigger: ON-ERROR
FRM-40736: Cannot initialize PL/SQL.
Cause: An internal error occurred while initializing PL/SQL.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-40737: Illegal restricted procedure %s in %s trigger.
Cause: Application design error. A trigger tried to execute a restricted packaged
procedure.
Action: Remove the packaged procedure from the trigger text.
Level: 99
Trigger: ON-ERROR
FRM-40738: Argument %d to builtin %s cannot be null.
Cause: Application design error. No arguments were provided to the Built-in.
Action: Refer to the online Help for the correct usage of this Built-in.
Level: 99
Trigger: ON-ERROR
FRM-40739: Full rollback not allowed in post-only form.
Cause: Application design error. A trigger tried to issue a CLEAR_FORM
packaged procedure with the FULL_ROLLBACK parameter in a post-only, called
form.
Action: Remove the FULL_ROLLBACK parameter or ensure that the calling form
does not have unposted changes when the call occurs.
Level: 99
Trigger: ON-ERROR
FRM-40740: Procedure %s only allowed in an on-%s trigger.
Cause: Application design error. A non-transactional trigger attempted to invoke
a Built-in procedure that is restricted to a given trigger.
Action: Refer to the online Help for the correct usage of this procedure.
Level: 99
Trigger: ON-ERROR
FRM-40741: Unable to locate record %d on block %s.
Cause: You attempted to get or set record properties for an invalid record number
for the given block.
Action: Verify your Get/Set record property parameters.
Level: 20
Trigger: ON-ERROR
FRM-40742: Illegal status conversion on record %d: %s to %s.
Cause: Application design error. A call to SET_RECORD_PROPERTY attempted
an illegal conversion between record statuses.
Action: Refer to SET_RECORD_PROPERTY in online Help for correct transitions.
Level: 99
Trigger: ON-ERROR
FRM-40743: This operation with no base table requires the %s trigger.
Cause: Application design error. Attempted a database operation (query, insert,
update, etc.) on a non-base table block without the appropriate transactional
trigger.
Action: Refer to online Help for the appropriate transactional trigger and then
create the correct trigger.
Level: 20
Trigger: ON-ERROR
Forms Error Messages
D-31
Level: 99
Trigger: ON-ERROR
FRM-40800: User exit %s does not exist.
Cause: The form tried to invoke a user exit that does not exist. This could be
caused by one of the following:
1. You are using the wrong version of Forms Runtime.
2. There could be an error in the form.
3. FORMS_USEREXITS is not set correctly.
Action: Make sure that the dynamic library which defines the user exit symbol is
listed in FORMS_USEREXITS list.
Level: 20
Trigger: ON-ERROR
FRM-40801: memory allocation failure
Cause: A memory allocation failed when Forms Runtime attempted to create an
internal macro.
Action: Try executing the application when the system is less heavily loaded. If
the problem persists, contact Oracle Support Services.
Level: 25
Trigger: ON-ERROR
FRM-40808: Cannot execute HOST command. Error code = %s.
Cause: Cannot execute a HOST statement because of an operating system error.
Action: Contact your system administrator.
Level: 99
Trigger: ON-ERROR
FRM-40809: HOST command had error code = %s.
Cause: The operating system command resulted in the above error code.
Action: Verify that you entered the command properly.
Level: 99
Trigger: ON-ERROR
FRM-40811: Shell command had error.
Cause: The operating system command resulted in the above error code.
Action: Verify that you entered the command properly.
Level: 99
Trigger: ON-ERROR
FRM-40815: Variable GLOBAL.%s does not exist.
Cause: Application design error. A trigger references a global variable that does
not exist.
Action: Create the global variable or remove the reference.
Level: 20
D-33
Trigger: ON-ERROR
FRM-40816: Could not allocate memory for new symbol.
Cause: A memory allocation failed when Forms Runtime attempted to access a
new global variable.
Action: Try executing the application when the system is less heavily loaded. If
the problem persists, contact Oracle Support Services.
Level: 99
Trigger: None
FRM-40817: Could not allocate memory for new value.
Cause: A memory allocation failed when Forms Runtime attempted to access a
new global variable.
Action: Try executing the application when the system is less heavily loaded. If
the problem persists, contact Oracle Support Services.
Level: 99
Trigger: None
FRM-40818: System variable name not defined.
Cause: You have tried to access a system variable that does not exist.
Action: Check the system variable name.
Level: 99
Trigger: ON-ERROR
FRM-40819: System variable is not modifiable.
Cause: You have tried to modify a system variable.
Action: You cannot modify system variables.
Level: 99
Trigger: ON-ERROR
FRM-40820: Not enough memory to evaluate system variable.
Cause: A memory allocation failed when Forms Runtime attempted to access a
system variable.
Action: Try executing the application when the system is less heavily loaded. If
the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-40828: CALL or CALLQRY with invalid variable reference.
Cause: Application design error. A CALL or CALLQRY function code contains an
invalid variable reference.
Action: Correct the statement.
Level: 99
Trigger: None
FRM-40831: Truncation occurred: value too long for field %s.
Cause: Application design error. A trigger, query, or user exit read a value into an
item that is not long enough to hold the entire value. The item truncated the value.
D-34 Forms Services Deployment Guide
D-35
D-37
Action: Argument indices range from 1 to the number specified in the last call to
FORMS_OLE.InitArgs()
Level: 99
Trigger: ON-ERROR
FRM-40925: No space initialized in OleArg for argument.
Cause: An attempt was made to store too many arguments into the initialized
OLE-argument stack.
Action: Make sure you specify enough space in your call to FORMS_
OLE.InitArgs().
Level: 99
Trigger: ON-ERROR
FRM-40926: OLE Object is NULL.
Cause: You cannot operate on a NULL OLE object.
Action: Do not attempt to call FORMS_OLE Built-ins with NULL OLE-objects.
Level: 99
Trigger: ON-ERROR
FRM-40927: Variant is not an array.
Cause: An attempt was made to access a variant as if it contained an array, and it
did not.
Action: You can call FORMS_OLE.Get_Dims() to ensure that you have a variant
with an array. For arrays, the return value for the function is greater than or equal
to 1.
Level: 99
Trigger: ON-ERROR
FRM-40928: Too many array indices specified.
Cause: An attempt was made to access a variant that holds an array, but too many
array indices were specified.
Action: You must use the correct number of array indices, the same number as
returned by FORMS_OLE.GET_Dims().
Level: 99
Trigger: ON-ERROR
FRM-40929: Too few array indices specified.
Cause: An attempt was made to access a variant that holds an array, but too few
array indices were specified.
Action: You must use the correct number of array indices, the same number as
returned by FORMS_OLE.GET_Dims().
Level: 99
Trigger: ON-ERROR
FRM-40930: Array index was non-numeric.
Cause: An attempt was made to access a variant that holds an array, but the
supplied array indices were non-numeric and not either ROW or COLUMN.
D-39
Action: The only valid array indices are numbers, which should be separated by
columns. If you're fetching into a table from a variant, ROW and COLUMN can be
used as placeholders for the row and column iterators during table construction.
Level: 99
Trigger: ON-ERROR
FRM-40931: Cannot populate table because datatype is unsupported.
Cause: An attempt to populate a table failed because one of its columns used an
unsupported datatype.
Action: Restrict your column types to integers, numbers, strings, and dates.
Level: 99
Trigger: ON-ERROR
FRM-40932: Cannot populate variant because table's datatype is unsupported.
Cause: An attempt to populate a variant failed because one of the source table's
columns used an unsupported datatype.
Action: Restrict your column types to integers, numbers, strings, and dates.
Level: 99
Trigger: ON-ERROR
FRM-40933: Cannot populate table because datatype is incorrect.
Cause: An attempt to populate a table failed because the block's datatype did not
match the table's datatype.
Action: The table datatype must match the datatypes of the block's columns that
are being retrieved.
Level: 99
Trigger: ON-ERROR
FRM-40934: Cannot populate table because records are out of bounds.
Cause: An attempt to populate a table failed because an illegal start or end record
was specified.
Action: start_rec and end_rec parameters must fall between 1 and the number of
retrievable records. end_rec may also be ALL_RECORDS.
Level: 99
Trigger: ON-ERROR
FRM-40935: Object does not exist locally.
Cause: An attempt to release an object failed because the 'kill_persistent'
parameter was set to FALSE, and no local object existed to release.
Action: Never release objects you don't own.
Level: 10
Trigger: ON-ERROR
FRM-41000: This function is not currently available.
Cause: You pressed an undefined function key.
Action: Press [Show Keys] to determine which function key you should have
pressed.
Level: 5
Trigger: ON-ERROR
FRM-41001: This function is not allowed on this device.
Cause: You tried to execute the Insert/Replace function.
Action: No action is necessary.
Level: 5
Trigger: ON-ERROR
FRM-41002: Please make a valid selection.
Cause: You entered an invalid selection number on the block menu; that block
does not exist in this form.
Action: Select an existing block.
Level: 10
Trigger: ON-ERROR
FRM-41003: This function cannot be performed here.
Cause: You tried to perform a function that references a table, but current block
does not correspond to any table.
Action: No action is necessary. You cannot perform the requested function on this
block.
Level: 10
Trigger: ON-ERROR
FRM-41004: This function is not allowed in this mode.
Cause: You pressed a function key that does not work in this mode.
Action: No action is necessary.
Level: 10
Trigger: ON-ERROR
FRM-41005: Internal Error: function key not implemented.
Cause: You pressed a disabled function key.
Action: No action is necessary. You cannot use the function key in the current
context unless the form's definition is modified.
Level: 25
Trigger: ON-ERROR
FRM-41007: Cursor not in a valid item. Function key was ignored.
Cause: You were not in a valid item when you pressed the function key.
Action: Position the cursor inside the item and press the function key again.
Level: 10
Trigger: ON-ERROR
FRM-41008: Undefined function key. Press %s for list of valid keys.
Cause: You pressed an undefined function key.
Action: Press [Show Keys] to determine which function key you should have
pressed.
Forms Error Messages
D-41
Level: 99
Trigger: ON-ERROR
FRM-41009: Function key not allowed. Press %s for list of valid keys.
Cause: You pressed a function key that is not allowed in this environment.
Action: Press [Show Keys] to determine which function key you should have
pressed.
Level: 99
Trigger: ON-ERROR
FRM-41010: Cannot set attribute of the current item.
Cause: Application design error. A SET_ITEM statement tried to turn off the
Input Allowed Property for the current item.
Action: Eliminate the statement or rewrite the trigger.
Level: 99
Trigger: ON-ERROR
FRM-41011: Undefined visual attribute.
Cause: Application design error. A Built-in tried to set an undefined visual
attribute.
Action: Correct the statement.
Level: 99
Trigger: ON-ERROR
FRM-41012: Undefined item or variable reference.
Cause: Application design error. A NAME_IN statement tried to reference a
nonexistent item or variable.
Action: Correct the statement.
Level: 99
Trigger: ON-ERROR
FRM-41013: Undefined property specified for item %s.%s.
Cause: Application design error. A SET_ITEM_PROPERTY or SET_ITEM_
INSTANCE_PROPERTY Built-in specified an undefined property.
Action: Correct the statement.
Level: 99
Trigger: ON-ERROR
FRM-41014: Cannot set property of null canvas item %s.%s.
Cause: Application design error. A SET_ITEM_PROPERTY or SET_ITEM_
INSTANCE_PROPERTY Built-in tried to change some property of a NULL canvas
item.
Action: Specify a canvas for the item, or remove the statement.
Level: 99
Trigger: ON-ERROR
FRM-41015: Cannot set ENTERABLE Property of the current item %s.%s.
D-43
Trigger: ON-ERROR
FRM-41027: Primary key must be defined for this block.
Cause: There are no primary key items in the block and one of the following has
happened:
1. You attempted to set Key_Mode of primary key option on for the block.
2. The Key_Mode is set to Automatic and the datasource to which your are
connected does not support UNIQUE key mode.
Action: Specify one or more primary key items on the block.
Level: 99
Trigger: ON-ERROR
FRM-41028: Invalid property.
Cause: You passed an invalid property constant to a Get or Set property Built-in.
Action: Verify arguments.
Level: 99
Trigger: ON-ERROR
FRM-41029: Invalid parameter.
Cause: You attempted to set a form, block, item, or record property to an invalid
value.
Action: Verify arguments to SET_FORM_PROPERTY, SET_BLOCK_PROPERTY,
SET_ITEM_PROPERTY, or SET_RECORD_PROPERTY.
Level: 99
Trigger: ON-ERROR
FRM-41030: Cannot reset ITEM_LENGTH of item %s.%s.
Cause: Application design error. Attempted to change the length of a fixed length
item.
Action: Statically declare the item to be of the maximum necessary length or
change item type.
Level: 99
Trigger: ON-ERROR
FRM-41031: Cannot reset ITEM_LENGTH greater than the allocated buffer.
Cause: Application design error. Tried to reset ITEM_LENGTH greater than the
allocated buffer.
Action: Increase item length in the form definition.
Level: 99
Trigger: ON-ERROR
FRM-41032: Cannot set ENABLED Property of current item %s.%s.
Cause: A call to SET_ITEM_PROPERTY attempted to set the Enabled Property of
the current item.
Action: Either correct the call to SET_ITEM_PROPERTY or navigate to another
item before setting the Enabled Property.
Level: 99
Forms Error Messages
D-45
Trigger: ON-ERROR
FRM-41033: Cannot set ENABLED Property of non-displayed item %s.%s.
Cause: A call to SET_ITEM_PROPERTY attempted to set the Enabled Property of
a non-displayed item.
Action: First navigate to the item, then set the Enabled Property with a call to
SET_ITEM_PROPERTY.
Level: 99
Trigger: ON-ERROR
FRM-41034: Cannot set NAVIGABLE Property of non-displayed item %s.%s.
Cause: A call to SET_ITEM_PROPERTY attempted to set the Navigable Property
of a non-displayed item.
Action: First navigate to the item, then set the Navigable Property with a call to
SET_ITEM_PROPERTY.
Level: 99
Trigger: ON-ERROR
FRM-41035: Cannot set NAVIGABLE Property of non-enabled item %s.%s.
Cause: A call to SET_ITEM_PROPERTY attempted to set the Navigable Property
of a non-enabled item.
Action: First set the Enabled Property of the item with a call to SET_ITEM_
PROPERTY. Then set the Navigable Property of the item with another call to SET_
ITEM_PROPERTY.
Level: 99
Trigger: ON-ERROR
FRM-41036: Cannot modify a checkbox that does not allow querying.
Cause: You attempted to modify a check box that does not allow querying.
Action: First set the Query Allowed Property to True, then the end user may shift
and click the check box to enable or disable the item.
Level: 99
Trigger: ON-ERROR
FRM-41037: Cannot modify a radio group that does not allow querying.
Cause: You attempted to modify a radio group that does not allow querying.
Action: First set the Enabled Property to True with a call to SET_RADIO_
BUTTON_PROPERTY.
Level: 99
Trigger: ON-ERROR
FRM-41038: Item %s is not a checkbox.
Cause: A call to CHECKBOX_CHECKED was made to an item which was not a
check box.
Action: Correct the call to CHECKBOX_CHECKED.
Level: 20
Trigger: ON-ERROR
D-47
Level: 99
Trigger: ON-ERROR
FRM-41047: Cannot navigate out of current block in enter-query mode.
Cause: An illegal attempt to navigate out of the current block when in Enter
Query mode.
Action: Perform operation before entering query mode.
Level: 99
Trigger: ON-ERROR
FRM-41048: Procedure %s is not valid in a %s trigger.
Cause: The indicated procedure is not valid when called from the indicated
trigger. The procedure may be a restricted procedure, which cannot be called from
any trigger that fires during navigation.
Action: Correct the invalid trigger.
Level: 20
Trigger: ON-ERROR
FRM-41049: You cannot delete this record.
Cause: You attempted to delete a record on a block that does not allow deletes.
Action: Do not attempt to delete records in this block until you have set the Delete
Allowed Property to True.
Level: 10
Trigger: ON-ERROR
FRM-41050: You cannot update this record.
Cause: You attempted to update a record on a block that does not allow updates.
Action: Do not attempt to update records in this block until you have set the
Update Allowed Property to True.
Level: 10
Trigger: ON-ERROR
FRM-41051: You cannot create records here.
Cause: You attempted to create records on a block that does not allow inserts.
Action: Do not attempt to create and insert new records into this block until you
have set the Insert Allowed Property to True.
Level: 10
Trigger: ON-ERROR
FRM-41052: Cannot find Window: invalid ID.
Cause: An invalid ID was passed to a Built-in subprogram.
Action: Verify that a proper call to FIND_WINDOW will be performed.
Level: 20
Trigger: ON-ERROR
FRM-41053: Cannot find Canvas: invalid ID.
Cause: An invalid ID was passed to a Built-in subprogram.
D-49
3. The database to which you are connected does not support UNIQUE key mode.
Action: Disable the block properties first.
Level: 20
Trigger: ON-ERROR
FRM-41061: No such property for Get_Window_Property.
Cause: You attempted to get a non-existent window property.
Action: Verify call to GET_WINDOW_PROPERTY for valid property.
Level: 99
Trigger: ON-ERROR
FRM-41062: Cannot find Editor: invalid ID.
Cause: An invalid ID was passed to a Built-in subprogram.
Action: Verify that a proper call to FIND_EDITOR will be performed.
Level: 20
Trigger: ON-ERROR
FRM-41063: Cannot create Editor.
Cause: Not enough memory available for Forms Runtime.
Action: Try calling SHOW_EDITOR again after closing some of your windows.
Level: 20
Trigger: ON-ERROR
FRM-41064: Cannot create Timer %s: illegal identifier name.
Cause: Illegal identifier name.
Action: Check legal syntax for naming timers.
Level: 99
Trigger: ON-ERROR
FRM-41065: Cannot find Menu: invalid ID.
Cause: An invalid ID was passed to a Built-in subprogram.
Action: Verify that a proper call to FIND_MENU will be performed.
Level: 20
Trigger: ON-ERROR
FRM-41066: No such property for Get_Form_Property.
Cause: You attempted to get a non-existent form property.
Action: Verify call to GET_FORM_PROPERTY for valid property.
Level: 20
Trigger: ON-ERROR
FRM-41067: Cannot find Menu Item: invalid ID.
Cause: An invalid ID was passed to a Built-in subprogram.
Action: Verify that a proper call to FIND_MENU_ITEM will be performed.
Level: 20
D-50 Forms Services Deployment Guide
Trigger: ON-ERROR
FRM-41068: Error in Set_Menu_Item_Property.
Cause: Invalid call to SET_MENU_ITEM_PROPERTY.
Action: Verify valid parameters and try again.
Level: 20
Trigger: ON-ERROR
FRM-41069: Error in Get_Menu_Item_Property.
Cause: Invalid call to GET_MENU_ITEM_PROPERTY.
Action: Verify valid parameters and try again.
Level: 20
Trigger: ON-ERROR
FRM-41070: Unknown property for Set_Menu_Item_Property.
Cause: You attempted to set a non-existent menu item property.
Action: Verify call to SET_MENU_ITEM_PROPERTY for valid property.
Level: 20
Trigger: ON-ERROR
FRM-41071: Unknown property for Get_Menu_Item_Property.
Cause: You attempted to get a non-existent menu item property.
Action: Verify call to GET_MENU_ITEM_PROPERTY for valid property.
Level: 20
Trigger: ON-ERROR
FRM-41072: Cannot create Group %s
Cause: Caused by one of the following
1. Duplicate column names in SQL statement.
2. Invalid record group name.
3. Query is invalid.
Action: Check the group name and/or correct the SQL statement.
Level: 20
Trigger: ON-ERROR
FRM-41073: Cannot find Group: invalid ID.
Cause: An invalid ID was passed to a Built-in subprogram.
Action: Verify that a proper call to FIND_GROUP will be performed.
Level: 20
Trigger: ON-ERROR
FRM-41074: Cannot find Group or Column: invalid ID.
Cause: An invalid ID was passed to a Built-in subprogram.
Action: Verify that a proper call to FIND_GROUP or FIND_COLUMN will be
performed.
D-51
Level: 20
Trigger: ON-ERROR
FRM-41075: Error deleting Group.
Cause: The record group name or ID specified in the call to DELETE_GROUP is
invalid, or the record group was not dynamically created.
Action: Check the record group name or ID, and make sure that the specified
record group was dynamically created.
Level: 20
Trigger: ON-ERROR
FRM-41076: Error populating Group.
Cause: Query failed due to an invalid column or table name, or the query and
group column structure do not match.
Action: Check the SQL SELECT statement in your call to POPULATE_GROUP_
WITH_QUERY.
Level: 20
Trigger: ON-ERROR
FRM-41077: Error deleting Group Row(s).
Cause: DELETE_GROUP_ROW cannot be used to delete records from a static
record group, or you specified an invalid row number.
Action: Correct the call to DELETE_GROUP_ROW.
Level: 20
Trigger: ON-ERROR
FRM-41078: Error resetting Group selection.
Cause: Record group name or ID specified is invalid.
Action: Check the record group name or ID and try again.
Level: 20
Trigger: ON-ERROR
FRM-41079: Error adding Group column.
Cause: Caused by one of the following:
1. You cannot add columns to a group that already has rows.
2. The width of CHAR_COLUMN-typed columns cannot be less than the width of
the corresponding database column.
3. You entered the name of a nonexistent or invalid record group.
4. You entered the name of a nonexistent or invalid column.
5. You entered a column type other than CHAR, NUMBER, or DATE.
Action: You can only add columns to a group after it is created with a call to
CREATE_GROUP. If the group already has rows, delete the rows with DELETE_
GROUP_ROW, then add the column.
Level: 20
Trigger: ON-ERROR
D-53
Cause: You specified an invalid record group name. Invalid call to GET_GROUP_
SELECTION_COUNT.
Action: Correct the call to GET_GROUP_SELECTION.
Level: 20
Trigger: ON-ERROR
FRM-41087: Error getting Group selection.
Cause: You specified an invalid record group name or selection number. Invalid
call to GET_GROUP_SELECTION.
Action: Correct the call to GET_GROUP_SELECTION.
Level: 20
Trigger: ON-ERROR
FRM-41088: Cannot set Group selection.
Cause: You specified an invalid record group name, ID, or row number.
Action: Correct the call to SET_GROUP_SELECTION.
Level: 20
Trigger: ON-ERROR
FRM-41089: Cannot move View: invalid position.
Cause: The x, y pair specified in the call to SET_VIEW_PROPERTY is invalid.
Action: Correct the call to SET_VIEW_PROPERTY by making sure that the
position specified by your coordinates is on the canvas.
Level: 99
Trigger: ON-ERROR
FRM-41090: Invalid item type for go_item: %s.
Cause: You cannot navigate to the item.
Action: Check to make sure the item is a navigable item.
Level: 20
Trigger: ON-ERROR
FRM-41091: Cannot find LOV: invalid ID.
Cause: An invalid ID was passed to a Built-in subprogram.
Action: Verify that a proper call to FIND_LOV will be performed.
Level: 20
Trigger: ON-ERROR
FRM-41092: No records in block %s.
Cause: You attempted to place a value into an item on a block that has no records.
Action: Put records in the block first.
Level: 20
Trigger: ON-ERROR
FRM-41093: Error setting item property: %s.
Cause: You specified Lock Record and the item was not a text item, or you specify
Case Insensitive Query and the data type was not ALPHA or CHAR.
Action: In the case of Lock Record, make sure that the item is a text item. When
specifying Case Insensitive Query, make sure that the data type is ALPHA or
CHAR.
Level: 20
Trigger: ON-ERROR
FRM-41094: No such property for Get_View_Property.
Cause: You attempted to get a non-existent view property.
Action: Verify call to GET_VIEW_PROPERTY for valid property.
Level: 99
Trigger: ON-ERROR
FRM-41095: No such property for Get_Canvas_Property.
Cause: You attempted to get a non-existent canvas property.
Action: Verify call to GET_CANVAS_PROPERTY for valid property.
Level: 99
Trigger: ON-ERROR
FRM-41096: Cannot resize View: invalid size.
Cause: The x, y coordinates place the view off the canvas.
Action: Choose another x, y pair.
Level: 99
Trigger: ON-ERROR
FRM-41097: Cannot resize Canvas: invalid size.
Cause: The x, y coordinates place the view off the window.
Action: Choose another x, y pair.
Level: 99
Trigger: ON-ERROR
FRM-41098: Cannot modify Display Position of a content view.
Cause: The Display Position Property applies to a stacked canvas-view only.
Action: Correct the call to SET_VIEW_PROPERTY.
Level: 99
Trigger: ON-ERROR
FRM-41099: Cannot modify Size of a content view.
Cause: The size of a content view is dependent on window size. Only stacked
view sizes may be modified using SET_VIEW_PROPERTY.
Action: Correct the call to SET_VIEW_PROPERTY.
Level: 99
Trigger: ON-ERROR
FRM-41100: Cannot find relation %s.
D-55
Cause: An invalid query data source type or an invalid DML data target type is
specified for the detail block.
Action: Verify that the detail block's query data source and the DML data targets
are of type table.
Level: 99
Trigger: ON-ERROR
FRM-41200: Integration error: invalid product.
Cause: Invalid product name specified during integration.
Action: Check the integration parameters.
Level: 99
Trigger: ON-ERROR
FRM-41201: Integration error: communication mode must be SYNCHRONOUS or
ASYNCHRONOUS.
Cause: Invalid communication mode specified in RUN_REPORT_OBJECT.
Action: Check the RUN_REPORT_OBJECT parameters and try again.
Level: 20
Trigger: ON-ERROR
FRM-41202: Integration error: parameter list %s has no parameters.
Cause: Parameter list has no arguments.
Action: Check the specified parameter list for parameters.
Level: 20
Trigger: ON-ERROR
FRM-41203: Integration error: invalid parameter list ID.
Cause: An invalid parameter list ID was passed.
Action: Check the parameter list ID name and try again.
Level: 20
Trigger: ON-ERROR
FRM-41204: Integration error: memory allocation error.
Cause: An internal error occurred.
Action: If the problem persists, contact Oracle Support Services.
Level: 20
Trigger: ON-ERROR
FRM-41208: Integration error: execution mode must be BATCH or RUNTIME.
Cause: Invalid execution mode specified in RUN_REPORT_OBJECT.
Action: Specify either BATCH or RUNTIME for the execmode parameter.
Level: 20
Trigger: ON-ERROR
FRM-41209: Integration error: document location must be FILESYSTEM or DB.
D-57
Level: 99
Trigger: ON-ERROR
FRM-41218: Unable to copy report output.
Cause: There is a problem copying report output for a given report job.
Action: Check the Report server and make sure that the specified output file
exists.
Level: 99
Trigger: ON-ERROR
FRM-41219: Cannot find report: invalid ID.
Cause: The user has specified an invalid report object name.
Action: Check the form and make sure that the report object exists.
Level: 99
Trigger: ON-ERROR
FRM-41220: Failed to authenticate user.
Cause: There was a failure in displaying the web report.
Action: Check if the user credentials are valid against identity store in use.
Level: 99
Trigger: ON-ERROR
FRM-41221: Failed to connect to identity store.
Cause: There was a failure in connecting to authentication service of identity
store.
Action: Check if the authentication service is running.
Level: 99
Trigger: ON-ERROR
FRM-41300: Invalid parameter used for Set_Radio_Button_Property.
Cause: You specified a parameter that does not exist.
Action: Check the list of legal parameters.
Level: 99
Trigger: ON-ERROR
FRM-41301: Invalid parameter used for Set_View_Property.
Cause: You specified a parameter that does not exist.
Action: Check the list of legal parameters.
Level: 99
Trigger: ON-ERROR
FRM-41302: Invalid parameter used for Set_Canvas_Property.
Cause: You specified a parameter that does not exist.
Action: Check the list of legal parameters.
Level: 99
D-59
Trigger: ON-ERROR
FRM-41303: No such property for Set_Window_Property.
Cause: You specified a property that does not exist.
Action: Check the list of legal properties.
Level: 99
Trigger: ON-ERROR
FRM-41304: No such property for Set_Block_Property.
Cause: You specified a property that does not exist.
Action: Check the list of legal properties.
Level: 99
Trigger: ON-ERROR
FRM-41305: No such property for Get_Block_Property.
Cause: You specified a property that does not exist.
Action: Check the list of legal properties.
Level: 99
Trigger: ON-ERROR
FRM-41306: Invalid parameter used for Set_Window_Property.
Cause: You specified a parameter that is not valid.
Action: Check the list of valid parameters.
Level: 99
Trigger: ON-ERROR
FRM-41307: Invalid parameter used for Set_Block_Property.
Cause: You specified a parameter that is not valid.
Action: Check the list of valid parameters.
Level: 99
Trigger: ON-ERROR
FRM-41308: Error unsetting Group selection.
Cause: You tried to deselect a record or a subset of records that was not selected
or is not in the record group.
Action: Check the records that are expected in the group.
Level: 20
Trigger: ON-ERROR
FRM-41309: No such property for Get_Radio_Button_Property.
Cause: You specified a property that is invalid.
Action: Check the list of valid properties.
Level: 99
Trigger: ON-ERROR
FRM-41310: No such property for Set_Radio_Button_Property.
D-61
Trigger: ON-ERROR
FRM-41317: Item is not a radio button %s
Cause: You tried to use a radio button Built-in with an item that is not a radio
button.
Action: Make sure the item is a radio button.
Level: 99
Trigger: ON-ERROR
FRM-41318: Item %s is not a VBX item.
Cause: You tried to use a VBX Built-in with an item that is not a VBX item.
Action: Make sure the item is a VBX item.
Level: 99
Trigger: ON-ERROR
FRM-41319: Invalid property %s specified for VBX item %s.
Cause: You tried to get or set an invalid property for the specified VBX item.
Action: Make sure the property is valid for the specified VBX item.
Level: 99
Trigger: ON-ERROR
FRM-41320: Unable to get property %s for VBX item %s.
Cause: Could not get the valid property for the VBX item.
Action: Check the list of legal properties.
Level: 99
Trigger: ON-ERROR
FRM-41321: Unable to set property %s for VBX item %s.
Cause: Could not set the valid property for the VBX item.
Action: Check the list of legal properties.
Level: 99
Trigger: ON-ERROR
FRM-41322: Invalid event %s for VBX item %s.
Cause: You tried to get or set an invalid event for the specified VBX item.
Action: Make sure the event is valid for the specified VBX item.
Level: 99
Trigger: ON-ERROR
FRM-41323: Too many parameters for event %s for VBX item %s.
Cause: You specified too many parameters for the event name for the VBX item.
Action: Make sure there is a valid number of parameters for the event.
Level: 99
Trigger: ON-ERROR
FRM-41324: Too few parameters for event %s for VBX item %s.
Cause: You specified too few parameters for the event name for the VBX item.
Action: Make sure there is a valid number of parameters for the event.
Level: 99
Trigger: ON-ERROR
FRM-41325: VBX event parameter must be a string.
Cause: The VBX event parameter is not a string.
Action: Make sure the VBX event parameter is a string.
Level: 99
Trigger: ON-ERROR
FRM-41326: Failed to deliver event %s to VBX item %s.
Cause: The VBX event failed.
Action: Make sure the event is valid for the specified VBX item.
Level: 99
Trigger: ON-ERROR
FRM-41327: Failed to get default property for VBX item %s.
Cause: The VBX.GET_VALUE_PROPERTY Built-in failed.
Action: Make sure an initial value is assigned to the VB Control Value property.
Level: 99
Trigger: ON-ERROR
FRM-41328: Failed to set default property for VBX item %s.
Cause: The VBX.SET_VALUE_PROPERTY Built-in failed.
Action: Make sure you are setting a valid value property.
Level: 99
Trigger: ON-ERROR
FRM-41329: Item %s is not a List item.
Cause: You tried to add a list element to an item that is not a list.
Action: Make sure the item is a List item.
Level: 99
Trigger: ON-ERROR
FRM-41330: Could not insert list element into %s.
Cause: You tried to insert an other values element when the block contained
either queried or changed records.
Action: For more information, refer to help for restrictions on <a href="../builta_
c/addliste.html">ADD_LIST_ELEMENT Built-in</a>.
Level: 99
Trigger: ON-ERROR
FRM-41331: Could not delete element from %s.
Cause: Caused by one of the following:
D-63
You tried to delete the other values element when the block contained either
queried or changed records.
You tried to delete an element from a list that does not contain an other values
element when the block contained either queried or changed records.
Action: For more information, refer to help for restrictions on <a href="../builta_
c/clearlis.html">CLEAR_LIST</a> and <a href="../builtd_
f/dellsele.html">DELETE_LIST_ELEMENT</a>.
Level: 99
Trigger: ON-ERROR
FRM-41332: List element index out of range.
Cause: An invalid index (e.g. a negative number) was specified to the Add_List_
Element Built-in.
Action: Correct the index in the call to Add_List_Element.
Level: 99
Trigger: ON-ERROR
FRM-41333: Cannot convert list element value.
Cause: Could not resolve list element value to a string.
Action: Make sure list element is a string.
Level: 99
Trigger: ON-ERROR
FRM-41334: Invalid record group for list population.
Cause: You tried to populate a list from a record group that does not exist.
Action: Make sure the record group exists.
Level: 99
Trigger: ON-ERROR
FRM-41335: Populate_List: invalid column type for column 1.
Cause: The record group does not have a column of the same type.
Action: Make sure record group has a column of the same type.
Level: 99
Trigger: ON-ERROR
FRM-41336: Populate_List: invalid column type for column 2.
Cause: The record group does not have a column of the same type.
Action: Make sure record group has a column of the same type.
Level: 99
Trigger: ON-ERROR
FRM-41337: Cannot populate the list from record group.
Cause: The record group is invalid or the list item does not satisfy the
requirements for deleting and adding elements.
Action: Make sure the record group is valid. For more information about deleting
and adding list elements, refer to help for restrictions on <a href="../builtd_
D-65
Level: 20
Trigger: ON-ERROR
FRM-41345: Cannot find the verb %s for this server.
Cause: You specified an invalid OLE verb.
Action: Specify a valid OLE verb.
Level: 99
Trigger: ON-ERROR
FRM-41346: Cannot determine the verb count for OLE object %s.
Cause: Could not communicate with OLE server.
Action: Re-install the OLE server.
Level: 99
Trigger: ON-ERROR
FRM-41347: Invalid verb index for OLE object %s.
Cause: You provided an index that is greater than the verb count.
Action: Check the index value.
Level: 99
Trigger: ON-ERROR
FRM-41348: OLE server error: %s.
Cause: OLE server detects an error.
Action: Try to resolve the error based on the message from the OLE server.
Level: 99
Trigger: ON-ERROR
FRM-41349: OLE object %s cannot execute verb; verb id %d
Cause: OLE object does not recognize the verb.
Action: Try to execute another verb.
Level: 99
Trigger: ON-ERROR
FRM-41350: OLE object is currently not displayed.
Cause: You tried to close a server that is not running.
Action: Ask if the server is active in a record that is not currently active.
Level: 99
Trigger: ON-ERROR
FRM-41351: Cannot navigate out of current form.
Cause: You cannot navigate to an inactive form.
Action: Check to make sure the form you are navigating to is active.
Level: 99
Trigger: ON-ERROR
FRM-41352: Failed to create a new session.
D-66 Forms Services Deployment Guide
D-67
Action: The Open_Form session feature is only available for use against a
database with multiple sessioning enabled.
Level: 99
Trigger: ON-ERROR
FRM-41360: Invalid value used in Set_Window_Property for window %s.
Cause: You are using an invalid value when attempting to set a window property.
Action: Specify a valid window property value.
Level: 99
Trigger: ON-ERROR
FRM-41361: Cannot navigate out of current form in Enter-Query mode.
Cause: You are in Enter-Query mode and trying to navigate to another form
when using Open Form.
Action: Exit Enter-Query mode and try again.
Level: 10
Trigger: ON-ERROR
FRM-41362: No such property for Set_Alert_Button_Property.
Cause: You specified an invalid property for Set_Alert_Button_Property.
Action: Specify a valid property for Set_Alert_Button_Property.
Level: 99
Trigger: ON-ERROR
FRM-41363: No such property for Set_LOV_Column_Property.
Cause: You specified an invalid property for Set_LOV_Column_Property.
Action: Specify a valid property for Set_LOV_Column_Property.
Level: 99
Trigger: ON-ERROR
FRM-41364: Invalid column number specified for LOV %s.
Cause: You specified an invalid column number for the LOV.
Action: Specify a valid column number for the LOV.
Level: 99
Trigger: ON-ERROR
FRM-41365: No such property for Set_TabPage_Property.
Cause: You specified an invalid property for Set_TabPage_Property.
Action: Specify a valid property for Set_TabPage_Property.
Level: 99
Trigger: ON-ERROR
FRM-41366: No such property for Get_TabPage_Property.
Cause: You specified an invalid property parameter.
Action: Check the list of valid properties.
Level: 99
Trigger: ON-ERROR
FRM-41367: Cannot find TabPage: invalid ID.
Cause: An invalid ID was passed to a Built-in subprogram.
Action: Verify that a proper call to FIND_TABPAGE will be performed.
Level: 99
Trigger: ON-ERROR
FRM-41368: Invalid parameter used for Set_TabPage_Property.
Cause: You specified a parameter that is not valid.
Action: Check the list of valid parameters.
Level: 99
Trigger: ON-ERROR
FRM-41369: Cannot insert a second record into a single-record block.
Cause: You (or the application) have attempted to insert a second record into a
block whose Single Record Property is TRUE.
Action: Don't attempt to insert a record into such a block.
Level: 99
Trigger: ON-ERROR
FRM-41370: Cannot modify calculated item %s.%s.
Cause: Application design error. The application attempted to assign a value to a
calculated item.
Action: If the calculated item is a formula item, then its formula determines its
value at all times. It may be appropriate to modify the formula. Or it may be
appropriate to change the calculated item to a non-calculated control item whose
value is set in various triggers.
Level: 99
Trigger: ON-ERROR
FRM-41371: Cannot set INSERT_ALLOWED Property of calculated item %s.%s.
Cause: Application design error. A SET_ITEM_PROPERTY or SET_ITEM_
INSTANCE_PROPERTY Built-in attempted to set a calculated item's INSERT_
ALLOWED Property to TRUE.
Action: The call to the Built-in must be modified or removed.
Level: 99
Trigger: ON-ERROR
FRM-41372: Cannot set ITEM_IS_VALID Property of calculated item %s.%s.
Cause: Application design error. A SET_ITEM_PROPERTY Built-in attempted to
set a calculated item's ITEM_IS_VALID Property to FALSE.
Action: The call to the Built-in must be modified or removed.
Level: 99
Trigger: ON-ERROR
D-69
D-71
D-73
D-75
Cause: You tried to use the menu component from within Oracle Forms, and an
internal error occurred.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-41811: Error removing menu.
Cause: You tried to use Menus from within Oracle Forms, and an internal Menu
error occurred.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-41812: Error resetting Menu.
Cause: You tried to use the menu component from within Oracle Forms, and an
internal error occurred.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-41813: Form exited by debug mode.
Cause: You selected the Exit Oracle Forms Runtime option on the Break
Processing menu.
Action: No action is necessary.
Level: 99
Trigger: None
FRM-41814: Invalid page position.
Cause: Application design error. A trigger tried to move or resize a view to a page
that would cause all or part of the view to display off of the screen.
Action: Correct the statement.
Level: 99
Trigger: ON-ERROR
FRM-41815: No such property for Get_LOV_Property.
Cause: You attempted to get a nonexistent LOV property.
Action: Verify the valid LOV properties and try again.
Level: 20
Trigger: ON-ERROR
FRM-41816: Attempt to create existing timer: %s.
Cause: Attempted to create a timer that already exists.
Action: Delete or alter the existing timer before re-creating a new one.
Level: 99
Trigger: ON-ERROR
D-77
D-79
Level: 99
Trigger: ON-ERROR
FRM-41840: Insufficient main memory for record buffers
Cause: Unable to allocate memory for a record being created in a block.
Action: Try restarting application when fewer programs are running
concurrently, or on a machine with more memory. The design may need to be
changed so that one or more blocks have smaller values for the Records Buffered
Property.
Level: 99
Trigger: ON-ERROR
FRM-41841: Use the debugger-enabled executable if specifying DEBUG=YES.
Cause: You tried to use the debugger from an executable which doesn't include it.
Action: Run the other executable (name will vary with operating system), which
includes the debugger.
Level: 99
Trigger: None
FRM-41843: Invalid time zone region %s for ADJUST_TZ.
Cause: A call to the ADJUST_TZ procedure specified an invalid 'from' or 'to' time
zone region name.
Action: Specify a valid name. If the name is valid, you may need to ask your
system administrator to install a larger time zone file.
Level: 25
Trigger: ON-ERROR
FRM-41844: ADJUST_TZ could not convert date.
Cause: A call to the ADJUST_TZ procedure specified valid 'from' and 'to' time
zone region names, but nevertheless failed. This probably indicates that the date
was too close to the boundary dates of Jan 1, 4712 BC or Dec 31, 9999 AD.
Action: Specify a valid date.
Level: 25
Trigger: ON-ERROR
FRM-41845: Javascript events have been disabled.
Cause: Either the environment variable FORMS_ALLOW_JAVASCRIPT_
EVENTS or the applet parameter enableJavaScriptEvent has been set to FALSE.
Action: Set client applet's parameter enableJavaScriptEvent and the server's
environment variable FORMS_ALLOW_JAVASCRIPT_EVENTS to true. The
default value of both these variables is true.
Level: 15
Trigger: ON-ERROR
FRM-41846: Too many items in block %s.
Cause: The specified block contains more than approximately 5000 items.
Action: Redesign the form.
Level: 99
Trigger: ON-ERROR
FRM-41900: Run aborted by fatal error.
Cause: Internal error.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: None
FRM-41901: Error: %d cursors were not closed.
Cause: Internal error.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: None
FRM-41902: Total cursors used %d.
Cause: This message appears when you run a form with the Statistics preference
set to True.
Action: No action is necessary.
Level: 20
Trigger: ON-MESSAGE
FRM-41903: Run aborted by end of input file.
Cause: Internal error.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: None
FRM-42017: Module name must be specified.
Cause: You did not specify a module name.
Action: Specify a module name.
Level: 99
Trigger: None
FRM-42100: No errors encountered recently.
Cause: You pressed [Display Error], but no error has occurred recently.
Action: No action is necessary.
Level: 5
Trigger: ON-MESSAGE
FRM-42400: Performing event trigger %s.
Cause: This message is displayed during a trigger when debug mode is specified.
Action: No action is necessary.
Level: 99
Trigger: ON-MESSAGE
D-81
Level: 99
Trigger: ON-ERROR
FRM-47003: Cannot delete Parameter List : internal error.
Cause: Internal error.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-47004: Cannot delete Parameter List : invalid ID.
Cause: Attempted to pass an invalid parameter list ID.
Action: Check the list ID name and try again.
Level: 99
Trigger: ON-ERROR
FRM-47005: Cannot validate parameter %s : internal error.
Cause: Internal error.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-47006: Cannot create Parameter List '%s' : illegal identifier name.
Cause: Illegal identifier name.
Action: Check valid syntax for the identifier.
Level: 99
Trigger: ON-ERROR
FRM-47007: Cannot get parameter %s attributes from Parameter List : invalid list ID.
Cause: Specified an invalid parameter list ID.
Action: Check the parameter list ID name and try again.
Level: 99
Trigger: ON-ERROR
FRM-47008: Cannot add parameter %s to Parameter List %s : internal error.
Cause: An internal error occurred.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-47009: Cannot add parameter %s to Parameter List : invalid list ID.
Cause: You specified an invalid parameter list ID.
Action: Check the parameter list ID name and try again.
Level: 99
Trigger: ON-ERROR
FRM-47010: Cannot add parameter to Parameter List %s : null key specified.
Forms Error Messages
D-83
D-85
Level: 99
Trigger: ON-ERROR
FRM-47023: No such parameter named %s exists in form %s.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. You specified a parameter name does not exist.
Action: Check the name and try again.
Level: 99
Trigger: ON-ERROR
FRM-47024: Parameter %s type does not match definition in form %s.
Cause: You specified a parameter type that does not match the definition in the
form.
Action: Specify a parameter type that matches the definition in the form.
Level: 99
Trigger: ON-ERROR
FRM-47025: Cannot get parameter %s attributes from Parameter List %s : internal
error.
Cause: Internal error: you specified an invalid parameter list ID.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-47026: Cannot get parameter %s attributes from Parameter List %s : no such
named parameter exists.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. You specified a parameter name does not exist.
Action: Check the name and try again.
Level: 99
Trigger: ON-ERROR
FRM-47027: Cannot add parameter %s to Parameter List %s : invalid key specified .
Cause: You specified an invalid parameter list ID.
Action: Check the name and try again.
Level: 99
Trigger: ON-ERROR
FRM-47028: Cannot set parameter %s attribute in Parameter List %s : group %s does
not exist.
Cause: You specified an invalid parameter list ID.
Action: Check the name and try again.
Level: 99
Trigger: ON-ERROR
FRM-47029: Invalid parameter list ID in form %s.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. You specified a parameter name does not exist.
Action: Check the ID and try again.
Level: 99
Trigger: ON-ERROR
FRM-47030: Value of parameter %s is too long for definition in form %s.
Cause: You specified a parameter that is too long.
Action: Specify a parameter that is valid.
Level: 99
Trigger: ON-ERROR
FRM-47031: Cannot set value of parameter %s in DEFAULT parameter list: invalid
value specified.
Cause: Application design error. A Built-in (such as SET_PARAMETER_ATTR) is
attempting to set the value of a parameter which was defined when the form was
designed, but the value specified is not legal for the parameter's datatype.
Action: The call to the Built-in must be modified or removed.
Level: 99
Trigger: ON-ERROR
FRM-47032: Cannot set value of parameter %s in DEFAULT parameter list: internal
error.
Cause: An internal error while attempting to set the value of a parameter.
Action: If the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-47033: Cannot set value of read-only bind variable %s.
Cause: Application design error. The application attempted to assign a value to a
bind variable which cannot be programmtically modified.
Action: The assignment must be removed.
Level: 25
Trigger: ON-ERROR
FRM-47100: Cannot read image file %s.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. Oracle Forms was unable to find or open the file.
3. The data in the file is not in the specified format.
Action: Check the file name and file format and try again.
D-87
Level: 99
Trigger: ON-ERROR
FRM-47101: Cannot write image file %s.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. Oracle Forms was unable to find or open the file.
3. The data in the file is not in the specified format.
Action: Check the file name, and make sure you have write privileges.
Level: 99
Trigger: ON-ERROR
FRM-47102: Cannot perform %s operation on images %s and %s.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. This operation cannot be performed on color images.
Action: Check to see that both images are black and white.
Level: 99
Trigger: ON-ERROR
FRM-47103: Cannot zoom image %s.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. Internal multimedia error caused by trying to scale a null image or invalid
image data.
Action: Check the image name that you want to zoom and try again.
Level: 99
Trigger: ON-ERROR
FRM-47104: Invalid image type %s.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. Data in the file name specified does not match the data type specified.
Action: Check the file name and try again.
Level: 99
Trigger: ON-ERROR
FRM-47105: No image name specified.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. You did not supply a name to the Built-in call.
Action: Refer to the documentation for the proper syntax for the Built-in in
question.
Level: 99
Trigger: ON-ERROR
FRM-47106: No image type specified.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. You did not specify an image type when calling READ_IMAGE_FILE or
WRITE_IMAGE_FILE.
Action: Supply an image type as an argument in your call to READ_IMAGE_FILE
or WRITE_IMAGE_FILE.
Level: 99
Trigger: ON-ERROR
FRM-47107: Invalid scaling factor %d for Image_Zoom.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. You specified an invalid scaling factor.
Action: Correct the call to IMAGE_ZOOM.
Level: 20
Trigger: ON-ERROR
FRM-47108: Item %s is not an image item.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. You attempted to perform an image operation on an item that is not an image
item.
Action: Check the item name and try again.
Level: 99
Trigger: ON-ERROR
FRM-47109: Cannot locate image file %s.
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. You specified a file that cannot be found or does not exist.
Action: Verify that the file exists and the pathname is correct.
Level: 20
Trigger: ON-ERROR
FRM-47110: No region was selected for Image_Zoom: %s
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. You tried to zoom an image without selecting an image region.
Action: Select an image region.
Level: 20
Forms Error Messages
D-89
Trigger: ON-ERROR
FRM-47111: Cannot copy value to item: %s
Cause: Caused by one of the following:
1. You specified an invalid parameter list ID.
2. You tried to use the COPY Built-in on an image item.
Action: You cannot use the COPY Built-in on an image item.
Level: 99
Trigger: ON-ERROR
FRM-47300: Item is not a hierarchical tree. (%s)
Cause: A hierarchical tree Built-in was invoked on a non-tree item.
Action: Check item type and name.
Level: 99
Trigger: ON-ERROR
FRM-47301: Cannot add data as sibling to the tree root.
Cause: ADD_TREE_DATA or ADD_TREE_NODE attempted to add data as a
sibling of the root.
Action: Add data at a lower level in the tree.
Level: 99
Trigger: ON-ERROR
FRM-47302: Can only add data to tree as child or sibling.
Cause: ADD_TREE_DATA or ADD_TREE_NODE attempted to use an unknown
offset_type value.
Action: Only PARENT_OFFSET and SIBLING_OFFSET are allowed for the
offset_type parameter.
Level: 99
Trigger: ON-ERROR
FRM-47303: ADD_TREE_DATA only accepts data from a group or query.
Cause: ADD_TREE_DATA attempted to use an unknown datasource value.
Action: Only RECORD_GROUP and QUERY_TEXT are allowed for the
datasource parameter.
Level: 99
Trigger: ON-ERROR
FRM-47304: Cannot delete the root node of a tree.
Cause: DELETE_TREE_NODE attempted to delete the root node.
Action: Check if a node is the root (use ID_NULL) before trying to delete it.
Level: 99
Trigger: ON-ERROR
FRM-47305: Can only search a tree looking for label or value.
Cause: FIND_TREE_NODE attempted to use an unknown search_by parameter
value.
D-90 Forms Services Deployment Guide
D-91
D-93
Trigger: ON-ERROR
FRM-47333: Could not set required state for tree node.
Cause: Unable to change state for a tree node.
Action: Try executing the application when the system is less heavily loaded. If
the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-47334: Could not allocate memory for tree node icon string.
Cause: Unable to allocate memory for the name of a tree node icon.
Action: Try executing the application when the system is less heavily loaded. If
the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-47335: Could not locate a tree node icon. (%s)
Cause: Unable to find the desired icon in standard locations.
Action: Check that your tree node icons are located in the proper directories.
Level: 99
Trigger: ON-ERROR
FRM-47336: Could not set tree node to the requested icon.
Cause: Unable to set the requested tree node icon.
Action: Try executing the application when the system is less heavily loaded. If
the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-47337: Tree node label cannot be null.
Cause: Attempt was made to set a tree node's label to a null value.
Action: Set the label to a non-null value.
Level: 99
Trigger: ON-ERROR
FRM-47338: Could not allocate memory for tree node label.
Cause: Unable to allocate memory for a tree node label.
Action: Try executing the application when the system is less heavily loaded. If
the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-47339: Could not set tree node to the requested label.
Cause: Unable to set the requested tree node label.
Action: Try executing the application when the system is less heavily loaded. If
the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-47340: Could not allocate memory for tree node value.
Cause: Unable to allocate memory for a tree node value.
Action: Try executing the application when the system is less heavily loaded. If
the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-47341: There are too many nodes for the tree.
Cause: Only MAX-SIGNED-4-BYTE nodes, both current and deleted, are
permitted in a tree.
Action: Decrease the number of nodes placed in the tree. If constantly adding and
removing nodes, you might need to clear and re-populate the tree.
Level: 99
Trigger: ON-ERROR
FRM-47342: Could not allocate memory for tree query text.
Cause: Unable to allocate memory for the tree query text.
Action: Try executing the application when the system is less heavily loaded. If
the problem persists, contact Oracle Support Services.
Level: 99
Trigger: ON-ERROR
FRM-47343: Invalid node ID specified for hierarchical tree item %s
Cause: A hierarchical tree built-in was invoked on a hierarchical tree item, but the
node ID passed to the built-in was not valid for the tree item.
Action: Specify a valid node ID.
Level: 99
Trigger: ON-ERROR
FRM-47500: Failed to register database event %s
Cause: Attempt to register a database event failed
Action: Check the event attributes on the database side
Level: 5
Trigger: ON-ERROR
FRM-47501: Invalid event id
Cause: Invalid event id
Action: Check the event id
Level: 99
Trigger: None
FRM-47502: Invalid event property
Cause: Invalid event property
Action: Check the event event property
Forms Error Messages
D-95
Level: 5
Trigger: ON-ERROR
FRM-47700: Failed to start the JVM.
Cause: An error occured while attempting to start the inprocess JVM.
Action: Make sure that jvm libraries can be located by the runtime process
Level: 99
Trigger: ON-ERROR
FRM-47800: Unable to communicate with the JVM Controller: %s.
Cause: Unable to communicate with the JVM Controller
Action: JVM Controller, to which runform is connected, might be down. Contact
your system administrator.
Level: 99
Trigger: ON-ERROR
FRM-50000: Value is too long.
Cause: You entered a value which contains too many bytes or characters for the
item.
Action: Enter a shorter value.
Level: 15
Trigger: ON-ERROR
FRM-50001: Acceptable characters are a-z, A-Z, and space.
Cause: You entered an unacceptable character into the item.
Action: Enter a character from a-z, A-Z, or a space.
Level: 15
Trigger: ON-ERROR
FRM-50002: Month must be between 1 and 12.
Cause: You entered an invalid month value in a date field.
Action: Enter a month value from 1 (for January) to 12 (for December).
Level: 15
Trigger: ON-ERROR
FRM-50003: Year must be in proper range.
Cause: You entered a year that is not valid for the applicable format mask year
element.
Action: Enter a valid year. For most format mask year elements, a number
between 0 and 9999 is acceptable. For signed format mask year elements, a
number between -4712 and -1 may also be specified.
Level: 15
Trigger: ON-ERROR
FRM-50004: Day must be between 1 and last of month.
Cause: You entered an invalid day.
Action: Enter a valid day. For April, for example, enter a number between 1 and
30.
Level: 15
Trigger: ON-ERROR
FRM-50006: Legal characters are 0-9 + and -.
Cause: You entered an unacceptable character in a number item.
Action: Enter a valid number. A valid number has digits 0 through 9. A number
may be preceded by a plus (+) or minus (-) sign. If the message allows it, a number
may contain one decimal point at any location, except before the sign.
Level: 15
Trigger: ON-ERROR
FRM-50007: Too many digits after decimal point.
Cause: You entered a number with 3 or more decimal digits after the decimal
point in an item with the MONEY or RMONEY data type.
Action: Re-enter a valid number.
Level: 15
Trigger: ON-ERROR
FRM-50009: Too many decimal points.
Cause: You entered a number that contains two or more decimal points, or you
have entered a number that contains a decimal point in an item that requires a
whole (non-decimal) number.
Action: Enter a number with no more than one decimal point. If you have used
only one decimal, remove the decimal and the decimal part of the number.
Level: 15
Trigger: ON-ERROR
FRM-50010: Money format is [+-]9999999.99
Cause: You entered an invalid value in a MONEY or RMONEY item.
Action: Enter a valid value. This value should have zero or dollar digits, followed
by a decimal and two cents digits. The entire number can be preceded by a plus
(+) or a minus (-) sign.
Level: 15
Trigger: ON-ERROR
FRM-50011: Not a valid month name.
Cause: You entered an invalid month name in a date field.
Action: Enter a valid month name. Oracle Forms recognizes the first three
characters of a month name. For example, JAN stands for January, JUN for June.
Level: 15
Trigger: ON-ERROR
FRM-50012: Date must be entered in a format like %s.
Cause: You entered an invalid or incorrectly formatted date.
Action: Re-enter the date in the requested format.
D-97
Level: 15
Trigger: ON-ERROR
FRM-50013: Plus or minus must be in first position.
Cause: You entered the plus or minus sign in the wrong position.
Action: Retype with the plus or minus sign in the first position.
Level: 15
Trigger: ON-ERROR
FRM-50014: Bad exponent.
Cause: You entered an exponent in an item that does not accept exponents.
Action: Enter a value without an exponent.
Level: 15
Trigger: ON-ERROR
FRM-50016: Legal characters are 0-9 - + E .
Cause: You entered an unacceptable character in a number item.
Action: Enter a valid number. A valid number has digits 0 through 9. A number
may be preceded by a plus (+) or minus (-) sign. If the message allows it, a number
may contain one decimal point at any location, except before the sign. You can use
an E to specify scientific notation.
Level: 15
Trigger: ON-ERROR
FRM-50017: Hour must be between 0 and 23.
Cause: You entered an invalid hour.
Action: Enter a valid hour. Oracle Forms records time on a 24-hour basis.
Level: 15
Trigger: ON-ERROR
FRM-50018: Minutes must be between 00 and 59.
Cause: You entered an invalid minute value.
Action: Enter a valid minute value.
Level: 15
Trigger: ON-ERROR
FRM-50019: Seconds must be between 00 and 59.
Cause: You entered an invalid value.
Action: Enter a value between 00 and 59.
Level: 15
Trigger: ON-ERROR
FRM-50020: Missing exponent.
Cause: You failed to enter an exponent.
Action: Enter an exponent.
Level: 15
D-98 Forms Services Deployment Guide
Trigger: ON-ERROR
FRM-50021: Date must be entered in a format like %s.
Cause: You entered an invalid or incorrectly formatted date.
Action: Re-enter the date in the requested format.
Level: 15
Trigger: ON-ERROR
FRM-50022: Time must be entered in a format like %s.
Cause: You entered an invalid or incorrectly formatted time.
Action: Re-enter the time in the requested format.
Level: 15
Trigger: ON-ERROR
FRM-50023: Date must be entered in a format like %s.
Cause: You entered an invalid or incorrectly formatted date.
Action: Re-enter the date in the requested format.
Level: 15
Trigger: ON-ERROR
FRM-50024: Space are allowed in leading positions only.
Cause: You entered spaces intermixed with data.
Action: Re-enter data with no spaces intermixed.
Level: 15
Trigger: ON-ERROR
FRM-50025: Date/time must be entered in a format like %s.
Cause: You entered an invalid or incorrectly formatted date and time.
Action: Re-enter the date and time in the requested format.
Level: 15
Trigger: ON-ERROR
FRM-50026: Date must be entered in a format like %s.
Cause: You entered an invalid or incorrectly formatted date.
Action: Re-enter the date in the requested format.
Level: 15
Trigger: ON-ERROR
FRM-50027: Invalid format mask for given datatype.
Cause: The format mask you assigned to a text item is incompatible with the data
type of the text item.
Action: Assign a new format mask to the text item. For more information, refer to
help on <a href="../../designing_forms/items/f500842.html">About Formatting
Text Item Values with Format Masks</a>.
Level: 15
Trigger: ON-ERROR
Forms Error Messages
D-99
D-100
FRM-91127: fatal error in runtime process: invalid directory name specified for
environment variable %s
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-91129: fatal error in runtime process: no value specified for required
environment variable %s
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-91130: fatal error in runtime process: timezone file %s is missing
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-91131: fatal error in runtime process: timezone file %s not loaded - required
memory unavailable
Cause: The timezone file could not be loaded. This probably indicates insufficient
swap space.
Action: Retry the application when the system is less heavily loaded.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-91132: fatal error in runtime process: invalid data in timezone file %s
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-91135: fatal error in runtime process: message file %s is missing
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Forms Error Messages D-101
D-102
Trigger: None
FRM-92040: internal error: cannot find Java class
Cause: The Forms server requested a Java class by specifying a numeric
"handlerClassId", and the Forms Java client found an entry for the specified
handlerClassId in the registry. However, the Java class that was specified by the
registry entry could not be found.
Action: Examine the stack trace that accompanies this message. If the stack trace
indicates a possible cause (e.g. a configuration problem), correct it. If the problem
persists, contact Oracle Support Services.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-92050: fatal error: cannot connect to the server: %s:%s
Cause: An attempt was made to connect to the Forms server. The serverURL
applet parameter was not specified, so Forms attempted to connect to the specified
host machine, on the specified port. (These are derived from the serverHost and
serverPort applet parameters, if specified). However, an unexpected Exception
was encountered. This message appears when there is no message that gives a
more specific reason for the connection failure.
Action: Examine the stack trace that accompanies this message. If the stack trace
indicates a possible cause, correct it. If the problem persists, contact Oracle
Support Services.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-92052: fatal error: cannot connect to the server at URL %s
Cause: An attempt was made to connect to the Forms server, at the specified URL.
(This is derived from the serverURL applet parameter). However, an unexpected
Exception was encountered. This message appears when there is no message that
gives a more specific reason for the connection failure.
Action: Examine the stack trace that accompanies this message. If the stack trace
indicates a possible cause, correct it. If the problem persists, contact Oracle
Support Services.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-92060: fatal error: cannot connect to the server: bad machine specification:
%s:%s
Cause: An attempt was made to connect to the Forms server. The serverURL
applet parameter was not specified, so Forms attempted to connect to the specified
host machine, on the specified port. (These are derived from the serverHost and
serverPort applet parameters, if specified). However, the format of the host/port
combination was invalid.
Action: Correct the syntax of the serverHost and/or the serverPort applet
parameter, or specify a valid value for the serverURL applet parameter.
D-104
FRM-92104: A network error or server failure has occurred. The request was sent to
the wrong application server (not the one which created the session). The Forms
client has attempted to migrate the session %s time(s) without success. You will
need to restart your application.
Cause: The Forms Java client attempted to communicate with the Forms server.
The indicated number of attempts were made, but on each attempt, the request
was sent to the wrong application server (not the one which created the session).
This probably indicates a problem with the network, or with the application server
that was hosting the Forms server that initially created the session, or with the
server machine that was hosting the application server.
Action: Correct the network problem (if any), or restart the application server or
reboot the server host machine (if necessary).
Appears: Java console, alert
Level: 99
Trigger: None
FRM-92110: New passwords do not match. They must be identical. Password change
failed.
Cause: In the Change Password dialog, the new password and the retyped new
password do not match.
Action: Retry the Change Password dialog, and correctly type and retype the new
password.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-92120: Fatal error: registry file %s is missing.
Cause: The Forms Java client was unable to read the registry file at the specified
URL (on the Forms server machine).
Action: The system administrator should ensure that the registry file exists and is
readable.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-92150: Fatal error: web client version is too new.
Cause: The version of the client is newer than the version of the Server.
Action: The system administrator should ensure that the Forms product is
correctly installed on the Forms server machine.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-92160: Fatal error: web client version is too old.
Cause: The version of the client is older than the version of the Server.
Action: The system administrator should ensure that the Forms product is
correctly installed on the Forms server machine.
D-106
Cause: An invalid value was specified for the colorScheme applet parameter.
Action: The system administrator should ensure that a valid value was specified
for the colorScheme applet parameter.
Appears: Java console, applet status window
Level: 99
Trigger: None
FRM-92220: access to system clipboard denied
Cause: The system clipboard is locked by some other application. This generally
indicates a problem with the other application. Note: If the allowAlertClipboard
applet parameter is set to 'false', this message appears only on the Java console.
Action: Determine which application is locking the system clipboard, and
terminate it (or terminate the action that's locking the clipboard). Then, if possible,
correct the application so that it does not erroneously lock the system clipboard.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-92410: EndUserMonitoring initialization has failed. Verify that %s (specified
by the applet parameter %s) is a valid URL.
Cause: EndUserMonitoring initialization failed, probably due to an invalid URL
specified by the specified applet parameter (typically the EndUserMonitoringURL
parameter). The applet parameter was ignored; EndUserMonitoring was then
disabled and execution continued.
Action: The system administrator should ensure that a valid URL was specified
for the specified applet parameter. If that does not solve the problem, examine the
stack trace that accompanies this message. If the stack trace indicates a possible
cause, correct it. If the problem persists, contact Oracle Support Services.
Appears: Java console
Level: 99
Trigger: None
FRM-92411: EndUserMonitoring has failed, and will be disabled.
Cause: EndUserMonitoring was enabled, but a subsequent attempt to send a
message to the EndUserMonitoring monitor encountered an unexpected
Exception. EndUserMonitoring was then disabled, and execution continued.
Action: Examine the stack trace that accompanies this message. If the stack trace
indicates a possible cause, correct it. If the problem persists, contact Oracle
Support Services.
Appears: Java console
Level: 99
Trigger: None
FRM-92412: failure to send EndUserMonitoring data
Cause: EndUserMonitoring was enabled, but a subsequent attempt to send data
to the EndUserMonitoring monitor was unsuccessful. Execution continued.
Action: If the problem persists, contact Oracle Support Services.
D-108
Cause: The specified thread (in the Forms Java client) was interrupted while
waiting for a message from the Forms server. This message identifies the thread,
for diagnostic purposes. A fatal error subsequently occurs.
Action: No action is required for this message. (But action may be required for the
subsequent fatal error).
Appears: Java console
Level: 99
Trigger: None
FRM-92450: Thread %s has been interrupted while waiting for a dialog to appear.
Cause: The specified thread was starting a dialog, and was interrupted while
waiting for a dialog to appear. The wait was restarted.
Action: No action is required.
Appears: Java console
Level: 99
Trigger: None
FRM-92460: Thread %s has been interrupted while waiting for the LOV data
fetching thread to die.
Cause: The specified thread had been fetching data for an LOV, but the end user
accepted or canceled the LOV, so the thread requested a graceful death. But it was
interrupted while the request was underway.
Action: No action is required.
Appears: Java console
Level: 99
Trigger: None
FRM-92470: unable to load image %s for image item
Cause: A requested image could not be loaded. A default image (indicating that
the load failed) was substituted, and execution continued."
Action: If the error message specifies the name of the image file, verify that it
exists, and is readable, and is in a valid image format.
Appears: Java console
Level: 99
Trigger: None
FRM-92471: unable to load image %s for iconic button item
Cause: A requested image could not be loaded. A default image (indicating that
the load failed) was substituted, and execution continued."
Action: If the error message specifies the name of the image file, verify that it
exists, and is readable, and is in a valid image format.
Appears: Java console
Level: Warning
Trigger: None
FRM-92480: Property %s: specified value has caused %s.
D-110
Cause: An attempt to set the value of an item property failed because the value
was not of the proper type. The property was left unchanged, and execution
continued. This error most commonly occurs when the application executes the
SET_CUSTOM_PROPERTY built-in.
Action: Correct the value that is being passed to the SET_CUSTOM_PROPERTY
built-in.
Appears: Java console
Level: 99
Trigger: None
FRM-92522: forcing use of the native HTTP implementation
Cause: The useURLConnection applet parameter was specified as 'true' or 'yes'.
Action: No action is required.
Appears: Java console
Level: 99
Trigger: None
FRM-92523: forcing use of the Forms HTTP(S) implementation
Cause: The useURLConnection applet parameter was specified as 'false' or 'no'.
Action: No action is required.
Appears: Java console
Level: 99
Trigger: None
FRM-92530: error closing socket: %s
Cause: An unexpected Exception was encountered while attempting to close a
socket. Execution continued.
Action: No action is required.
Appears: Java console
Level: 99
Trigger: None
FRM-92540: reallocating output buffer for native HTTP implementation
Cause: The native HTTP 'write' method was requested to write a block of data
larger than its current output buffer. The buffer was reallocated, and execution
continued.
Action: No action is required.
Appears: Java console
Level: 99
Trigger: None
FRM-92550: negative content-length on a response to a GET to URL %s
Cause: The Forms Java client issued a GET request to the Forms servlet. The result
was a response with negative content-length. The fatal error FRM-92052 will
subsequently appear.
Action: No action is required for this message. (But action may be required for the
subsequent fatal error).
Appears: Java console
Level: 99
Trigger: None
FRM-92551: negative response (%s) to a read on behalf of a GET to URL %s
Cause: The Forms Java client issued a GET request to the Forms servlet. The result
was a negative response. The fatal error FRM-92052 will subsequently appear.
Action: No action is required for this message. (But action may be required for the
subsequent fatal error).
Appears: Java console
Level: 99
Trigger: None
FRM-92572: Forms HTTP connect has failed - giving up after %s attempts.
Cause: A Forms HTTP connect failed. The fatal error FRM-92050 (or possibly
FRM-92060) will subsequently appear.
Action: No action is required for this message. (But action may be required for the
subsequent fatal error).
Appears: Java console
Level: 99
Trigger: None
FRM-92574: Forms HTTP read has failed: %s
Cause: An unexpected Exception was encountered while attempting a native
HTTP 'read'.
Action: Examine the stack trace that accompanies this message. If the stack trace
indicates a possible cause, correct it. If the problem persists, contact Oracle
Support Services.
Appears: Java console
Level: 99
Trigger: None
FRM-93110: No Forms Servlet configuration file is specified.
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93111: Cannot find Forms Servlet configuration file %s.
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
D-112
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93130: No base HTML file is specified.
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93131: Cannot find base HTML file %s.
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93132: error reading base HTML file %s
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93150: The following restricted parameters cannot be specified in the URL: %s
Cause: The indicated parameters were specified by the end user (in a Forms
Servlet URL).
Action: Remove the indicated parameters from the URL and resubmit.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93151: Restricted characters cannot be specified in the URL
Cause: Invalid characters were specified by the end user (in a Forms Servlet URL).
Action: Remove the invalid characters from the URL and resubmit.
Appears: Java console, alert
Level: 99
D-114
Trigger: None
FRM-93154: The Forms Servlet is not allowing new connections.
Cause: The system administrator has disabled new connections to the Forms
Servlet.
Action: No action is required.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93156: The Forms Servlet is unable to contact the Forms Load Balancing Server
at %s:%s.
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93218: fatal error reading client request content
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93230: fatal error creating the HTTP session
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93240: Multiple Forms applications cannot share an HTTP session.
Cause: Either (1) the user selected File, then New, then Browser Window (or
Ctrl+N) in Internet Explorer while the servlet session was being tracked using
cookies, or else (2) the Forms application was configured incorrectly.
Action: In case (1), select File, then New, then Browser Window (or Ctrl+N) in an
Internet Explorer window that is not running a Forms application, or start a
second instance of Internet Explorer. Otherwise, contact your system
administrator.
Appears: Java console, alert
Level: 99
Trigger: None
Trigger: None
FRM-93543: cannot connect to runtime process: unable to get I/O streams from
newly created runtime process
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93550: cannot connect to runtime process: no response from newly created
runtime process
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93552: cannot connect to runtime process: Newly created runtime process has
terminated abnormally.
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93553: cannot connect to runtime process: unable to establish a socket
connection to newly created runtime process
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93558: cannot connect to runtime process: error reading data from newly
created runtime process
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
D-118
Level: 99
Trigger: None
FRM-93834: Test cookie not found.
Cause: The test cookie was not found.
Action: No action is required.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93840: Proctest: Warning: nProcs configuration parameter is nonnumeric using 1.
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93841: Proctest: Process test starting with %s processes.
Cause: The Proctest command started.
Action: No action is required.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93842: Proctest: Creating process %s.
Cause: The Proctest command started creating a runtime process.
Action: No action is required.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93843: Proctest: Failure to create process %s - aborting test.
Cause: A fatal error occurred in the Forms server, which will require the attention
of your system administrator.
Action: Contact your system administrator.
Appears: Java console, alert
Level: 99
Trigger: None
FRM-93844: Proctest: Connecting to process %s.
Cause: The Proctest command started connecting to a newly created runtime
process.
Action: No action is required.
D-120
D-122
Index
A
alias, Forms servlet and, 13-11
aliases, Forms servlet, web.xml file and, 13-2
applet
parameters, 4-14
application
environment file, Oracle Forms Services, 13-4
server, 2-4
application deployment
overview, 3-7
steps, 3-8
Authorization and Access Enforcement, 11-3
B
Background, 4-38
background parameter, 4-14
base HTML file
creating, C-10
base.htm, C-10
description, C-10
example, C-11
baseHTML files
creating, C-10
list of, 3-6
parameters and variables, C-10
selecting, 3-14
basejpi.htm
description, C-10
basejpi.htm File
sample default, C-12
basejpi.htm file, Oracle Forms and, 13-5
boilerplate objects/images, 14-4
built-in event, 12-7
C
CGI, Forms upgrade and, 13-4
client browser support
about, 3-13
client resource requirements, 14-4
client tier, 2-4
CodeBase, 4-40
codebase parameter, 4-13
codebase parameter, Oracle Forms and, 13-10
D
data segments, 14-4
data stream compression, 14-8
database tier
description, 2-4
default behavior, 3-10
default configuration parameters
allowAlertClipboard, 4-15
allowNewConnections, 4-15
applet_name, 4-15
archive, 4-13
array, 4-15
baseHTML, 4-13
baseHTMLjpi, 4-14
buffer_records, 4-15
clientDPI, 4-15
connectionDisallowedURL, 4-15
debug, 4-12
debug_messages, 4-16
defaultcharset, 4-16
digitSubstitution, 4-16
disableMDIScrollbars, 4-17
disableValidateClipboard, 4-17
enableJavascriptEvent, 4-17
EndUserMonitoringEnabled, 4-12
EndUserMonitoringURL, 4-12
envFile, 4-11
escapeparams, 4-17
form, 4-11
formsMessageListener, 4-17
heartBeat, 4-17
highContrast, 4-17
host, 4-12
HTMLafterForm, 4-14
HTMLbeforeForm, 4-14
Index-1
HTMLbodyAttrs, 4-14
HTMLdelimiter, 4-17
JavaScriptBlocksHeartBeat, 4-17
jpi_mimetype, 4-13
legacy_lifecycle, 4-18
log, 4-12
maxRuntimeProcesses, 4-18
networkRetries, 4-18
obr, 4-18
otherparams, 4-18
pageTitle, 4-14
port, 4-12
prestartIncrement, 4-18
prestartInit, 4-18
prestartMin, 4-19
prestartRuntimes, 4-19
prestartTimeout, 4-19
query_only, 4-19
quiet, 4-19
record, 4-12
recordFileName, 4-19
restrictedURLchars, 4-19
restrictedURLparams, 4-19
serverApp, 4-19
ssoCancelUrl, 4-11
ssoDynamicResourceCreate, 4-11
ssoErrorUrl, 4-11
ssoMode, 4-11
ssoProxyConnect, 4-11
term, 4-19
tracegroup, 4-12
USERID, 4-11
default environment variable
CLASSPATH, 4-23
FORM_PATH, 4-23
FORMS_MESSAGE_ENCRYPTION, 4-24
FORMS_RESTRICT_ENTER_QUERY, 4-23
LD_LIBRARY_PATH, 4-23
LD_PRELOAD, 4-24
ORACLE_HOME, 4-23
ORACLE_INSTANCE, 4-23
PATH, 4-23
TNS_ADMIN, 4-23
WEBUTIL_CONFIG, 4-23
Default formsweb.cfg File
sample, C-2
Default jvmcontroller.cfg
sample file, C-19
Default webutilbase.htm
sample file, C-22
default webutilbase.htm
description, 3-7
Default webutil.cfg
sample file, C-19
default webutil.cfg
description, 3-7
Default webutiljpi.htm
sample file, C-24
default webutiljpi.htm
description, 3-7
Index-2
default.env
Solaris sample, C-7
Windows sample default, C-6
default.env file, Oracle Forms Services, 13-2, 13-4
Deploying Icons and Images Used by Forms
Services, 4-33
deployment
Forms to the Web, 3-1
disable MENU_BUFFERING, 14-9
duration event, 12-6
E
encoded program units, 14-4
Enterprise Manager
Fusion Middleware Control, 4-1
Environment Configuration page
accessing, 4-21
default environment variables, 4-22
deleting an environment configuration file, 4-21
duplicating an environment configuration
file, 4-21
managing environment variables, 4-22
viewing an environment configuration file, 4-22
environment file, Oracle Forms Services
application, 13-4
event bundling, 14-5
event details, tracing, 12-8
events, tracing, 12-6
F
Feature Restrictions for Forms Applications on the
Web, 4-40
file
basejpi.htm, 13-5
default.env, 13-4
default.env, Oracle Forms Services, 13-2
forms.conf, 13-2
formsweb.cfg, 13-4
ifcgi60.exe, Oracle9iAS Forms, 13-4
jserv.properties
Oracle Forms Services and, 13-2
Forms, 12-1
Forms CGI
description, 13-4
upgrading, 13-4
Forms Home Page
accessing, 4-2
Forms Menu Options, 4-3
Forms Integration
Web Cache, 14-10
Forms Java EE Application Deployment
Descriptors, 3-4
Forms Listener, 2-5
Forms Listener Servlet, 2-5
HTTPS, 5-9
server requirements, 5-9
Forms Runtime Diagnostics, 12-1
Forms Runtime Engine, 2-5, 2-6
Forms Services
monitoring events, 14-2
monitoring instances, 14-1
Web Runtime Pooling, 14-2
Forms Services resource requirements, 14-4
Forms Servlet, 5-1
Forms servlet aliases, web.xml file and, 13-2
Forms Trace, 3-4
forms.conf, C-17
default sample, C-17
forms.conf file, 13-2
FormsServlet.initArgs, 4-6
formsweb.cfg, 3-4
example, C-2
formsweb.cfg file
Forms CGI and, 13-4
FRD, 12-1
frmservlet, Oracle Forms and, 13-8
ftrace.cfg, 3-4
H
height parameter, 4-11
HTML-based Enterprise Manager,
HTTP Listener, 5-1
Configuration Files, 3-5
HTTPD, 5-6
HTTPS
Forms Listener Servlet, 5-9
4-1
I
Icons
deploying, 4-35
icons
creating Jar files for, 4-38
search path, 4-39
ifcgi60.exe file, 13-4
imageBase, 4-13
Images, 4-33
Background, 4-38
SplashScreen, 4-38
images
creating Jar files for, 4-38
search paths, 4-39
images, deploying, Oracle Forms and, 13-10
Inline IME Support, 4-41
in-process JVM, definition, 10-5
integrated calls, Oracle Forms to Reports, 13-10
integration
Forms and Reports information, 9-9
J
JAR files, caching, 14-8
Java client resource requirements, 14-4
Java plug-in, 14-7, B-1
Java plug-ins, Oracle Forms and, 13-5
JavaScript Integration, Oracle Forms and,
applet parameter, 6-4
JavaScript calls, 6-2
jpi_classid, 4-13
jpi_codebase, 4-13
jpi_download_page, 4-13
jserv.properties file
Oracle Forms and, 13-2
Oracle Forms Listener Servlet and, 13-8
JVM controllers
about multiple, 10-4
accessing log files, 10-18
default logging properties, 10-17
deleting a log file for a JVM controller, 10-18
JVM pooling error messages, 10-19
logging management, 10-17
specifying log file directory location, 10-18
JVM Pooling
configuration file settings, 10-15
design-time considerations, 10-6
examples, 10-5
managing JVM controller, 10-9
managing JVM Controller with EM
Starting and Stopping JVM Controllers, 10-14
managing JVM Controllers from the command
line, 10-7
overview, 10-1
re-importing Java Code, 10-6
sharing static variables, 10-6
thread handling, 10-1
key mapping
enabling, 4-42
fmrweb.res, 4-42
L
Language Detection, 4-40
language detection
multi-level inheritance, 4-42
overview, 4-41
launching, 4-1
leveraging, 11-3
listener servlet, Oracle Forms entry in web.xml, 13-6
Listener, Forms6i, description, 13-7
load balancing
Oracle Forms and, 13-9
Load Balancing WebLogic Server, 5-1
log parameter for tracing, 12-4
logging capabilities, 12-11
logo, 4-14
lookAndFeel parameter, 4-14
lservlet, Oracle Forms and, 13-8
M
metrics logging
enabling, 12-11
middle tier, 2-4
6-1
Index-3
N
network
reducing bandwidth, 14-8
network latency, 14-5
network packets, 14-5
network usage, 14-4
O
ODL, 12-10
optimizing Forms Services, 14-1
Oracle Forms Services, Components, 2-5
Oracle Forms Services, image, 2-4
Oracle Forms Services,Architecture, 2-4
Oracle Fusion Middleware, 2-3
Oracle HTTP Listener Configuration Files, 3-5
Oracle Identity Management Infrastructure, 11-3
Oracle Internet Directory, 9-1, 11-1
dynamic resource creation, 11-2
options for configuring, 11-3
Oracle Portal, Forms, Reports and Discoverer
11g, 2-3
Oracle Real Application Clusters, 2-2
Oracle Single Sign On
accessing from Forms, 9-8
Oracle Single Sign-On
authentication flow, 9-2
database password expiration, 9-5, 11-3
dynamic directives, 9-4
enabling for an application, 9-5
Oracle Single Sign-On Server, 9-1
oracle.forms.servlet.ListenerServlet, Oracle9iAS
Forms and, 13-8
P
parameter options
specifying in URL, 12-4
parameters, 3-9
Performance Event Collection Services (PECS),
performance tools, 12-1
Performance/Scalability Tuning, 5-1
point event, 12-6
privileges
for classes of users, 11-1
protected, 11-2
R
RAD entries, 11-1
Registry.dat
adding a parameter value, 4-34
changing parameter value, 4-33
deleting a parameter value, 4-34
registry.dat, C-18
sample default, C-18
Registry.dat, managing, 4-33
resources, 11-2
dynamic directives, 11-2
resources, minimizing
Index-4
12-1
S
sample file
base.htm, C-11
sample values, 3-9
ScriptAlias directive, Oracle9iAS Forms and, 13-4
separateFrame parameter, 4-14
serverHost parameter, Oracle Forms Services
and, 13-6
serverPort parameter, Oracle Forms Services
and, 13-6
serverURL, 4-19
serverURL parameter
application deployment in Oracle Forms
Services, 13-7
static HTML files in Oracle Forms Services, 13-6
servlet aliases, Forms, web.xml file and, 13-2
servlet log file
location, 12-12
sample output, 12-13
servlet log file location, 12-13
single sign-on, 9-1
Special Key Mappings, 4-43
specifying, 3-9
SplashScreen, 4-38
splashScreen parameter, 4-15
SSL
configuring Forms Services, 5-10
configuring with a load balancing router, 5-10
ssoCancelUrl, 9-8
ssoDynamicResourceCreate
about, 9-7
ssoErrorURL, 9-8
ssoMode
about, 9-6, 9-7
ssoMode parameter
example for enabling a particular application, 9-7
startup time, 14-6
Sun Java Plug-In
supported configurations, B-1
Sun's Java Plug-in, 14-7
template HTML
considerations for static, 3-12
template HTML files
considerations, 3-12
creating, 4-32
Test Form
securing, 4-30
thread handling
Forms Runtime Process and JVM, 10-1
timers, tuning, 14-9
trace data
converting to XML, 12-6
trace event details, 12-8
traceable events, 12-6
tracegroup parameter for tracing, 12-4
translate utility for tracing, 12-6
tuning
application size, 14-10
boilerplate items, 14-8
disable MENU_BUFFERING, 14-9
MENU_BUFFERING, 14-9
promote similarities, 14-8
reduce boilerplate objects, 14-8
reduce navigation, 14-8
reducing network bandwidth, 14-8
screen draws, 14-8
timers, 14-9
using Jar files, 14-7
W
Web Cache
configuring session binding, 14-10, 14-11
Forms integration, 14-10
testing setup, 14-11
Web Configuration Page
accessing, 4-4
common tasks, 4-4
creating a configuration section, 4-6
deleting a configuration section, 4-8
duplicating a named configuration, 4-7
editing a configuration description, 4-7
managing parameters, 4-8
parameter descriptions, 4-9
WebLogic Managed Server Process, 5-1
WebUtil Configuration Files, 3-7
web.xml, C-14
Oracle Forms Services and, 13-2
web.xml File
default sample, C-15
width parameter, 4-11
Z
zone.properties
file, Oracle Forms Listener Servlet and,
13-8
U
upgrading
application modules, 13-3
CGI to Forms Servlet, 13-4
Forms 6i Listener to Forms Listener Servlet, 13-7
items, 13-1
load balancing, 13-9
recommendations, 13-3
static HTML start files, 13-5
tasks, 13-2
validating Forms Services, 13-11
Upload/Translate Utility
starting, 12-6
URL escape sequences, 3-11
URL parameter option for tracing, 12-4
User Sessions page
accessing, 4-24
customizing your view, 4-27
disabling new Forms user sessions, 4-26
disabling tracing, 4-26
enabling new Forms user sessions, 4-25
enabling tracing, 4-26
field descriptions, 4-25
searching for user sessions, 4-27
sorting list of sessions, 4-27
terminating Forms user sessions, 4-26
viewing database sessions, 4-27
viewing trace logs, 4-27
Index-5
Index-6