Tuesday, June 3, 2008

Obtaining Forms Runtime Diagnostics (FRD) In Oracle Applications

Print this post

 

 

A. Introduction

When starting a Forms-based session in Applications it is possible to pass various useful parameters like formname=xyz, or lang=US, or NLS=xyz etc. This is really helpful when debugging Forms. In addition, there are two other parameters config=debug and record=all which make it possible to perform Forms Runtime Diagnostics (FRD.)

FRD is a runtime event-based logging system intended to aid in the debugging of Forms applications. FRD is enabled at runtime on a user by user basis.  When a form is run with FRD enabled, a combination of external user-application interactions and internal Forms processing events are written in chronological order to a log on the file system.

<>FRD generates extensive output useful for analysis and debugging, and it is therefore recommended FRD be utilized as a logging mechanism only when specific issues are encountered.
 

B. The Contents of an FRD Log File

The following data is typically collected in an FRD trace file:

- Trigger firing: includes name and hierarchical location.

- Built-in Execution: includes name and IN and OUT parameter types and values.

- Messages: includes message numbers and text.

- The opening of forms executables (.fmx) and menu executables (.mmx)

- Unhandled exceptions: includes error message if available, otherwise only
   error numbers.

- All external user events via normal runtime (RT) recording mechanism

To see more details about the expected output in Forms, please see
<Note:62664.1> Forms Server Logging and Forms Runtime Diagnostics (FRD) Explained.
 
C. Tracing in R12

1. Set the user value for profile option  'ICX: Forms Launcher' to be

   'http://hostname.domain:port/forms/frmservice?record=forms'

2. By default, this will enable tracing for errors only. As an optional step, you can enable different trace options (e.g. user actions, user-exit events, dbsql events, network events) by setting a trace group in file $ORA_CONFIG_HOME/10.1.2/forms/server/ftrace.cfg

3. Login to the Personal Home Page,  navigate to the form and perform the steps that you wish to trace.

4. Locate the file in the directory set by variable FORMS_TRACE_DIR. Note: by default, this directory is named forms_<pid>.trc, where <pid> is the process identifier.

Related reference:
<Note:373548.1> Using Forms Trace in Oracle Applications Release 12.

D. Tracing in 11.5.10

1. Make the user value for profile option  'ICX: Forms Launcher' the same as the site value

   e.g. copy value of ICX: Forms Launcher for the site Test115
   'http://testserver.oracle.com:8005/dev60cgi/f60cgi'
    to be the value for the user.

2. Append the user value of ICX: Forms Launcher with the Forms parameters for FRD

   e.g. update the value of  ICX: Forms Launcher for the user to be
   'http://testserver.oracle.com:8005/dev60cgi/f60cgi?record=all&log=/tmp/username_frd.log'

3. Login to the Personal Home Page,  navigate to the form and perform the steps that you wish to trace.

4. Locate the file in the directory set by variable $FORMS60_TRACE_PATH. Note: the default directory for
$FORMS60_TRACE_PATH is $ORACLE_HOME/forms60/log.

Related reference:
<Note:290210.1> Forms FRD Trace With New Variable FORMS60_TRACE_PATH.


E. FRD Tracing in 11.5.x to 11.5.9

This method enables users to run FRD tracing through the Personal Home Page by setting debugging to true using the profile option 'ICX: Forms Launcher'.

When accessing Applications through the Personal Home Page (PHP), there is no way to pass command line parameters such as config=debug and record=all for the duration of a single session. For example, you cannot add these variables to the PHP connect string
http://testserver.oracle.com/OA_HTML/US/ICXINDEX_test115.htm.

The advantages of using the profile option 'ICX: Forms Launcher' are that you can easily trace the activities of multiple users and assign different log file names.

With Oracle Developer Forms patch 16 and higher, users cannot create adhoc FRD trace files in any directory. The trace files are either created in the directory set by parameter $FORMS60_TRACE_PATH or they are created in 8.0.6 $ORACLE_HOME/forms60/log directory.

Steps:

To start tracing in this way, modify Profile Option 'ICX: Forms Launcher' at USER level to include the Forms parameters required for FRD logging:

