ORACLE

This page gives you more information on Load Testing Oracle E-Business Suit using HP LoadRunner (Oracle 11i / NCA Protocol).


Ways to access an Oracle NCA application

1. Browser

The user brings up the browser and enters a URL.  What happens next is the Oracle J-Initiator or Sun’s Java Plug-in downloads a Java applet and then the logon window appears in the Java applet.  After you log in, everything is done in this applet.  Accessing the NCA application through a browser requires the correct version of the J-Initiator or JDK installed.  The version that is required depends on your Oracle Forms version.

2. Older JDK clients

  1. Installing JDK on the client machine:
    • You can find all the versions of JDK on Sun’s website
    • Install the JDK software in any directory without spaces the path name. (e.g. C:\jdk1.4).  Follow the wizard to install it.

  1. Launching the JDK client:
    • From the command prompt, enter the following from the <JDK>\bin directory:
<path to JDK\bin>  appletviewer.exe   <full URL>

How to find out the Oracle Forms version 
If you do not know what Oracle Forms version you are using, you can find out by following the instructions below.  It is important that you find out your Oracle Forms version, mode, and server port prior to contacting Technical Support.

  1. Using the Applet Viewer from older JDK clients
After login, click on Help About Oracle Applications…

  1. Using the Java Plug-in from Sun
  1. Clicks on Start Programs Java Plug-in Control Panel.  If this is not in the program list, then click on Start Settings Control Panel.  Inside the Control Panel, you should see an icon for Java Plug-in <version>.
  2. In the Java Plug-in Control Panel window, click on the Basic tab if it is not already in focus.  Check the box that says “Show Java Console” and then click on “Apply”.  Exit out of the Java Plug-in Control Panel window.
  3. Bring up the browser and go to the URL for the application.  The Java Console should pop up.
  4. After the Java Plug-in downloads the applet, look in the Java Console for the Oracle Forms version.  In addition to the Forms version, you will also find the mode the Oracle Forms server is running in, and the port being used.  After this information is gathered you can close the console and undo the changes made inside the Java Plug-in Control Panel window.

  1. Using the J-Initiator
  1. Click on Start Programs JInitiator Control Panel <version>.
  2. In the Oracle Jinitiator Properties window, 
  • Click on the Basic tab if it is not already in focus
  1. Check the box that says “Show Java Console” 
  2. Then, click on “Apply”.  
  3. Exit out of the Oracle Jinitiator Properties window.
  1. Bring up the browser and go to the URL for the application.  The Java Console should pop up.
  2. After the J-Initiator downloads the Java applet, look in the Java Console for the Oracle Forms version.  In addition to the Forms version you will also find the mode the Oracle Forms server is running in, and the port being used.  After this information is gathered you can close the console and undo the changes made inside the Oracle Jinitiator Properties.

EXAMPLE: Below are information returned from a Java Console (scroll down to the bottom to get this information).
pastedGraphic.pdf
Supported Oracle Forms versions 


Product Version
Supported Oracle NCA Forms version

LoadRunner 7.0, 7.02 and 7.5
Oracle Forms 4.x 
Oracle Forms 6 version 6.0.8.8.0 and above

LoadRunner 7.51 and above
Oracle Forms 4.x 
Oracle Forms 6 version 6.0.8.8.0 and above
Oracle Forms 9.x

NOTE: 
  • LoadRunner does not support anything between Oracle Forms 5.x and Forms 6.0.8.7.x 
  • It is HIGHLY recommended that you download the latest Oracle NCA patch for the LoadRunner version that you are using from Customer Support website

How to enable NCA recorder to support Oracle Forms 4.x
By default, LoadRunner supports Oracle Forms 6.x. To switch the support to Oracle Forms 4.x
  1. Close VuGen
  2. Bring up mdrv.dat in <LoadRunner>\dat directory using notepad
  3. Change the referenced DLL from ncarp11i.dll to ncarp110.dll
EXAMPLE:
[Oracle_NCA]
WINNT_EXT_LIBS=ncarp110.dll
WIN95_EXT_LIBS=ncarp110.dll

How to enable NCA recorder to support Oracle Forms 9.x
Oracle Forms9.x is only supported with LoadRunner7.51 or above. 
  1. No patches are required for LoadRunner7.6 or above
  2. For LoadRunner7.51, you must apply the following to enable support for Forms9.x:
  1. Apply LoadRunner7.51 Liveupdate
  2. Apply patch LR751SP1P4 from Mercury Customer Support’s patches database


