English

Bug: On Solaris, some layers do not display when there are map configuration files with many shapefile layers

Description

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

Cause

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.

Workaround

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.

Note:
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:

Code:
# file handles = (#shapefile layers * 3) + (#threads * #shapefile layers * (2 + #dbf indexes) )


Note:
#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):

Code:
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.

Code:
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.

Related Information