Caused by: java.io.FileNotFoundException: /home/jboss/jboss-5.1.0.GA/server/default/deploy/card.war/WEB-INF/web.xml (Too many open files)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at org.jboss.net.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:128)
at org.jboss.virtual.plugins.context.AbstractURLHandler.openStream(AbstractURLHandler.java:203)
at org.jboss.virtual.VirtualFile.openStream(VirtualFile.java:230)
at org.jboss.virtual.VFSInputSource.getByteStream(VFSInputSource.java:66)
... 44 more
˜q™æ˜¯å› 䨓linuxé™åˆ¶äº†æ‰“开文äšgçš„æœ€å¤§å¥æŸ„æ•°é‡ã€?/span>
linux默认的打开文äšgæ•°é‡æ˜?024åQŒæˆ‘们å¯ä»¥ç”¨ulimit -a æ¥æŸ¥çœ‹ç³»¾lŸèµ„æºï¼Œä¾‹å¦‚åQ?/span>
[root@redhat ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024 --打开最大文件数é‡é™åˆ?/span>
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 16384
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
解决该问题的宗旨是:增大打开文äšgæœ€å¤§å¥æŸ„é™åˆ¶æ•°åQŒè¯¥æ•°æ˜¯1024的整数å€?/span>
1.临时增大open filesçš„é™åˆ¶å€?/span>
å¯ä»¥ç”¨ulimit -n æ¥äÍæ—¶å¢žå¤§è¯¥é™åˆ¶å€û|¼Œä½†æ˜¯ä¸€æ—¦é‡å¯æœåС噍åŽï¼Œè¯¥å€¼åˆä¼šæ¢å¤åˆ°1024。åªèƒ½æš‚时性的解决问题。命令如下:
[root@redhat ~]# ulimit -n 65536
[root@redhat ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 16384
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
2.å½Õdº•增大open filesçš„é™åˆ¶å€?/span>
一般情况下åQŒæˆ‘们都会通过修改¾pÈ»Ÿé™åˆ¶æ–‡äšgæ¥å½»åº•增大open files的倹{€?/span>
2.1 通过VI打开/etc/security/limits.confåQŒåœ¨“# End of file”ä¸Šé¢æ·ÕdР如䏋åQ?/span>
* - nofile 65536
该è¯å¥è¡¨½Cºï¼šæ¯ä¸€ä¸ªç”¨æˆïLš„默认打开文äšg数是65536
2.2 通过VI打开/etc/sysctl.conf,在最åŽä¸€è¡Œæ·»åŠ å¦‚ä¸‹ï¼š
fs.file-max = 65536
2.3 é‡å¯sshæœåŠ¡
修改ssh serveré…置文äšgåQ?etc/ssh/sshd_config
UseLogin yes
é‡å¯ssh ç”?etc/init.d/sshd restart
æ¤æ—¶å†ç”¨ulimit -aæ¥æŸ¥çœ‹ï¼š
[root@redhat ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 16384
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
åQˆå¦‚果还ä¸è¡Œå¯ä»¥é‡å¯ä¸‹æœåŠ¡å™¨è¯•è¯•åQ?br />
˜q‘期有一™å¹ç›®åQŒéœ€è¦ä»ŽWebsphereæœåŠ¡å™¨è¿¿U»è‡³JBoss eap 5.0。绘q‡å¤š‹Æ¡åå¤ï¼Œåœ¨æµ‹è¯•机器上˜qç§»æˆåŠŸåQŒè®°å½•至æ¤ï¼Œä»¥å¤‡åŽç”¨ã€?/p>
1. 在server/default/deployè·¯å¾„ä¸‹å¢žåŠ oracle-ds.xmlæ–‡äšgåQŒå®šä¹‰æ•°æ®åº“˜qžæŽ¥çš„jndiåQŒå†…容如下:
2. 在应用的web-infç›®å½•ä¸‹å¢žåŠ jboss-web.xmlæ–‡äšgåQŒå…¶ä¸?lt;res-ref-name>æŒ‡å®šçš„æ ‡è¯†ä¸Žweb.xmlä¸çš„<resource-ref>下的<res-ref-name>æ ‡è¯†ä¸€è‡ß_¼Œå†…容如下åQ?/p>
3. ojdbc14.jar驱动攑֜¨server/default/lib路径下,ä¸èƒ½æ”‘Öœ¨åº”用web-inf/libä¸ï¼Œå¦åˆ™æŠ¥Apparently wrong driver class specified for URL: class: oracle.jdbc.driver.OracleDriver
4. åˆ é™¤åº”ç”¨web-inf/libä¸çš„ xerces*.jar and xml-apis*.jar åQŒå¦åˆ™æŠ¥XML error parsing: context.xml
5. log4j.jar 需�.2.13以上版本
6. åˆ é™¤oscore.jarä¸meta-infä¸çš„xmlæ–‡äšgåQŒè¿™äº›æ–‡ä»¶ç”¨äºŽEJB部çÖvã€?/p>