EMFILE on any Unix operating system means that you have opened too many
files at the same time. This is a generic problem not specific to
libxml2. You should (a) make sure you're closing all files and sockets
opened by your application, and (b) run "ulimit -n" to discover the
limit that you're exceeding.
On solaris, there are "hard" and "soft" limits. Soft limits can be
changed by the user but hard limits can't. Fixing the problem may be as
simple as setting your soft limit higher. If you're running up against
the hard limits, you'll need to edit /etc/system (as root) and modify or
add lines that look like:
* set hard limit on file descriptors
set rlim_fd_max = 4096 (or whatever)
* set soft limit on file descriptors
set rlim_fd_cur = 1024 (or whatever)
Hope this helps.
Reid.
On Mon, 2004-02-23 at 11:55, Jang, Darryl wrote:
I am using libxml2 and libxslt on this environment: SunOS cbrdeveng5 5.8 Generic_108528-18 sun4u sparc SUNW,Ultra-Enterprise Through my application, I am transforming data with xslt to properly format a message out to a third party. In normal circumstances my transformations work just fine; my .xsl file is there and globally readable. However, in high concurrency (40+ threads) I am getting this in STDERR: I/O error : Too many open files I/O warning : failed to load external entity "/home/djang/codebase/feservertarget/server/data/payment/insert_order_cc_auth.xsl" error I get this error when calling: xsltParseStylesheetFile It returns NULL. I've looked in the source code briefly, and it's reporting EMFILE from sys/errno.h. Something within xmlIO.c is NULL. I am using libxml 2.6.4 and have compiled it --with-threads. Any insight on this matter would be much appreciated. Thanks much. -- Darryl.
_______________________ Reid Spencer President & CTO eXtensible Systems, Inc. rspencer x10sys com
Attachment:
signature.asc
Description: This is a digitally signed message part