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