N Oracle Forms and Oracle E-Business Suite Support
This appendix provides a detailed discussion of the support available for the accurate monitoring of Oracle E-Business Suite (EBS) and Oracle Forms based applications. For more information, contact your Oracle representative.
Introduction
The monitoring support provided by RUEI has been verified against EBS R12. However, form names will be “incorrect" for older Forms versions (releases prior to 11.2).
By default, reported Forms names are derived from the Forms window tile based on the mapping uploaded through the configuration script. However, if the environment variable FORMS_RUEI_SEND_FORM_NAME is set, the Forms server will send the Forms module name along with the window creation message.
Environment information is set in the default.env
file. You can use another file name, but this must be specified in the formsweb.cfg
file. This has the following benefits:
-
It is possible to distinguish multiple Forms names within traffic that has identical window titles.
-
The creation of additional Forms does not require the re-running of the configuration script.
Apply the correct patch from the following table to extend your Oracle Forms environment to support sending of technical form names.
Table N-1 Forms Patches and Variables
E-Business Version | Forms Version | Forms Patch with RUEI Enablement | Forms Variable to Use |
---|---|---|---|
11i |
6.0.8 |
patch 16542522 |
FORMS60_RUEI_SEND_FORM_NAME |
12 |
10.1.2.3 |
patch 16784403 |
FORMS_RUEI_SEND_FORM_NAME |
12 |
11.1.2 |
Default functionality |
FORMS_RUEI_SEND_FORM_NAME |
Oracle Forms Support
Oracle Forms can be configured in two modes: servlet and socket. In servlet mode, a Java servlet (called the Forms Listener servlet) manages the communication between the Forms Java client and the OracleAS Forms services. In socket mode, the desktop clients access the Forms server directly. RUEI supports both servlet and socket mode. A detailed description of the operation and configuration of Oracle Forms in servlet and socket mode is available at the following location:
http://metalink.oracle.com/metalink/plsql/ml2_documents.showNOT?p_id=384241.1
See Checking Socket and Servlet Mode for information about verifying the mode in which Oracle Forms is configured.
Forms Only Customers
The information provided in this guide is relevant to all EBS customers. However, where information is specific to EBS or Forms-only customers, this is highlighted.
Working Within a Forms-Only Environment
Customers working within a Forms-only environment should pay particular attention to the issues highlighted in this section.
In order for RUEI to accurately report on EBS-based applications, it needs information about your production environment. In particular, it needs to map functional areas to reported names. As explained in Synchronizing RUEI With the EBS Production Environment, this is done through running the create_EBS_info.pl
Perl script. Customers within Forms-only environments are also recommended to run this script and upload the generated .txt
files within a .zip
file.
Manually Creating Functional Mappings
The create_EBS_info.pl
script uses a number of EBS database tables to retrieve information about the installation and configuration of your Oracle Forms instance. The exact database tables used are described in Database Tables.
However, the APPLSYS.FND_APPLICATION, APPLSYS.FND_APPLICATION_TL, APPLSYS.FND_FORM, APPLSYS.FND_FORM_TL and other tables used by the script do not exist in a Forms-only environment. Therefore, you can either rely on the default (template) mappings provided with RUEI (described later in this section), or you can specify the required mappings by creating the associated .txt
files manually.
When creating these files manually, the following tab-separated files are required:
-
EBS_formname2details.txt
: specifies a functional description for each form. Each line in the file should have the following format:formname
{TAB}form_description
For example:
ADSAPCRD Credit Card Expense Transaction Entry ADSAPPRC Procurement Card Transaction Entry ADSCONC Running Jobs ADSCONC Tax Locations ADSCSCRC Healthcare CC ADSMAILI Mail InformationADSRSETUP ADS Repurpose Setup ADSSOE Custom Order EntryADSSOE View Person Life Event Information AKDAPREG Application Module Parameters Registry
-
EBS_formname2appshort.txt
: specifies the short (3-letter) version of the application name of which each form is part. Each line in the file should have the following format:formname
{TAB}short_application_name
For example:
ADSAPCRD ads ADSAPPRC ads ADSCONC ads ADSCSCRC ads ADSMAILI ads ADSRSETUP ads ADSSOE ads AKDAPREG ak AKDATTRS ak AKDFLOWB ak
-
EBS_appsort2appname.txt
: specifies the mapping between the short (3-letter) application name and the full application name. It has the following format:short_application_name
{TAB}application_name
For example:
abm Activity Based Management (Obsolete) ad Applications DBA ads Applications Demonstration Services ads_dev ADS Development ahl Complex Maintenance Repair and Overhaul ahm Hosting Manager(Obsolete) ak Common Modules-AK alr Alert ame Approvals Management amf Fulfillment Services (Obsolete)
Be aware that the created configuration files must be uploaded for each required suite in a .zip
file. This may only contain non-empty .txt
files. In addition, all files must be in the root directory. That is, subdirectories are not permitted. It is important that you upload the correct configuration file for the required suite, and that it is based on the actual production environment. The procedure to update the configuration file is described in Synchronizing RUEI With the EBS Production Environment.
Relying on the Default (Template) Mapping
If manually creating the required mappings is not practical, you can simply rely on the default (template) mappings already configured within RUEI. While this approach provides an adequate level of reporting, it is subject to the following restrictions:
-
form_name
: normally this would be the 8-character technical name translated to a functional description. However, because this is not available, the 8-character technical name is reported instead. -
app
: normally this would be derived from the mapping file that connects the form name with the application. However, because this is not available, the first three letters of the form name are reported instead. -
application_name
: normally this would be derived from the mapping file. However, because this is not available, theapp
is reported instead.
Keeping Matching Information up-to-Date
Because Forms-only environments typically change over time, it is strongly recommended that you regularly review your mapping information. Be aware that the above restrictions will also apply to any forms that have been added to your environment since your last ran the create_EBS_info.pl
script or manually created the mapping files.
Memory Requirements for Forms-Based Environments
Be aware that the monitoring of Forms-based traffic requires significant amounts of memory. For example, the monitoring of 10,000 simultaneous Forms sessions would require approximately 10 GB of Collector memory. Therefore, it is recommended that you deploy the Collector monitoring Forms-based traffic as a remote Collector with at least 16 GB of RAM. Alternatively, if you are using a single-server deployment, the server should have at least 32 GB of RAM.
In addition, it is recommended that you review the level of system memory available to the Collector. For a single-server deployment with 24 GB of RAM, this should be set to 50%, while for a server with 32 GB of RAM, this should be set to 40%. Information about how to increase the amount of available Collector memory is available at the following location:
Verifying the Scope of Monitoring
Often the EBS software is configured to use a non-standard port, such as 8000. The port on which your EBS installation is running can be found by examining the login URL. This takes the following format:
https(s)://hostname
:portnumber
/OA_HTML/AppsLogin
Verify that the portnumber
is configured as one of the defined ports (these are described below). In addition, if a HTTPS port is specified, ensure that a copy of the web server's private SSL key is imported into the Collector system. See Checking Socket and Servlet Mode for information about how to identify the mode and port number. To verify the port number, follow the procedure described in Managing the Scope of Network Based Monitoring.
Creating EBS Suite Definitions
You can create suite definitions for EBS-based applications in the same way as for any other supported Oracle Enterprise architecture. The procedure to create suites is described in Working With Suites.
Note that for EBS suites that make use of Forms, select the Advanced section, and click the Forms tab. The suite overview changes to that shown in Figure N-1 appears.
Figure N-1 Advanced Suite Configuration Section

