Consultor Eletrônico



Kbase P30828: Error Unable to create compile file. Compilation canceled, on Solaris
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   23/02/2010
Status: Verified

SYMPTOM(s):

Error Unable to create compile file. Compilation canceled, on Solaris

File handles used have exceeded 256.

Sun Solaris file handle soft limit is set above 256.

Often seen when connecting to databases that have a lot of extents.

FACT(s) (Environment):

Sun Solaris SPARC
Progress 6.x
Progress 7.x
Progress 8.x
Progress 9.x

CAUSE:

There is a Sun Solaris bug in the /opt/SUNWspro/bin/cc compiler that Progress is using. We expect that the /opt/SUNWspro/bin/cc compiler uses different stdio.h or libc constraints than the /usr/ucb/cc compiler.

While Solaris itself supports file descriptor limits of up to 1024, the STDIO library is still constrained to numbers less than 256.

Because we use stdio.h in some areas, and this happens to be one of them, we are constrained by this operating system limitation.

Sun has resolved the bug in Solaris 9 but because Progress 9.x and below are built on the older Solaris versions this bug is not resolved. Progress has no intention to change operating system compilers either due to it potentially making the product become unstable.

CAUSE:

Bug# OE00031258

FIX:

Upgrade to OpenEdge 10.0A or later.
If upgrading is not possible then the following two workarounds are available:
1. Connect the client to the databases using the client/server connection parameters -S -H -N. This avoids the client from having to connect to all of the database files directly.
2. Reduce the number of files that the client connects to. This includes 4GL procedures and database extents. Starting from 9.1C, an easy way to reduce the number of database extents is to Large File Enable your database and reduce the number of database extents. That is as long as your operating system is also large file enabled.