Supported Oracle Forms server modes 


LoadRunner 7.0 – 7.5
LoadRunner 7.51 and above

Socket
Record & Replay
Record & Replay
HTTP
Record & Replay
Record & Replay
HTTPS
Must record in HTTP mode. For replay, refer to How to replay script in HTTPS mode 
Supported via Multi Protocol (NCA/WEB) solution

NOTE:
How to record with object names

When recording an Oracle NCA script, it is required to record using object names instead of object ID. You can use either of the following methods to record using object names. The simplest way is 2, however this will not always work.  

  1. Set the record=names flag for specific user profile
  1. Logon to Oracle Application using admin logon
  2. Click on the link for ‘system administrator’
pastedGraphic_1.pdf

  1. On the ‘Navigator-administrator’ pop-up window, select ‘Profile System Value’
pastedGraphic_2.pdf
  1. On the ‘Find System Profile Values’ window,
  1. Check the ‘Site’ Checkbox
  2. Check the ‘User’ Checkbox and specify the desired user logon 
  3. Uncheck ‘Profiles with No Values’ and specify %ICX%Launch% on the textbox for ‘Profile’\
  4. Click on ‘find’
pastedGraphic_3.pdf

  1. On the ‘System Profile Values’ window
  • Look for the  ‘ICX: Forms Launcher’ Profile
  • Update the user value to include “?play=&record=names”
EXAMPLE:

pastedGraphic_4.pdf

  1. Save the changes and exit the application.
  2. Sign on again via Personal Home page using the username and this setup will be enabled.



  1. Set the record=names flag through the recording URL
This is the easiest method to record with object names. However, this method is not always possible. To implement this solution, simply add "?record=names" after the recording URL.  This will allow VuGen to record using object names for that session.

EXAMPLE:
Original URL:           http://OracleApps.com:9002
Enter to the ‘Start Recording’ Window: http://OracleApps.com:9002?record=names