1. Make the user value for profile option  'ICX: Forms Launcher' the same as the site value

   e.g. copy value of ICX: Forms Launcher for the site Test115
   'http://testserver.oracle.com:8005/dev60cgi/f60cgi' to be the value for the user.

2. Append the user value of ICX: Forms Launcher with the Forms parameters for FRD

   e.g. update the value of  ICX: Forms Launcher for the user to be
  'http://testserver.oracle.com:8005/dev60cgi/f60cgi?record=all&log=/tmp/username_frd.log'

3. Save this change at the USER level, and the next time you access the test115 database through PHP, the Forms variables will be enabled.

E. Points to Consider When Running FRD

1. Check that sufficient space exists in the directory in which the FRD log file is to be created

2. For each run of FRD, specify a different log file name. The FRD log file will replace an existing file of the same filename.

3. On certain platforms, the log file is only created after the user exits Applications. Therefore, remember to exit Applications.

4. If no file name is specified for FRD, a unique file name is used based on the operating system process ID. The file is created in the current working directory. The file may be overwritten if the operating system reuses the process ID.

5. The log file is likely to be hundreds of lines long. To keep the content of the trace file to a minimum amount, follow the steps to reproduce a problem precisely and avoid performing any other actions. This is particularly helpful when using for troubleshooting purposes.

6. Specify the tmp directory for the log file location since all users usually have permission to write to it.

7. In a multi-node environment, the trace file is created on the Applications tier.

8. It is recommended to pass FRD variables at the USER level and not at the SITE level since SITE level affects all users.

9. Please create your own user to set this value. Please do not enable FRD for user 'vision' or any of the seeded users since you will then start FRD logs for all people using those login accounts.

10. If the 'ICX: Forms Launcher' profile option is not updatable at the USER level, then you may need to access 'Application Developer' to set the option 'Updatable' for the profile ICX_FORMS_LAUNCHER.

F. Extracts From an FRD Log File For 11i

Below displays brief extracts from a log file. The FRD documents the steps executed from Forms when signing on to Applications 11i and navigating to a form within core Applications.

Forms Runtime Diagnostic Collection Log
File Name: /tmp/form1.frd
Process ID: 19166
Client IP: @  x
Forms 6.0 (Forms Runtime) Version 6.0.8.12.1 (Production)
PL/SQL Version 8.0.6.1.0 (Production)
Oracle Virtual Graphics System Version 6.0.5.36.0 (Production)
Oracle Multimedia Version 6.0.5.33.0 (Production)
Oracle Tools Integration Version 6.0.5.32.0 (Production)
Oracle Tools Common Area Version 6.0.5.32.0
Oracle CORE Version 4.0.6.0.0 - Production

Opened file: /stable/oracle/vis006/vis006appl/fnd/11.5.0/forms/US/FNDSCSGN.fmx

ON-LOGON Trigger Fired:
Form: FNDSCSGN

State Delta:
FORM FNDSCSGN
  STATUS     NEW
  BLOCK PROGRESS_INDICATOR
    STATUS     NEW
    RECSTATUS  ""
    FIELD TEXT
      CANVAS     PROGRESS_INDICATOR
      GEOMETRY   100,250:4000,400
      ENABLED    TRUE
      NAVIGABLE  TRUE
      INSERTABLE TRUE
      QUERYABLE  TRUE
      UPDATEABLE TRUE
...
WHEN-NEW-ITEM-INSTANCE Trigger Fired:
Form: FNDSCSGN
Block: SIGNON
Item: USERNAME
...
WHEN-BUTTON-PRESSED Trigger Fired:
Form: FNDSCSGN
Block: SIGNON
Item: CONNECT_BUTTON
...
MENU_TO_APPCORE Trigger Fired:
Form: FNDNLDLG
...
CLOSE_WINDOW Trigger Fired:
Form: FNDNLDLG
...
Executing DO_KEY Built-in:
In Argument 0 - Type: String   Value: EXIT_FORM

KEY-EXIT Trigger Fired:
Form: FNDSCSGN
...

No comments: