This discussion is archived
6 Replies Latest reply: Apr 12, 2013 4:27 AM by indra budiantho RSS

How to kill a Form ?

dassdhan Newbie
Currently Being Moderated
Hello,

I m working in 11gr2 Forms 64-bit with Weblogic server 10.3.6 on Windows Server 2008 Ent 64-bit edition.

While compiling a Form, if it is open on client computer, it doesn't compile. So I have to inform the user to first close that form on client computer, then I can compile that form.

But this was not necessary while working in 6i form application. I can the form, while running of the form.

Is it not possible in 11gr2 Forms ?
If not then tell me how can I kill that form without waiting a user to close?

Warm Regards
Dass
  • 1. Re: How to kill a Form ?
    Michael Ferrante (Oracle) Guru Moderator
    Currently Being Moderated
    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:

    FORMS_MMAP=0
  • 2. Re: How to kill a Form ?
    AlexDiniasi Journeyer
    Currently Being Moderated
    Hello,

    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
    environments.

    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.

    Regards,
    Alex

    If someone's answer is helpful or correct please mark it accordingly.
  • 3. Re: How to kill a Form ?
    indra budiantho Expert
    Currently Being Moderated
    just kill from the database:
    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;
    Edited by: indra budiantho on Apr 4, 2013 4:16 PM
  • 4. Re: How to kill a Form ?
    dassdhan Newbie
    Currently Being Moderated
    Thanks Alex !

    When I changed FORMSPATH variable in default.env file, then
    Is it not necessary to Stop Weblogic Server-WLS_FORMS and Start Weblogic Server-WLS_FORMS to take in effect ?
    if yes then this will disconnect all users. Otherwise OK.

    Please clarify.

    Thanks/Regards.
    Dass.
  • 5. Re: How to kill a Form ?
    dassdhan Newbie
    Currently Being Moderated
    Thanks Indra!

    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.

    Thanks/Regards.
    Dass.

    Edited by: dassdhan on Apr 12, 2013 2:07 AM
  • 6. Re: How to kill a Form ?
    indra budiantho Expert
    Currently Being Moderated
    hi, here how you can put your user information in the database, so u can use my query,call this in your form :
    DBMS_APPLICATION_INFO.set_CLIENT_INFO
    DBMS_APPLICATION_INFO.READ_CLIENT_INFO

    http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_appinf.htm

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points