Description of "Figure N-1 Advanced Suite Configuration Section"
The use of these settings is explained in the following section.
Specifying the Tracking Technology
Within RUEI, session information is based on cookies. The cookies are used to connect hits to a specific visit. In general, the cookie is also connected to the user login page which allows RUEI to include a user name to all subsequent hits with the same cookie.
Session Tracking, Correlation Variable, and Session URL argument
The tracking mechanisms that should be specified for the Correlation variable and Session URL argument are best determined through a number of flow charts.
Forms Session Parameter
Figure N-2 shows how the Session parameter can be determined. If running in socket mode, this setting is not applicable. Otherwise, the Forms URL should be examined for an argument that provides a unique value for each Forms session. Typically, this argument is located after a semicolon or question mark character in the URL. For example, jsessionid
or JServSessionIdforms
. Note that if the specified parameter is not found in the URL, then the cookie is searched for it.
Correlation Variable
The Correlation variable allows the sessions (on TCP and socket mode) to be merged into one end-user session. Figure N-3 shows how the Correlation variable can be determined.
If unique client IP addresses are used, then this setting is not applicable. If running in socket mode, sessions are annotated with the value from the Correlation variable (available via "INDEX_INITIAL_CMDLINE") available on both HTTP and socket-mode traffic. For EBS environments, this will always include the icx_ticket
variable. For non-EBS environments, some other variable must be specified. On the HTTP layer, the variables are found in the query part of Forms-initializing calls, or in constructions such as gp1
=....&
gv1
=...
, where gp1
specifies the value name.
On the HTTP layer, you might observe the following:
/OA_HTML/frmservlet?…&gp15=icx_ticket&gv15=255. 184.210.99jE82BtqiYLHJ8T6-bLxTLw…
Alternatively:
/OA_HTML/frmservlet?…&env=NLS_LANG='AMERICAN_AMERICA'+…+icx_ticket='255.184.210.99.jE82BtqiYLHJ8T6-bLxTLw..'+…
Note that, on the Forms layer, the variable "INDEX_INITIAL_CMDLINE" can be found in the Collector log files. For example:
&Runform-001.INDEX_INITIAL_CMDLINE=server module=/oracle/r12/VIS12/apps/apps_st/appl/fnd/12.0.0/forms/US/FNDSCSGN fndnam=APPS config='VIS12' icx_ticket='255.184.210.99.jE82BtqiYLHJ8T6-bLxTLw..' resp='FND/APPLICATION_DEVELOPER' secgrp='STANDARD' start_func='FND_FNDPOMPO' other_params=…
Specifying the Forms Server Mode Timeout
The Forms socket mode setting enables you to prevent active socket-mode sessions being discarded by the Collector after they have been inactive for a few minutes. Note this setting is only relevant for Forms socket mode. It is set to 10 minutes by default.
Synchronizing RUEI With the EBS Production Environment
In order for RUEI to understand how the EBS frameworks are implemented within your environment, do the following:
Note:
This section is not relevant for where Forms Name Reporting functionality is enabled. For more informtion, see Forms Name Reporting. It is anticipated that all EBS/Forms customers will enable forms name reporting functionality at some point, especially as it has been backported for earlier releases.
Note:
If you receive warning or error messages while running the create_EBS_info.pl
script, see Create_EBS_info.pl Script Reports FRM-91500 Error for important troubleshooting information.
Example N-1 The Perl Interpreter
By default, the Perl interpreter is not shipped with Microsoft Windows. It is often installed as part of the Oracle database, as well as some other Oracle products. To locate the Perl interpreter on a Microsoft Windows system, select Start > Find > Find for files > perl.exe
. Use the located executable to run the configuration script.
When no Perl executable is available, you can run the DB
part of the above query from the RUEI system (providing that a connection to the EBS database from it is possible). This can be achieved by using the -part=DB
option with a connectstring
that refers to the APPS scheme in the EBS database on the remote host. Note that only the database-based EBS customizations are generated (and not the JTT/Java-based customizations or Forms-based changes).
Note that if you skip running the create_EBS_info.pl
script, RUEI will still report on EBS and Forms activities. However, the reported names will not reflect your customizations. For example, responsibilities will be reported using the responsibility-key instead of the responsibility name, and Forms will be reported using the formname instead of a functional description of the form. This may be acceptable in environments with little customization.
Checking Socket and Servlet Mode
This section presents a description of how to check whether the Oracle Forms server is running in servlet or socket mode.
Oracle Applications Release 12
Note Oracle Application Release 12 is, by default, configured to run in servlet mode.
Use the following command:
$ grep connectMode FORMS_WEB_CONFIG_FILE
The current connection mode is reported:
connectMode=servlet
Alternatively, use the following command:
$ grep frmConnectMode CONTEXT_FILE
The current connection mode is reported:
<forms_connect oa_var="s_frmConnectMode">servlet</forms_conr....
Oracle Applications Release 11
Note Oracle Application Release 11 is, by default, configured to run in socket mode.
Use the following command:
$ grep connectMode FORMS60_WEB_CONFIG_FILE
The current connection mode is reported:
connectMode=socket
Use the following command:
$ grep xsport FORMS60_WEB_CONFIG_FILE
The required port number is required:
xsport=9095
Alternatively, use the following command:
$ grep socket CONTEXT_FILE
The current connection mode is reported:
<forms_connect oa_var="s_frmConnectMode">socket</forms_conr....
Checking the HTML Source
Finally, you can also check the HTML source of the page used to launch the Oracle Forms application. To do so within Internet Explorer, select View, and then Source. This contains the connection mode, as shown in Figure N-4.
The relevant connection mode information is highlighted.
Hostnames and URL Prefixes
An EBS implementation, the EBS instance, can be identified with a hostname and, sometimes, a URL prefix. Generally, an EBS suite can be accessed in two ways: using only the hostname, or using the fully-qualified hostname (including the domain). Generally, you only need to specify the domain, without any specific URL prefix, and the application is accessed at the default location that is configured out-of-the-box.
In forms socket mode, the server-ip must be specified. In the case of multiple servers, each server-ip/port combination needs to be specified for the forms socket mode to work correctly.
Database Tables
The following EBS database tables are used by the create_EBS_info.pl
script to retrieve information about the customizations:
-
APPLSYS.FND_FORM_FUNCTIONS
Function_id, application_id.
Function_id is used to fill the
EBS_function_id2*.txt
files. -
APPLSYS.FND_FORM_FUNCTIONS
User_function_name.
-
APPLSYS.JDR_PATHS
Names and the tree structure.
Path_name is used to fill the
EBS_pathname2*.txt
files. -
APPLSYS.FND_APPLICATION
Application short name.
Application_name is used to fill the
EBS_appshort2*.txt
files. -
APPLSYS.FND_APPLICATION_TL
Application name
-
APPLSYS.FND_FORM
Form_name, application_id
Form_name is used to fill the
EBS_formname2*.txt
files. -
APPLSYS.FND_FORM_TL
User-form-name.
-
APPLSYS.FND_RESPONSIBILITY
Responsibility keys
-
APPLSYS.FND_RESPONSIBILITY_TL
Responsibility descriptions
-
APPLSYS.JDR_ATTRIBUTES
-
APPLSYS.FND_NEW_MESSAGES
The MESSAGE_NUMBER, MESSAGE_TEXT, and TYPE columns are used to populate the
EBS_msgid2details.txt
file.
To make the retrieval easier, the select
statements make use of the JDR_UTILS and JDR_MDS_INTERNAL packages.
Actions, Pages, and Objects
Each EBS framework needs to be analyzed to obtain the correct configuration in which all hits are classified as either object hits or action/page hits. Framework-specific considerations are described below.
OA
The OA framework is built using the M-V-C model (Model-View-Controller). Only the controller is relevant to RUEI, because that is the part that will be seen within the HTTP level. The controller decides internally to either show a specific page, or to redirect the visitor to another location that builds up the page. The redirects are recognized automatically; this is normal RUEI functionality.
Based on the URL parameters, the page name is defined (in a redirect situation, the URL of the redirected URL should be used, not the original URL with parameters of the previous page). Besides the controller, the framework also contains some fixed URLs (that by-pass the controller, such as OALogout.jsp
). These files are recognized together with the JTT-based files.
JTT
The JTT framework is built using the M-V-C model (Model-View-Controller). It differs from the OA framework definition in that there is not one controller for all applications, but one (or multiple) controllers per application. This means that more .jsp
files are involved, and that requires an investigation of all .jsp
files involved. A server-side analysis of the .jsp
files makes it possible to determine the application definition (based on the location of the .jsp
files).
Functional Errors
A default RUEI installation recognizes different types of errors, see Defining Translations for Content Messages. These are in the area of network and HTTP errors. In addition, predefined content messages are automatically provided for all standard FRM and message dictionary items (that is, messages with the prefix "APP_"). By default, only messages of type "Error" are reported as errors; all other message types (such as "Note" and "Hint") are reported as notifications. In the case of Oracle Forms traffic, the content messages specified are searched inside all readable text strings within individual forms element exchanges.
If you have created customizations to the message dictionary, it is recommended that you run the create_EBS_info.pl
script to merge them into your RUEI installation.
For operational reasons, message IDs (such as APP-FND-01702) are normalized (that is, leading zeros are ignored). This should taken into consideration when performing string comparisons.
Causes of Oracle Forms Errors
The errors that might occur during a Forms session can be caused by different layers:
-
Network errors: are reported in the same way as RUEI does for all applications.
-
HTTP server errors (such as 500, 404, and so on) are reported in the same way as all applications are in RUEI.
-
Forms servlet errors (servlet connection errors) are reported with their corresponding
ifError
code. These are internal communication errors that occur within the Forms framework.
Forms Name Reporting
By default, reported Forms names are derived from the Forms window tile based on the mapping uploaded through the configuration script. However, if the environment variable FORMS_RUEI_SEND_FORM_NAME
is set, the Forms server will send the Forms module name along with the window creation message. By default, environment information is set in the default.env
file. You can use another file name, but this must be specified in the formsweb.cfg
file. This has the following benefits:
-
It is possible to distinguish multiple Forms names within traffic that has identical window titles.
-
The creation of additional Forms does not require the re-running of the configuration script (described in Synchronizing RUEI With the EBS Production Environment).
Additional Message Reporting
Oracle Forms 11g Release 2 (and above) supports the use of the MESSAGE
built-in. This allows for the inclusion of customized strings into a form. This particularly useful for debugging purposes. For RUEI-monitored traffic, two constants are available within the user_response
parameter of the MESSAGE
build-in. They are RUEI_BEGIN
and RUEI_END
. For example:
MESSAGE('my message1', RUEI_BEGIN); ... ... MESSAGE('my message1' RUEI_END);
When the Forms server processes the MESSAGE
built-in, it sends a message so that RUEI can note the information contained in the note. This information is visible within Session Diagnostics (see Working With the Session Diagnostics Feature). Note that the message will not be displayed on the client.
OA Framework Page Name Deduction
OA-based traffic is mapped to RUEI as follows:
-
The controller is used as a key indicator for the user-initiated actions. Hits closely related to the controller are assumed to be elements of that page. The OA framework has two controllers:
OA.jsp
, andRF.jsp
. -
The naming of the page is based on the parameters send to the controller. The following parameters are taken into account: function_id, _rc, akRegionCode, OAFunc, page, and region. Pages that do not contain references to a (new) form or responsibility will preserve the form name or responsibility of previous pages.
Parameter Mapping
Note that the mapping is only possible when the EBS_*.txt
files are populated with IDs that match the deployments that are being monitored. To obtain the correct configuration files, the script (described in Synchronizing RUEI With the EBS Production Environment) is used to retrieve the correct information from the deployment environment.
The script uses two methods to retrieve the relevant information:
-
Analysis of local JSP files to obtain the names of all possible JSP files from the JTT environment. This is done through the execution of a
find
statement in the $APPL_TOP directory. -
A list of SQL statements in the
create_EBS_info.pl
script to retrieve the functional names of the OA framework from the database. These are described in the following section.
Page Context
Not all actions relate to pages. Hence, this section explains how actions (such as HTTP requests) are reported as page views.
Each time a request is received for a page, the OA Framework creates an OAPageContext that persists until a new page finishes processing. Specifically, the OAPageBean, the primary force behind page processing, creates the OAPageContext.
Reporting within RUEI is based on the requests seen at the HTTP level. If the page changes within one request, the timings are reported against the original page.
Request and Page Boundaries
A web application's unit of work is a request/response pair: the browser submits a request, the servlet processes the request, and returns a response. The transmission of a response signifies the end of a single request, or the "boundary" between the completed request and a new one. Similarly, when the OAPageBean finishes processing a page, this is the "boundary" between the current page and a new one.Hence, in the following scenario where a user navigates from Page X to Page A and then to Page B, we have two request boundaries: the first is between Page X and Page A, and the second is between Page A and Page B. We also have two page boundaries in the same conceptual location between Page X and Page A, and Page A and Page B. This is shown in Figure N-5.
Figure N-5 Request and Page Boundaries the Same

