Pragma mode

The client side of the Oracle NCA Vuser can be configured to send an additional header to the server named Pragma.

The header is a counter that behaves as follows:

The initial message of the NCA handshake has a value of 1.

The messages that follow the handshake are counted, beginning with 3. The counter is incremented by 1 for each message sent by the client.

If the message received from the server is of type plain\text and the body of the message begins with ifError:#/#00, the client sends a 0 byte message to the server and the Pragma value changes its sign to a minus. This sign changes back after the client succeeds in receiving the information from the server.

Recording of the Pragma header is only supported in the multi-protocol mode (Oracle NCA and Web). You can identify the Pragma mode within the script's default.cfg file. When operating in Pragma mode, the UseServletMode is set to 2.

[HttpConnectMode]
UseHttpConnectMode=1
RelativeURL=<NCAJServSessionId>
UseServletMode=2

For information on the Pragma related settings, see the Oracle NCA > Client Emulation view in the runtime settings.

To identify the Pragma mode, you can perform a Winsock level recording and check the buffer contents. In the first example, the buffer contains the Pragma values as a counter:

send buf108
    "POST /ss2servlet/oracle.forms.servlet.ListenerServlet?JServSessionIdss2ser"
    "vlet=gk5q79uqy1 HTTP/1.1\r\n"
    "Pragma: 1\r\n"
    ...
send buf110
    "POST /ss2servlet/oracle.forms.servlet.ListenerServlet?JServSessionIdss2ser"
    "vlet=gk5q79uqy1 HTTP/1.1\r\n"
    "Pragma: 3\r\n"
    ...

In the following example, the buffer contains the Pragma values as an error indicator:

recv buf129 281
    "HTTP/1.1 200 OK\r\n"
    "Date: Tue, 21 May 2022 00:03:48 GMT\r\n"
    "Server: Oracle HTTP Server Powered by Apache/1.3.19 (Unix) mod_fastcgi/2.2"
    ".10 mod_perl/1.25 mod_oprocmgr/1.0\r\n"
    "Content-Length: 13\r\n"
    "Content-Type: text/plain\r\n"
    "\r\n"
    "ifError:8/100"
send buf130
    "POST /ss2servlet/oracle.forms.servlet.ListenerServlet?JServSessionIdss2ser"
    "vlet=gk5q79uqy1 HTTP/1.1\r\n"
    "Pragma: -12\r\n"
    ...

Back to top