Frm-92101 After Number of Sessions
Frm-92101 After Number of Sessions
Frm-92101 After Number of Sessions
Subject:FRM-92101, FRM-92050 and FRM-93000 Error When Running Forms After a Number of
Concurrent Connections and No New Connection Possible
Doc ID:187455.1 Type: PROBLEM
Modified Date: 08-MAR-2009 Status: PUBLISHED
Problem Description
You get frm-92050 sometimes togheter with FRM-92101 or FRM-92102 and in the jserv.log or
application.log a FRM-93000
or
ERROR 1444 - FORMS SERVICE STOPS UNEXPECTEDLY 1444 (with Forms Server)
when you connect to many connections ( in this case more than 80) This depends on the operating
systems limitations , you may even get this error with more/lesser connections also
Solution Description
Windows has a memory resource called the heap. This resource is running low and causing the
problem. To detemine whether this is the problem on your system:
1. Change the logon-property from the responsible service to "[x] Allow service to interact with
desktop" (using all the defaults of the registry!).
This forces the Apache Service (Forms 6i) or the Oracle Process Manager Service (Forms 9i and
above) to use the IO Desktop heap which is larger than the Non-IO Desktop heap by default. The
term "Desktop", here, is not to be confused with the normal Windows desktop, which holds your
icons and your background, etc. In this context, it is Microsoft terminology for an area of
memory.
If more heap resource is needed, then the appropriate heap resource can be modified in the
Registry.
2. Modify the appropriate variable in the registry. This should not be done unless:
- A backup has been made of the registry. Any error in modification of the registry can render the
system unusable.
- Solution 1 has been tested and has increased the number of processes that will run successfully.
The following information applies to Windows NT, Windows 2000. From the
HKEY_LOCAL_MACHINE sub tree, go to the following key:
\System\CurrentControlSet\Control\Session Manager\SubSystems
Select the Windows value.From the Edit menu, choose String. Increase the SharedSection
parameter. SharedSection specifies the system and desktop heaps using the followin g format:
SharedSection=xxxx,yyyy,zzzz
xxxx = System-wide Heapsize. There is no need to modify this value and it is ignored for the rest
of this discussion.
yyyy = IO Desktop Heapsize. This is the heap for memory objects in the IO Desktop.
zzzz = Non-IO Destop Heapsize. This is the heap for memory objects in the Non-IO Desktop.
Programs that get run as a service or which are spawned from a service fall into the Non-IO
Desktop, and therefore consume memory from that heap. All other programs, such as those run
from an icon or from a command line, or get spawned from those, consume memory from the IO
Desktop heap.
For server-style applications, such as a database, or Forms, a service has the advantage that a user
can logout and the program continues to run.
If you can't run any more processes, then you should increase the relevent heap. Using the Forms
examples in this bug, if you start Apache / Oracle Process Manager from the command line, then it
consumes memory from the IO Desktop heap. Then for each user, there is a Forms runtime process
spawned, which also consumes memory form the IO Desktop heap.In the case of this bug, the
memory ran out after 483 users. The solution would be to increase the relevant heap.
As stated earlier in this bug, when it was changed to 5112 KB (from the default of 3072 KB), more
than 700 users were able to run concurrently. Note that changing the Non-IO Desktop heap (the
512 KB) would achieve nothing in this case.
The converse is also true. If the Apache / Oracle Process Manager process were started as a
service, then the third value, Non-IO Desktop heap, would have to have been increased.
The values are recommended to be a multiple of 512, but this isn't necessary. There is a hard limit
of 48 Mb, which is the total heap size for Windows. But it seems unlikely that you will need to go
this high.
If you increase the Non -IO Desktop heap and your server is dedicated to Forms or some other
server process , then you can safely decrease the IO Desktop heap since that is just wasted. This
isn't necessary, though.
In summary, if you are hitting this problem where your server can not create any more processes,
you should increase the heap size of the either the IO Desktop or the Non-IO Desktop. The correct
one depends on how you run your application, whether from a service, or from an icon or
command line.
You have to restart the all services from Oracle AS, after saving the changes.
Explanation
This is an Operating system limitation on the heap sizes.