NOTE: If you are already passing a parameter in the original URL, then you need to append “&record=names” instead.
EXAMPLE:
Original URL           http:// OracleApps.com:9002?config=abc
Enter to the ‘Start Recording’ Window: http:// OracleApps.com:9002?config=abc&record=names



  1. Set the record=names flag through Web CGI configuration file and startup HTML file

    1. Steps to verify which server files need to be modified:
  • Record a Winsock script against the Oracle Forms application. 
  • After logging into the application, stop the recording. 
  • Go to the data.ws file.
  • Search for ".cfg" without the quotes (") from the beginning of the data.ws file.
  • You should come to a section that looks like the following:

"<HTML>\n"
"<!-- $Header: appsbase.htm 115.18 2003/02/17 04:15:03 smaradan ship $ -->\n"
"<!--          appsweb.cfg  115.121 -->\n"
"<HEAD>\n"
"<TITLE>Oracle Applications 11i </TITLE>\n"
"</HEAD>\n"

  • You need to make the changes to the files mentioned as shown above.  In most cases it's appsbase.htm and appsweb.cfg.  In other cases, it may be basejini.htm and formsweb.cfg.  The Winsock recording will contain this information.


    1. Modify the Forms Web CGI configuration file  
  • Bring up the Forms Web CGI configuration file. This is the cfg file identified from step (a)
  • Add xrecord=names to anywhere in the file. Mercury recommends you to append it to the end of ‘Values for the Forms applet parameters’ section.
  • EXAMPLE: Refer to Appendix 1 for sample FORMSWEB.CFG file.



    1. Modify the startup HTML file
  • Bring up the startup HTML file. This is commonly known as basejini.htm
  • Look for the line with <PARAM NAME="serverArgs"
  • Append record=%xrecord% to the end of it.
EXAMPLE:
<PARAM NAME="serverArgs" VALUE="module=%form% userid=%userid% %otherParams% record=%xrecord%">

  • NOTE: There are multiple occurrences of “serverArgs” – make sure you append the flag at the end of each occurrence.
  • EXAMPLE: Refer to Appendix 2 for sample basejini.htm file




How to check to see if user is recording with object names

If you have successfully recorded a script using object names, then in the connect_server statement of the Oracle NCA script you will see the flag at the end of the statement.

EXAMPLE:
connect_server("199.35.107.119","9002"/*version=11i*/,"module=/d1/oracle/visappl/fnd/11.5.0/forms/US/FNDSCSGN userid=APPLSYSPUB/PUB@VIS fndnam=apps record=names ");




How to recording an Oracle NCA script

  1. Recording using JDK as the client
    1. In the Start Recording window, simply enter the URL of the application.
    2. Click on the options button.
    3. Select “Specify path to the browser” if not already selected.
    4. Click on Browse.
    5. Browse to the appletviewer.exe file.
    6. Click on Open and then OK.
    7. Click on OK in the Start Recording window.

  1. Recording using the browser as the client
Simply enter the URL into the Start Recording window and click on OK.







How to handle windows with dynamic names
There are few occasions where you will need to handle dynamic windows name.

EXAMPLE:
You have recorded a transaction against a window that displays a dynamic number after the window name.
set_window( "Responsibilities - 12345");
lov_retrieve_items("Responsibilities - 12345",1,4);
lov_select_item("Responsibilities - 12345","Apps for the Web Manager");

During replay the script will fail at lov_retrieve_items (not at set_window because set_window is a COMMENT – it does not get executed and is only there for readability purposes) because the server gives a different number To resolve this, simply delete the dynamic number from the window name.

set_window( "Responsibilities - ");
lov_retrieve_items("Responsibilities - ",1,4);
lov_select_item("Responsibilities - ","Apps for the Web Manager");




How to handle pop-up/error window in the script

Very often, certain data may generate an error window.  You will need to handle the error window so that the replay will not fail when error window pops up.  

EXAMPLE:
set_window( "Objects");
lov_retrieve_items("Objects",1,14);
lov_select_item("Objects","AP_CARD_NOTIFICATIONS");

/* Example on handling pop up window:  You need to put the title of the window inside the obj_status function.  Also, you need to put the error handling statement below wherever the popup may occur. */

int status;
status=obj_status("Error");
     if (status = = 0){
          popup_message_press("Error","OK");

/* Sometimes instead of the function popup_message_press another function named message_box_press is needed to click on a button and close the window.  To find out which function is suitable for you, simply record a script that generates that popup window, click on a button on it, and see which function was recorded.  */

// message_box_press("Forms",1);



How to retrieve data returned from the server

  1. Using obj_get_info
If the data appears in the message box, the status bar, or the title of the window, then you need to use the obj_get_info function to retrieve the value of that property.  

EXAMPLE: Use your own window name instead of “Objects”.  This example will retrieve the value of a message field

char xxx[25];
obj_get_info("Objects", "msg_text", xxx);
lr_output_message("The value of the message box is %s", xxx);

Below are the types of properties where you can get the information.

Property
Description

msg_text
The message box text
status_text
The status bar text
title_text
The active window title text.
num_rows
The number of rows in the table.
NOTE: num_rows is only available in LR 7.5 with the latest Oracle NCA patch applied


NOTE: In LoadRunner 7.6 or above, there are more supported properties such as sys_url, object_checked, and etc.  Please check the function reference for a full list of supported properties.

  1. Using edit_get_text

If the value does not appear in one of the objects above, then you should use the edit_get_text function.

EXAMPLE:
char val[10];
edit_set("FNDSCSGN.SIGNON.USERNAME.0","SYSADMIN");
// The following line will capture the value from an edit field.
edit_get_text("FNDSCSGN.SIGNON.USERNAME.0",val);
// The following line will output the value of the variable val into the execution log.
lr_output_message("The username is %s", val);

  1. Advanced use of edit_get_text
If the data you want to retrieve does not have the object name recorded in the script, then you have to look for the object ID.
    1. Replay the script with extended logging.
    2. In the execution log, search for the name of the field or search for the expected value.
    3. Get the handlerID 3.
    4. Use the edit_get_text function to retrieve the value of the handlerID.
EXAMPLE:

pastedGraphic_5.pdf

set_window( "Submit Request");
button_press("FNDRSRUN.WORK_ORDER.SUBMIT.0");
set_window( "Requests");
button_press("FNDRSRUN.JOBS.REFRESH.0");

From the above code, you will see that a request has been submitted.  Afterwards, the “Refresh Data” button is pressed to query for the status of the request. The status appears in the “Phase” column 

Problem: The fields cannot be clicked on, and therefore nothing is recorded when you click on it.

Solution:
  1. Retrieve the Object ID from the "Phase" status column and find out whether it is "Inactive" or "Active".  
  1. Put the cursor at the beginning of the execution log, and then search for "Inactive".  If you do not find it, then search for “Active”. Search until it looks the ‘Inactive’/’active’ data is something returned from either the "Submit Request" step above or the "Refresh Data" step.

Action1.c(42): property=137 type=0x4000 value="Inactive"

  1. If you look above this line, you will see that there is a handlerID.  This handlerID is equivalent to the ObjectID in Oracle NCA, and therefore this unique ID is needed. 

Action1.c(42): Server Message Properties: action=2  handlerClassId=0x101  handlerId=397
Action1.c(42): property=137 type=0x4000 value="Inactive"

  1. The line number within the ( ) in the execution log that contains the handlerID also indicates which line of the script is returning the value. From the above sample, it appears that line 42 is returning the value for the phase column. Go to line 42 of the script and you should see something similar to the following:

button_press("FNDRSRUN.WORK_ORDER.SUBMIT.0");

  1. Use the edit_get_text function to retrieve the values

EXAMPLE:
char value[25];
button_press("FNDRSRUN.WORK_ORDER.SUBMIT.0");
edit_get_text("397", value);
lr_output_message ("The phase of Journal Import is %s", value);


How to deal with “Warning: did not reply to property – 402” warning message

Problem: Replay is failing and in the execution log we see the following warning:
Warning: did not reply to property – 402

Solution: Use the function nca_java_set_reply_property( ); to reply to the Java object.

i. Replay the script with extended logging and look for the first occurrence of the error (Warning: did not reply to property – 402) in the execution log.  Above the error you will see the server request.

Action.c(68): Server Message Properties: action=4  handlerClassId=0x10F  handlerId=28
Action.c(68): property=402 type=0x4000 value="MercuryEnabled"
Action.c(68): Warning: did not reply to property - 402

ii. Go to the script directory and open the file nca_record.log (for LR 7.6 and above) or record.log (for LR 7.51 SP1 and below).

a. Look for the first occurrence of the entire server request.  In this example the search string is:
Server Message Properties: action=4  handlerClassId=0x10F  handlerId=28

In the recording log you see the following:
Server Message Properties: action=4  handlerClassId=0x10F  handlerId=28
property=402 type=0x4000 value=" MercuryEnabled "
Server Terminate Message:  #5

Below this in the recording log you should see the Client response.
Client Message Properties: action=4  handlerClassId=0x10F  handlerId=28
property=402 type=0x4000 value="TRUE"
Client Terminate Message:  #6

b. Search for the next occurrence of the same server request in the recording log.  Below is the next occurrence:
Server Message Properties: action=4  handlerClassId=0x10F  handlerId=28
property=402 type=0x4000 value="message"
Server Terminate Message:  #7

Below this in the recording log you should see the Client response.
Client Message Properties: action=4  handlerClassId=0x10F  handlerId=28
property=402 type=0x4000 value="Unknown property: BACKGROUND"
Client Terminate Message:  #8

c. Search for all the occurrences of the server request from the recording log and note the value of the server request and client response.  If you see the same request and response you only need to note it once.

d. Search in the recording log for the first occurrence of the handlerId.  In this example it’s handlerId=28.  Note the value of property=129 because this is the object name and is needed.

Server Message Properties: action=1  handlerClassId=0x10F  handlerId=28
property=134 type=0x7000 value=18
property=135 type=0xA000 value=Point [x=0,y=0]
property=137 type=0xA000 value=Point [x=0,y=0]
property=129 type=0x4000 value="CONTROL_MERCURY_CLIENT_0"
property=397 type=0x4000 value="MERCURYClientBean"

    1. Declare the value of the nca_java_set_reply_property function.

Declare the value of the function in the following convention:

Char *<variable>[][] = {
{“<object name of handlerId>”, “<server request value>”, “<client response value>”},
{“<object name of handlerId>”, “<server request value>”, “<client response value>”},
{“<object name of handlerId>”, "", ""}};

char * JavaProp[][] = {{"CONTROL_MERCURY_CLIENT_0", " MercuryEnabled ", "TRUE"},
          {" CONTROL_MERCURY_CLIENT_0", "message", "Unknown property: BACKGROUND"}};

    1. Insert the the nca_java_set_reply_property function into the script above the nca_connect_server statement.

nca_java_set_reply_property(JavaProp);
nca_connect_server(…);

Note: For more information and examples on how to use this function refer to the LoadRunner 8.0 Function Reference




How to replay script in HTTPS mode

For LoadRunner7.51 or above, you can record and replay against HTTPS mode using the multi-protocol NCA/Web solution. For further information, refer to Problem ID 12538 - How to record and replay Multi Protocol (NCA/WEB) Vusers 

For LoadRunner 7.0-7.5, recording against HTTPS mode is not supported.  However replay is support with the following workaround: 

1. Record the script with the Oracle Forms server set to run in HTTP mode.
2. Save the script.  Go to the script directory and open default.cfg in a text editor.
3. Change the variable UseHttpConnectMode from 1 to 2 so that it looks like the following:
[HttpConnectMode]
UseHttpConnectMode=2
4. Check the connect_server parameters - check the IP address and the port.  Make the necessary changes. To find the new port used in the https mode you can launch the application (with the Forms server set to run in https mode) and do one of the following:
a. Look at the Jinitiator console (if you do not have it, launch the 'Jinitiator Control Panel' (it should appear in the program list) and turn on the 'show java consol' option).
b. Go to the browser and select 'view source' and you can find something similar to this:
var xsport        = "9002"



Oracle NCA Benchmark Results Using LoadRunner
Articles on benchmark results published by hardware, database, enterprise resource planning (ERP) vendors and ISVs.
Appendixes

  1. SAMPLE FORMSWEB.CFG CONFIGURATION FILE

Add the new parameter in BLUE (Scroll down to the next page).

; Forms Web CGI Configuration File
; --------------------------------
; This file defines parameter values used by the Forms Web CGI

; ********************************
; PARAMETER VALUES USED BY DEFAULT
; ********************************
  ; SYSTEM PARAMETERS
  ; -----------------
  ; These have fixed names and give information required by the Forms 
  ; Web CGI in order to function.  They cannot be specified in the URL query 
  ; string.  But they can be overriden in a named configuration (see below).
baseHTML=%ORACLE_HOME%/forms60/server/base.htm
baseHTMLJInitiator=%ORACLE_HOME%/forms60/server/basejini.htm
HTMLdelimiter=%
MetricsServerPort=9021
MetricsServerErrorURL=
  ; The next parameter specifies how to execute the Forms applet under 
  ; Microsoft Internet Explorer 5.0.  Put IE50=native if you want the
  ; Forms applet to run in the browser's native JVM.  
IE50=JInitiator
#IE50=native

  ; USER PARAMETERS
  ; ---------------  
  ; These match variables (e.g. %form%) in the baseHTML file. Their values 
  ; may be overridden by specifying them in the URL query string
  ; (e.g. "http://myhost.mydomain.com/ifcgi60.exe?form=myform&width=700")
  ; or by overriding them in a specific, named configuration (see below)

  ; 1) Runform arguments:
form=test.fmx
userid=
otherparams=

  ; 2) HTML page title, attributes for the BODY tag, and HTML to add before and 
  ;    after the form:
pageTitle=Oracle Forms Server
HTMLbodyAttrs=
HTMLbeforeForm=
HTMLafterForm=

  ; 3) Values for the Forms applet parameters:
width=960
height=684
separateFrame=false
splashScreen=no
    ; select default background by not specifying a value
background=
lookAndFeel=Oracle
colorScheme=teal
; serverApp=default
serverApp=forecast
serverPort=9001
serverHost=easgdev1.dats.ml.com
connectMode=socket
archive=f60web.jar
archive_ie=f60all.cab
xrecord=names

  ; 4) Parameters for JInitiator
    ; Page displayed to Netscape users to allow them to download JInitiator.  
    ; If you create your own version, set this parameter to point to it.
jinit_download_page=/jinitiator/us/jinit_download.htm
    ; Parameters related to the version of JInitiator.
jinit_classid=clsid:a2001dd0-c7bd-11d4-a3e1-00c04fa32518
jinit_exename=jinit1183.exe#Version=1,1,8,3
jinit_mimetype=application/x-jinit-applet;version=1.1.8.3
    ; jinit_classid=clsid:7d0314a8-7851-11d4-a3e1-00c04fa32518
    ; jinit_exename=jinit.exe#Version=1,1,7,31
    ; jinit_mimetype=application/x-jinit-applet;version=1.1.7.31

