How to kill a Form ?

dassdhan
    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
        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
          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
            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
              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
                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
                  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