I've read alot on the subject and I still want to try something...probably a fools errand.
We have a Forms App 10.1.2.0.2 that ~325 Users use concurrently. Within the browser, we get several forms open at the same time by program design.
We have Timouts this way:
heartbeat = 45
forms_timeout = 30
sessio-timout = 60
This all works fine to disconnect users when the leave for the day with forms still open.
We have a problem where the PC/Browser crashes and leaves the associated Forms Server and Database Sessions open till the 60 minute timout occurrs. In some cases, the user will have Database rows locked for edit. When the user goes back in, they get new sessions on the Forms Server and Database. Being a good user, they try to update the same DB Rows and get stuck behind the previous lock. They call us and we cleanup the sessions.
I would like to have a scenario like this is possible.
Heartbeat kills Forms Sessions at Forms Server if the pc/browser crashes after 3-5 minutes.
forms_timout/session-timeout kills Forms Session at Forms Server after 60-75 minutes if they go home with forms still running.
Anyone know how to do this? Form what I understand, heartbeat set less than forms_timout/session-timeout makes it never timout.
I've read up on using the bean timer, but I 'think' our design makes that inpractical. Users may have several forms open in the browser (single session) and the timer is per form and would kill just the forms and not the Forms Session at Forms Server - do I have this wrong?
For cleaning up the session @ DB end,
You can set the parameter SQLNET.EXPIRE_TIME=60
This will disconnect all the sessions that have exceeded more that 60 mins
Little Article About Time Outs which will help ya HeartBeat value greater than Forms_Timeout value
Forms will timeout if the "HeartBeat" is set to a value higher than
FORMS_TIMEOUT. In this case, when clients reaches the timeout value, they would
get a FRM-92101.
For Example, if you set:
FORMS_TIMEOUT = 3
HeartBeat = 4
After 3 minutes of Forms inactivity, the forms process will be terminated on the
server due to timeout. But first HeartBeat will be after 4 minutes. So after 4
minutes, clients will receive FRM-92101. HeartBeat value greater than Session-Timeout value
Forms also will timeout if the "HeartBeat" is set to a value higher than
Session-Timeout = 1
Forms_Timout = 3
HeartBeat = 2
After 2 minutes, clients will receive FRM-92102. And no errors will be shown in
the default-web-access.log or in the application.log, HTTP Server Timeout:
When attempting to run a query in forms that is running longer than 5 minutes,
the following error occurs: FRM-92101
1. Log into Enterprise Manger
2. Connect to the middle tier
3. Click on HTTP Server > Administration > Server_Properties->
4. Change the parameter "Request Timeout" to a number greater than the
default (300 seconds).
Getting a Timeout running reports, and after the report returned a ORA-3114 and
disconnect with forms.
The solution ended up being to set the DCD timer on the Database side. This
entails setting the following line in the sqlnet.ora file (Database side only):
SQLNET.EXPIRE_TIME = 10