Known issues for Oracle NCA and Oracle - Web protocols
This section describes troubleshooting and limitations for Oracle NCA and Oracle - Web protocol scripts.
Tip: For general troubleshooting and limitations, see Known issues.
General limitations
-
The Remote Application via Proxy > Display recording toolbar on client machine option, is not supported for the Oracle NCA or Oracle - Web protocols. For details, see Start Recording dialog box.
-
Recording by proxy (local or remote) works only for servers which use HTTP/S communication. It does not work for servers that use only Socket communication.
-
Due to changes in subprocess management introduced in Chrome and Edge version 150, recording Oracle - Web scripts using hooking mode is supported only for versions 149 and earlier.
Testing secure Oracle NCA applications
-
In the Mapping and Filtering node of the Recording Options dialog box, delete any existing Port mapping entries for port 443 and create a new Port mapping entry for the Oracle server name:
Service ID: HTTP
Target Server: Oracle Forms Server IP address or long host name
Target Port: 443
Connection Type: SSL
SSL Version: Active SSL version. If in doubt, select SSL 2/3.Note that the Service ID is HTTP and not NCA.
For more information, see Network > Mapping and filtering recording options.
-
If you encounter problems when replaying an NCA HTTPS script during the nca_connect_server command, insert the following function at the beginning of the script.
web_set_sockets_option("SSL_VERSION","3");
IE crashes when recording Oracle NCA or Oracle - Web scripts
This can occur due to an incompatible DLL file.
Replace the incompatible DLL:
-
Open the C:\program files\oracle\JInitiator_1.3.1.18\bin\hotspot folder.
-
Back up the jvm.dll file.
-
Delete the jvm.dll file and replace it with a different version of the file.
Testing servlets and other Oracle NCA applications
Certain NCA sessions use servlets:
-
the Forms Listener servlet
-
applications or modules that use both NCA and HTTP communications, such as the Oracle Configurator
-
the initializing of the NCA application (downloading the applet, jar, and gif files)
When recording servlets, you must record both Oracle NCA and web functions. You can do this by using the Oracle - Web protocol or creating an Oracle NCA multi-protocol script. Alternatively, if you created a single protocol script for Oracle NCA, open the General > Protocols node in the Recording Options, and enable the Web protocol. Then you can begin recording.
If you are unsure whether your application uses servlets, you can check the default.cfg file in the script folder after recording a script. Locate the entry "UseServletMode="
If the value is 1 or 2, then servlets are being used and you must enable HTTP recording in addition to Oracle NCA.
If you already recorded a script, you can regenerate the code automatically to include the web functions without having to re-record. Select Record > Regenerate Script, and select the Web protocol in the Protocols section.
Determining the recording mode
When recording Oracle NCA scripts, VuGen automatically determines the correct connection mode: HTTP or Socket mode. Generally, you are not required to modify any of the recording settings as VuGen auto-detects the system configuration. In systems where the standard port mapping are reserved by other applications, you may need to modify the Port Mapping settings, depending on the recording mode.
You can determine the recording mode in one of the following ways:
-
When using the NCA application, open the Java Console.
proxyHost=null proxyPort=0 connectMode=HTTP Forms Applet version is: 60812
The connectMode entry indicates HTTP, HTTPS, or socket.
-
After recording an NCA session, open the default.cfg file in the Vuser folder and check the value of the UseHttpConnectMode entry.
[HttpConnectMode] UseHttpConnectMode= 2 // 0 = socket 1 = http 2 = https
When defining a new port mapping in the Server Entry dialog box, use a Service ID of HTTP for HTTP or HTTPS modes. For Socket mode, use a Service ID of NCA.
For more information about Port Mapping settings, see Network > Mapping and filtering recording options.
Recording trace information for Oracle DB
To debug your script, you can use the Oracle DB breakdown graphs. To gather data for this graph, you turn on the trace mechanism before running the script.
To manually turn on the tracing mechanism, use the nca_set_custom_dbtrace function. For more information, see the Function Reference.
Recording with Firefox
Recording Oracle Web scripts is supported for Firefox versions 52 ESR and earlier. Newer Firefox versions no longer support NPAPI and are therefore not compatible with Java plugins.
Correlation rule for NCAJServSessionId in Oracle - Web script
When recording an Oracle - Web script, VuGen automatically adds a correlation rule to capture the NCAJServSessionId parameter.
This parameter identifies the dedicated server-side session for each connected client. The session is established by Oracle Forms servlet mode, and the application server identifies the session through the NCAJServSessionId unique URL path token, which is returned as the response body of the first HTTP request to frmservlet.
During recording, the server generates a token that is valid only for that specific recording session. When replaying the script, the recorded token is no longer valid. Each Vuser must obtain and use its own fresh token, which is issued only at the start of a new session.
VuGen handles this automatically, by generating the following correlation statement in the recorded script:
web_reg_save_param("NCAJServSessionId",
"LB=",
"RB=?",
"Search=Noresource",
LAST);
Known issue: Sometimes this correlation rule does not work, because of the different way the server responded to this request. A log similar to this is displayed during replay:
Parameter Substitution: parameter
"NCAJServSessionId" = "ifError:3/null"
In this case, the automatically generated correlation for NCAJServSessionId can be replaced with the following code:
sprintf(ncaID, "/forms/lservlet;JsessionIDForms=%s", lr_eval_string("{JsessionIDForms}"));
lr_output_message("ncaID=%s", ncaID);
lr_save_string(ncaID, "NCAJServSessionId");
The parameter ncaID needs to be defined at the very beginning of the script, as follows:
char ncaID[1024];

