This content has been marked as final. Show 6 replies
You can overcome this but at a cost. If you disable memory mapping your form will be fully loaded into memory thereby allowing the environment to not lock the file. The problem with this is that you will see an overall increase in memory consumption. This generally would not be a problem if the concurrent user load remains fairly low. In other words, if your machine (server) has substantial memory and you don't have a large concurrent user base then you like are ok leave memory mapping disabled. Generally, I would recommend using this carefully and most often not recommend using it in production environments. That said, to disable memory mapping, add the following to default.env:
One solution for this problem is to use parameter FORMS_MMAP/FORMS60_MMAP as described
in the following metalink document :
Note:151618.1 "Unable to Replace .fmx Files 'On The Fly' During Forms Runtime"
However as described in this document, this parameter should not be used in production
When there is no or very little maintenance periods in production systems to
perform such copy operations or there is an urgent need to replace a runtime module,
the following method is the recommended method :
Keep two directories including the same fmx/plx/pll/mmx, etc files, and
reference one of them in the FORMSXX_PATH in default.env/registry according to
the patform. Here FORMSXX_PATH stands for
FORMS60_PATH for Forms version 6.0.X
FORMS_PATH for Forms version 10.X /11.X
When you need to replace one/some runtime modules, replace the one
in the directory that is NOT referenced in the FORMSXX_PATH variable, then
change the reference to the updated directory in FORMSXX_PATH. From now on, the
new connections will start using the updated runtimes. When all the users
logout from their current sessions and connect to application once more, the old
directory will be ready for modifications. And at that time you can synchronize
the old directory with the new one and continue this way switching the
directories whenever needed.
Please note that, when there is a need to replace another form or the same form
once more, before having the chance to synchronize the directories, this 2
directory approach can be extended to 3,4 or more directories according to needs.
FORMS_PATH can be set up in default.env file.
If someone's answer is helpful or correct please mark it accordingly.
just kill from the database:
Edited by: indra budiantho on Apr 4, 2013 4:16 PM
SELECT s.inst_id, s.sid, s.client_info, s.serial#, p.spid, s.username, s.program FROM gv$session s JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id WHERE s.type != 'BACKGROUND' and client_info like '%/1331'; --- 1331 is user id or check that column ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;
But your query doesn't resolve my problem as below;
1. It shows USERNAME, which are database users, but I want Forms Users, which I defined in a database table.
2. It shows PROGRAM, which is frmbld.exe which is form builder file, but I want my application specific form i.e. which form is currently open by the user.
Please give me quey which shows me a specific current form using by a user.
Edited by: dassdhan on Apr 12, 2013 2:07 AM