; ********************************
; SPECIFIC CONFIGURATIONS
; ********************************
;  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.mydomain.com/ifcgi60.exe?config=sepwin".

; Example 1: configuration to run forms in a separate browser window with 
;            "generic" look and feel (include "config=sepwin" in the URL)
[sepwin]
separateFrame=True
lookandfeel=Generic

; Example 2: configuration affecting users of MicroSoft Internet Explorer 5.0.  
;            Forms applet will run under the browser's native JVM rather than 
;            using Oracle JInitiator.
[ie50native]
IE50=native

; Example 3: configuration forcing use of the base.htm base HTML file in all 
;            cases (means applet-style tags will always be generated and 
;            JInitiator will never be used).  
[applet]
baseHTMLJInitiator=

; Example 4: configuration to run the demos
;            PLEASE DO NOT REMOVE THIS EXAMPLE, !  
;            It is needed to run the Forms demos (if they are installed)
[demo]
pageTitle=Oracle Forms Server Demos
width=700
height=550
form=start60
userid=%Demos_ConnectString%
archive=f60all.jar, oracle_ice-4_03_1.jar
serverApp=/forms60demo/demo
lookAndFeel=oracle
colorScheme=teal
;
[jini118]
jinit_download_page=/jinitiator/us/jinit_download.htm
    ; Parameters related to the version of JInitiator.
