Bug: On Solaris, some layers do not display when there are map configuration files with many shapefile layers
When using map configuration files with many shapefile layers, some layers may not display. One of the following error messages may display:
"Unable to display MapService".
"Requested MapService is not available".
"Unable to display ArcIMS service".
"Requested ArcIMS service is not available".
Solaris and Linux platforms have a limitation of 256 file handles per process. When this limit is reached and no more file handles are available, any layers trying to access file handles above this limit are excluded.
The 256 file handle limit also applies when the Extract Server is used. Some layers may not be extracted if the 256 limit is reached.
The limitation of 256 file handles per process for Solaris and Linux cannot be modified. However, it is possible to work around the issue by monitoring how many file handles a site is utilizing and creating new processes when the file handle limit is reached.
In ArcIMS terms, a process is equivalent to each Spatial Server, or aimsserver.exe, running.
First, determine how many file handles are consumed for each aimsserver.exe process by using either the formula or commands below.
Use a formula to calculate the number of file handles:
# file handles = (#shapefile layers * 3) + (#threads * #shapefile layers * (2 + #dbf indexes) )
#dbf indexes is optional and not generally used with ESRI products.
For example, 10 layers with 4 threads (the default for an Image Service):
# file handles = (10 * 3) + (4 * 10 * (2+0))
# file handles = 30 + 80 = 110 file handles needed
Another option is to use commands to calculate the number of file handles:
Retrieve the Process ID (PID):
ps -ef | grep aimsserver
This returns a string similar to the one below for each aimsserver process running. The PID is the second value in the string.
ims40 1074 1038 0 07:19:15 pts/25 0:01 /spin1/ims40/aims40exe/bin/aimsserver.exe spin_1 spin 5050
Use each PID value returned to yield the number of file handles used by that process.
pfiles <PID> | grep mode | wc -1
For example (Solaris),
pfiles 1074 | grep mode | wc -1
yields 212 file handles used
After determining that an aimsserver.exe process is close to or over the 256 file handle limit, it is necessary to redistribute the ArcIMS services among other aimsserver.exe processes that are not reaching the limit.
This may involve the following:
1) Adding additional Spatial Servers.
2) Adding Virtual Servers and assigning them to those Spatial Servers.
3) Reassigning some existing ArcIMS services to those Virtual Servers.
Refer to the user documentation for details on performing these tasks in ArcIMS Administrator, or see the Related Information links below to use the command line instead of Administrator.
- Manage ArcIMS from the command line
- Manage the Application Server from the command line for ArcIMS 3.0
- Configure multiple application servers in Solaris
- Configure multiple Spatial Servers as a workaround for the Solaris file limit