Description of "Figure N-5 Request and Page Boundaries the Same"
Different Request and Page Boundaries
However, in some situations, the request and page boundaries are not the same. Consider the following JSP Forward case:
-
The user navigates from Page X to Page A, as illustrated in Figure N-5.
-
While on Page A, the user selects a control that the Page A code must evaluate before deciding which page to display in response. Therefore, the browser issues a request to Page A which the OA Framework processes (including creating an OAPageContext for the page). Once Page A finishes processing, we've reached the first page boundary as illustrated in Figure N-6.
-
Within the Page A code, the developer evaluates which control the user selected, and issues a JSP Forward to Page B. Instead of providing an HTTP response at this point because we do not want to redisplay Page A, the OA Framework begins processing for Page B (including creating a new OAPageContext for this page). Once Page B finishes processing, we've reached the second page boundary.
-
Because Page B must now be displayed to the user, an HTTP response is sent to the browser. We've now reached the request boundary.
Figure N-6 Different Request and Page Boundaries in the JSP Forward Case

Description of "Figure N-6 Different Request and Page Boundaries in the JSP Forward Case"
Data Items
The EBS-specific data items shown in Table N-2 are reported by RUEI.
Table N-2 EBS-Specific Data Items
Item | Description |
---|---|
Database Time per Page (ms) |
Database time per page. This is only available if Chronos or End User Monitoring is enabled. |
Total Database Time (ms) |
Total Database Time |
EBS Action |
Description of the action executed by the user (depends on framework how this is determined |
EBS Component |
Description of the active component (if it can be determined in this framework) |
EBS Form Hierarchy |
The component hierarchy of the element that was active inside Oracle Forms protocol during measured activity |
EBS Form Message |
The information related to specific programmed messages indicating start/end Oracle Forms messages |
EBS Form Name |
The name of the Oracle form related to the activity |
EBS Form Name Description |
The description of the Oracle Form Name that was active |
EBS Framework |
The EBS framework used. For example, FORMS (Oracle Forms traffic), OA (Oracle Application framework), JTT (JTT framework), servlet (servlets), and other-traffic (only visible when the unclassified pages setting is checked; use page-URL to see the actual URL). |
EBS JSP Filename |
The name of JSP-based files used. For example, this could contain login-events or actions such as 'runforms'. |
EBS Java Class |
The class name of the component that was active for user activity |
EBS Module |
The EBS module within which the end user was navigating |
EBS Module Code |
The EBS Module within which the end user was navigating |
EBS Responsibility |
The responsibility that was active during activity |
EBS Responsibility ID |
The id for the responsibility that was active during activity |
EBS User Input |
The literal text that was entered by user during activity in cases where it could be identified. |
Resources
You may find the information sources useful:
-
Configuring HTTP Server to use SSL in Oracle applications (note 341904.1).
-
Oracle Forms Service 10g: configuring transport layer security with SSL (white paper)
-
Oracle Application Server Forms Services Deployment Guide 10g Release 2 (10.1.2), 5.11 Oracle Forms Services and SSL
-
How to enable SSL for JPI clients (Sun plug-in) (note 307429.1).
Known Limitations
Currently, RUEI does not work with all EBS functionality. In particular, the following known limitations exist:
-
The Forms framework includes functionality to create reports. This functionality is highly configurable by customers. As a result, it is not possible to track reports automatically. In addition, there is no useful translation table with a relevant business-oriented name for the reports. The only solution would to rewrite the known report URLs to correct report names based on a translation file.
An additional side note on this issue is that some customers are using the 'jobs' functionality to create reports. This is an insecure way to do this, because the next and previous numbers can easily be guessed, and allows users to see reports they may not be authorized to view. Because of the randomness of the name (only a number), it is not useful to report on these type of reports when they are used.
As a result of the issues described above, Forms reports are not monitored.
-
Reporting is based on the last activated area. Hence, when an end-user is browsing simultaneously in multiple browser windows, the reported page name might contain incorrect information.
-
Currently, only applications based on the OA and JTT frameworks are supported. Therefore, such packages as Oracle Applications Manager (OAM) and Oracle Portal are not supported at this time.
-
Applications that make use of a Rich Internet Application (RIA) framework (such as Ajax) may have reduced replay capability. This is particularly seen in the case of Oracle Forms-based applications.
Enabling End User or Chronos Monitoring
End User Monitoring is Forms functionality that triggers additional information messages to be sent by the applet to the Web server. RUEI uses these messages to record database time and the related KPI. If you do not need this KPI, you may skip this section.
End User Monitoring functionality was introduced in Forms 6i as Chronos messaging. This functionality is not available in Oracle Forms 9.0.4. In release 10.1.2 and higher, this functionality is called End User Monitoring.
Depending on the Oracle Forms version you are using, follow the procedure described in the relevant section below. If you are not using Oracle Forms, the rest of this section can be skipped.
Enabling End User Monitoring (for Oracle Forms Version 10.1.2 and Higher)
The following steps are required to activate End User Monitoring for release 10.1.2 and higher.
-
Configure the
$ORACLE_HOME/forms/server/formsweb.cfg
file to enable monitoring of specific applications. Set the following:EndUserMonitoringEnabled=true EndUserMonitoringURL=http://EBS-hostname:EBS-portnumber/oracle_smp_chronos/oracle_smp_chronos_sdk.gif
-
Restart the Forms server to activate the changes. The changes will only become available for new sessions.
Additional information can be found in the Oracle Application Server Forms Services Deployment Guide 10g Release 2 (10.1.2). This is available at http://download.oracle.com/docs/cd/B25527_01/doc/frs/forms/B14032_02/chronos.htm#sthref606. The webcache functionality mentioned in that guide is not required for the correct working of RUEI. The URL mentioned in the guide is incorrect, and is clarified in later release notes.
Enabling Chronos Monitoring (for Oracle Forms Version 6i)
For Forms release 6i, Chronos monitoring should be used as an alternative to the procedure described above. To enable Chronos monitoring, do the following:
-
Ensure that the patch 7130248 for release 6.0.8.28.0 is installed on the Oracle Forms system.
-
Configure the $ORACLE_HOME/forms/server/formsweb.cfg file by adding the following lines:
ChronosEnabled=true ChronosURL=http://EBS-hostname:EBS-portnumber/oracle_smp_chronos/oracle_smp_chronos_sdk.gif
Note:
The ChronosEnabled
and EndUserMonitoringEnabled
settings are case sensitive, and should be set to true.
Verifying Chronos End User Monitoring
Verify that Chronos hits are sent by doing the following:
-
Login to Forms.
-
Open the Java console of the JVM in which Oracle Forms is running.
-
Activate trace level 2 by pressing 2.
-
Perform some Forms-based action that leads to a commit.
-
Verify that the reported trace output contains the file /oracle_smp_chronos/oracle_smp_chronos_sdk.gif. An example is shown in Figure N-7
Figure N-7 Java Console
-
Confirm the hit appears in the log files on the RUEI Reporter system using the following command as the moniforce user:
zgrep oracle_smp_chronos $WEBSENSOR_HOME/data/*/http/currentdate/http-*
Note:
The use of the timestamp in the above command is to limit the displayed list. The
currentdate
should be specified in the formyyyymmdd
.
Troubleshooting EBS Applications
This section highlights the most common problems encountered when monitoring EBS applications. The information in this section should be reviewed before contacting Customer Support.
Network Traffic Does Not Appear to be Measured
In the event that expected network traffic does not appear to be reported, it is recommended that you review the following points:
-
RUEI can monitor EBS applications based on the OA, JTT, PLS, Oracle Forms, and servlet frameworks. Generally, suites are configured to run on a specific port which differs per installation. These also need to be specified in RUEI. Select Configuration, then Security, and then Protocols. Review the defined port settings, and ensure they meet the requirements of your EBS applications.
-
Once data starts arriving into the RUEI system, it is not reported automatically. At least one application must be defined. At a minimum, this application must contain the relevant domain name, and the unique page-identification scheme within that domain.
-
If the monitored traffic includes VLAN-encapsulated traffic, ensure this is configured within RUEI. Select System, then Configuration, then Security, then Network filters, and then VLAN traffic, to review the defined settings. The use of this facility is fully described in Defining VLAN Filters.
-
Be aware that there is no suitable out-of-the-box cookie available for session tracking in EBS. Therefore, a cookie needs to be created on the login page. This should cover the complete application. By default, the
Jession
cookie only covers the application links, and not the images, CGIs, and libraries. While theoracle.uix
cookie does cover all hits, it is not unique for each visitor. -
Be aware that because the Traffic summary facility (select System, then Status, and then Reporter Statistics) is based on application logic, non-application traffic (such as suites, services, and SSOs) is not represented in the traffic overviews.
It is strongly recommended that after configuring an EBS suite definition, you login to the EBS application, and execute a critical path through the application. Then, you should search for recorded action within RUEI, and use the Session Diagnostics feature to verify that it is correctly reported. In particular:
-
Verify that descriptions are reported, and not codes. If codes are reported instead of application names, or page-group level codes instead of page-group names, it indicates that the information derived from the
create_EBS_info.pl
script is not activated correctly. -
A large number of reported short sessions indicates that Forms traffic is not being measured.
-
A large number of reported .
jsp
files indicates the need for manual page naming (if required by the customer).
A Large Number of Unidentified Actions are Reported
If a large portion of the reported traffic contains unidentified actions, this indicates that Forms tracking is not functioning correctly. You should consider the following:
-
If you do not see such things as "Status Bar" and "Textfield" (as shown in **INTERNAL XREF ERROR**), this indicates that some specific characteristic in the monitored traffic is not being captured. In this case, you should contact Customer Support.
-
Verify that the server ports are correctly configured, as described in Verifying the Scope of Monitoring. In particular, it must be configured as the Forms servlet mode port, not the regular HTTP port.
Configuring user-id Recognition in a Forms Only Environment
Because the forms protocol does not equal the normal http traffic, to which RUEI is native, configuring the user-id source for a forms only environment requires some additional knowledge. This section describes how to configure the user-id in such an environment.
Two types of sources can be used and these should be configured as a client request:
-
Oracle Forms Client Element
This refers to a value in a forms element directed to by the hierarchical structure of the forms.
-
Oracle Forms Client Property
A uniquely named property that contains the user-id.
The information needed to configure user-id is taken from the collector logs, which can be found at a location similar to the following example:
$RUEI_DATA/processor/data/c_localhost/http/20130207/proc1/
Navigate to this directory and search on all files for a user you know has done a login action. The following shows an example of this command:
zgrep paul http-201*.gz
Output similar to the following should be generated:
2013/01/30:10:31:33:205 3 - 235.174.222.186 2949 - 10.161.124.51 80 POST /forms/lservlet;jsessionid=1510821202615f4b6f7d688710fdd8f6c47 d629bcea4f11bfaf296ba87eda0c9.e3mLchuRax4Ne3eSc3yQbh4Mbi1ynknvrkLOlQzNp65In0 1.1 - ORA_TAHITI_PREFS=86910bc3181a2b82;ORA_UCM_INFO=65241d61bd16d97d;ORA_UCM_VER=19df918e29822249;ORA_UCM_SRVC=0753cd488af8cbcb; WEB2000userid=fffcec715cd9b15b;scouser=dc87defb85e08290; __utma=af4005efe0fdbb6f;__utmz=abb9352a6918ccb5;__qca=85a88405530a5b63;loginCookieDate=726b29c7e447ad61;checkerStorage=25660f1ee2708d50;s_nr=c6802213d9578355;s_cc=0036758e0041e45f; s_sq=220c178208c68ade;ORASSO_AUTH_HINT=056febb7e15cabf6;gpv_p24=f252faefe6be2601;gpw_e24=f252faefe6be2601;ORA_ML_STATE=53b69c923b02dfdc; ORA_ML_CLUSTER=7a0d1d9745276966;ORA_CSM_MODE=05cfeff006960dea;ORA_CSM_LOCALE=00000ca900000d42 nllx012.nl.oracle.com - - Java1.3.1.26-internal 1376 31 0 0 1 200 application/octet-stream - Oracle-Application-Server-10g/10.1.2.2.0 Oracle-HTTP-Server - 268 59189 127 366 494 3 - - - - - - 0 0 2:0:3:51645090 - - &Pragma=6&User-Agent=Java1.3.1.26-internal&Content-Length=31 - - &cl_enc=X-none&sv_enc=X-none&url_enc=none &LogonDialog.INDEX_LOGON_USERNAME_VALUE={val:paul;frm:no-form;hier:;class:LogonDialog;seqno:0039;name:; i:INDEX_LOGON_USERNAME_VALUE}&LogonDialog.INDEX_LOGON_DATABASE_VALUE={val:;frm:no-form;hier:;class:LogonDialog;seqno:0039;name:; i:INDEX_LOGON_DATA} &hitinfo=no-selected-properties&form=Copyright (c) 1995-2009, Oracle Corporation&formtitle=Copyright (c) 1995-2009, Oracle Corporation&form=Copyright (c) 1995-2009, Oracle Corporation&FormStatusBar.INDEX_STBAR_REMOVE_LAMPS={val:1;frm:no-form;hier:FormWindow-2.FormCanvas-3.; class:FormStatusBar;seqno:4;name:;i:INDEX_STBAR_REMOVE_LAMPS} - no-reply-body other 274 dynamic - 235.174.222.186 - -
Distinguishing between an element and property
In most cases it would be sufficient to use the property element configuration, as would be done in the case of the example above. This is because the argument in which the user-id is contained (INDEX_LOGON_USERNAME_VALUE
) is uniquely distinguished from the other elements, most commenly INDEX_VALUE
. T o configure for property, set the following:
-
Source: Oracle Forms Client Property
-
value: INDEX_LOGON_USERNAME_VALUE
In some cases the field in which the user-id is entered has a rather generic name. In this case the collector logs this as property name INDEX_VALUE. This is seen in the following example:
2013/02/04:13:06:24:655 9 - 10.173.25.160 62439 - 10.62.38.50 8888 POST /forms/lservlet;jsessionid=Bm1cRPkXdrdXTKYS9zy2nPjQCQn3WQY FGHm1gWSCthY8ngWTxqty!1966339776 - - - fefr1atp08.ods:8888 - - Mozilla/4.0 (Windows 7 6.1) Java/1.6.0_24 372 34 0 0 1 200 application/octet-stream - - - 325 19 362 1 - 4 - - - - - - 0 0 - - - &Pragma=6&Content-Length=34 &X-ORACLE-DMS-ECID=004pEJg2tBjFs1l6wvjc6G0003gD00RG0X - &cl_enc=X-none&sv_enc=X-none&url_enc=none &TextFieldItem.INDEX_VALUE={val:paul;frm:RE_FM_INICIO;hier:RE_FM_INICIO.FormCanvas-2.FormCanvas-3.;class:TextFieldItem;seqno:4;name:Enter value for Username;i:INDEX_VALUE}&TextFieldItem.INDEX_SELECTION= {val:point_6_6;frm:RE_FM_INICIO;hier:RE_FM_INICIO.FormCanvas-2.FormCanvas-3.; class:TextFieldItem;seqno:4;name:Enter value for Username;i:INDEX_SELECTION}&TextFieldItem.INDEX_CURSOR_POSITION={val:6;frm:RE_FM_INICIO; hier:RE_FM_INICIO.FormCanvas-2.FormCanvas-3.; class:TextFieldItem;seqno:4; name:Enter value for Username; i:INDEX_CURSOR_POSITION}&TextFieldItem.INDEX_SKEY={val:point_9_0; frm:RE_FM_INICIO;hier:RE_FM_INICIO.FormCanvas-2.FormCanvas-3.; class:TextFieldItem;seqno:4; name:Enter value for Username; i:INDEX_SKEY} &TextFieldItem.INDEX_AUTOSCROLL={val:void;frm:RE_FM_INICIO;hier:RE_FM_INICIO.FormCanvas-2.FormCanvas-3.; class:TextFieldItem;seqno:4; name:Enter value for Username; i:INDEX_AUTOSCROLL}&TextFieldItem.INDEX_AUTOSCROLL={val:***;frm:RE_FM_INICIO; hier:RE_FM_INICIO.FormCanvas-2.FormCanvas-3.; class:TextFieldItem;seqno:5; name:Enter value for Password; i:INDEX_AUTOSCROLL} - no-replay other 62 dynamic - 10.73.5.60 - - -
In this case the Element configuration item should be used. The value entered is the hierarchical path in the forms to the element.
Use a 'sed' command similar to the following example to help you find this value:
USER=paul; zgrep $USER http-201* |sed "s,^.*={val:${USER};[^}]*;hier:\([^};]*\);class:\([^};]*\);seqno:\([^;}]*\)[^}]*;i:INDEX_\([^;}]*\)[;}].*,found elem: \\1\\2-\\3.INDEX_\\4,g" found elem: RE_FM_INICIO.FormCanvas-2.FormCanvas-3.TextFieldItem-4.INDEX_VALUE
Where:
-
USER
is the exact login name found earlier -
zgrep $USER http-201*
is the files to read from -
found elem
is the result
The following values are set for this parameter:
-
Source: Oracle Forms Client Element
-
Value: RE_FM_INICIO.FormCanvas-2.FormCanvas-3.TextFieldItem-4.INDEX_VALUE
Create_EBS_info.pl Script Reports FRM-91500 Error
When the create_EBS_info.pl
script is run on a Unix system, the following error is reported multiple times:
FRM-91500: Unable to start/complete the build.
This is caused by the frmbatch
script not having access to the user interface. You should consider the following:
-
Ensure that the DISPLAY variable is correctly set. You can use X Window System tools such as
xclock
orxeyes
to verify it. You might also consider using X-forwarding of SSH to enable the use of the X Windows System on another server. -
The
frmcmp_batch
script is trying to work without the X Windows System. This is the first script used by thecreate_EBS_info.pl
configuration script. Set the display mode using the following command:$ set ORACLE_TERM=vt220; export ORACLE_TERM
Perl Zip Functionality is not Available
In some systems, zip functionality is not installed as part of the Perl package. In this case, you receive the following message:
The Archive::Zip package is not available on this system.
After this message, a sample command indicates how the archive might be created. Be aware that the archive should consist of non-empty files, and that files should not be in directories. If so, the upload to RUEI will fail. Alternatively, you can execute the command zip
EBS_*txt
in the appropriate directory.
The frmcmp_batch Script Fails
The frmcmp_batch
script fails due to some unknown error, and reports something similar to the following:
execution of 'frmcmp_batch module=XXX/XXX/XXX.fmb module_type=form batch=yes logon=no forms_doc=yes strip_source=yes build=no output_file=/tmp/XXX.txt' failed: 11. Ignoring /XXX/XXX/XXX.fmb
This indicates that the reported .fmb
file could not be converted into .txt
format (possibly due to corruption). If only a very small proportion of the total number of .fmb
files are reported, this will probably not be an issue. Indeed, it is likely that the reported forms would not work in a production environment in any case. However, if you know that visitors to your web site are actively using the reported forms without trouble, then please report this issue. When doing so, please provide the relevant .fmb
files, together with some indication of how they are deployed within your EBS environment.
create_EBS_info.pl Script Generates Warnings/Errors
If you receive errors and/or warnings while running the create_EBS_info.pl
script, depending on their nature, do the following:
-
Database related:
-
Verify the
connectstring
specified for thecreate_EBS_INFO.pl
script by issuing the following command:sqlplus
connectstring
@temporarysqlfile
-
-
Forms related:
-
frmcmp
orfrmcmp_batch
are not working correctly. Detailed troubleshooting information is available about this from Note 266731.1 athttps://support.oracle.com/CSP/ui/flash.html
. -
frmcmp
orfrmcmp_batch
return a sig 11 segmentation fault. This is know to occur forGRDDHIST.fmb
.
-
Footnote Legend
Footnote 1:The script can also be run in the acceptance environment if it is equivalent to the production environment.