jinit_classid=clsid:a2001dd0-c7bd-11d4-a3e1-00c04fa32518
jinit_exename=jinit.exe#Version=1,1,8,3
jinit_mimetype=application/x-jinit-applet;version=1.1.8.3

[v0]
serverApp=f_test
serverport=9002

  1. SAMPLE STARTUP HTML FILE SOURCE CODE 
Search for “serverArgs” and append record=%xrecord% at the end of the string.  See example in BLUE.  

<!--
  $Header: basejini.htm@@/main/TOOLS_DEV2K_994/17 \
  Copyright (c) 1999, 2000 by Oracle Corporation. All Rights Reserved. \
  $
-->
<HTML>
<!-- FILE: basejini.htm (Oracle Developer Forms)                    -->

<!-- This is the default base HTML file for running a form on the   -->
<!-- web using JInitiator-style tags to include the Forms applet.   -->
<!-- This file will be REPLACED if you reinstall "Forms Web CGI and -->
<!-- cartridge", so you are advised to make your own version if you -->
<!-- want to make any modifications.  You should then set the       -->
<!-- baseHTML parameter in the Forms web CGI configuration file     -->
<!-- (formsweb.cfg) to point to your new file instead of this one.  -->

<!-- IMPORTANT NOTE: default values for all the variables which     -->
<!-- appear below (delimited by the percent character) are defined  -->
<!-- in the formsweb.cfg file. It is preferable to make changes in  -->
<!-- that file where possible, and leave this one untouched.        -->

<HEAD><TITLE>%pageTitle%</TITLE></HEAD>

<BODY %HTMLbodyAttrs%>
%HTMLbeforeForm%

<!-- Forms applet definition (start) -->
<OBJECT classid="%jinit_classid%"
        codebase="/jinitiator/%jinit_exename%"
        WIDTH="%Width%"
        HEIGHT="%Height%"
        HSPACE="0"
        VSPACE="0">
<PARAM NAME="TYPE"       VALUE="%jinit_mimetype%">
<PARAM NAME="CODEBASE"   VALUE="/forms60java/">
<PARAM NAME="CODE"       VALUE="oracle.forms.engine.Main" >
<PARAM NAME="ARCHIVE"    VALUE="%archive%" > 

<PARAM NAME="serverPort" VALUE="%serverPort%">
<PARAM NAME="serverHost" VALUE="%serverHost%">
<PARAM NAME="connectMode" VALUE="%connectMode%">
<PARAM NAME="serverArgs" VALUE="module=%form% userid=%userid% %otherParams% record=%xrecord%">
<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%">
<COMMENT> 
<EMBED SRC="" PLUGINSPAGE="%jinit_download_page%" 
        TYPE="%jinit_mimetype%" 
        java_codebase="/forms60java/" 
        java_code="oracle.forms.engine.Main" 
        java_archive="%archive%" 
        WIDTH="%Width%"
        HEIGHT="%Height%" 
        HSPACE="0"
        VSPACE="0"

        serverPort="%serverPort%"
        serverHost="%serverHost%"
        connectMode="%connectMode%"
        serverArgs="module=%form% userid=%userid% %otherparams% record=%xrecord%"
        separateFrame="%separateFrame%"
        splashScreen="%splashScreen%"
        background="%background%"
        lookAndFeel="%lookAndFeel%"
        colorScheme="%colorScheme%"
        serverApp="%serverApp%"
>
<NOEMBED> 
</COMMENT> 
</NOEMBED></EMBED> 
</OBJECT>
<!-- Forms applet definition (end) -->

%HTMLafterForm%

</BODY>
</HTML>