Issue
So I'm trying to figure out what oracle forms app is sending to server (to possibly use that for load testing). Fiddler tells me that sample request's header looks like this:
POST http://server:9001/forms/lservlet;jsessionid=[long string] HTTP/1.1
Pragma: 81
Content-type: application/octet-stream
Cache-Control: no-cache
User-Agent: Mozilla/4.0 (Windows XP 5.1) Java/1.6.0_30
Host: server:9001
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Content-Length: 39
And the body looks like encrypted/compressed. The question is: what happened to the body (compression, decryption) and how do I get readable string? Or at least bytes that I could send programatically?
EDIT All right, if I go to fiddler's HexView there I have nice hexadecimal representation of what has been sent. Still not clear what client does with packet body, though.
EDIT 2 Seems no one likes hacking oracle forms packets. Anyway, to end this here's a conclusion I've come to: if you send a http packet identical to the one before (like imitating search in a form) - server would answer with
ifError:0/FRM-93618: fatal error reading data from runtime process
Contact your system administrator.
And the application itself would then throw
FRM-92104: A network error or server failure has occurred. The request was sent to the
wrong application server (not the one which created the session). The Forms client has
attempted to migrate the session %s time(s) without success. You will need to restart your application.
Would be great if anyone could shed some light on why this is so.
Solution
The problem can be resolved by setting the HTTP Server directive KeepAlive
to Off
. This is the recommended setting for Forms.
Oracle recommends using Oracle Enterprise Manager 11g Fusion Middleware Control
[ http://localhost:7001/em
where 7001
is the default port ] to modify configuration files. To modify this setting, accomplish the following:
- In the navigator pane, click on the
OHS
node underWeb Tier
. - To the upper right of this node, click on
Oracle HTTP Server
->Administration
->Advanced Configuration
. - Choose
httpd.conf
from the drop down list. - Set the
KeepAlive
parameter toOff
. - Apply the changes.
- You will need to restart the
HTTP Server
for this change to take effect.
Alternatively, edit the file directly
%DOMAIN_HOME%\config\config.xml
( On Unix :
$ORACLE_INSTANCE/config/config.xml
)by setting manually
KeepAlive
parameter fromOn
toOff
.
Answered By - Barbaros Özhan