$ uname -srvm
Linux 2.6.35-22-generic #35-Ubuntu SMP Sat Oct 16 20:45:36 UTC 2010 x86_64
$ java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)
SOA Suite 11.1.1.4.0 (soa_server1, soa_server2 클러스터 구성)
JDeveloper 에서 SOA 서버로 배치(deploy)를 하려고 할때 "java.io.IOException: Too many open files" 에러가 났습니다.
[09:59:20 AM] ---- Deployment started. ----
[09:59:20 AM] Target platform is (Weblogic 10.3).
[09:59:20 AM] Running dependency analysis...
[09:59:20 AM] Building...
[09:59:36 AM] Deploying profile...
[09:59:36 AM] Wrote Archive Module to D:\dev\POProcessing\POProcessing\deploy\sca_POProcessing_rev1.0.jar
[09:59:36 AM] Running dependency analysis...
[09:59:36 AM] Building...
[09:59:42 AM] Deploying 2 profiles...
[09:59:42 AM] Wrote Web Application Module to D:\dev\POProcessing\ApproveTaskDetails\deploy\ApproveTaskDetails.war
[09:59:43 AM] Wrote Enterprise Application Module to D:\dev\POProcessing\deploy\POProcessing.ear
[09:59:43 AM] Deploying sca_POProcessing_rev1.0.jar to partition "default" on server soa_server2 [http://{hostname}:8003]
[09:59:43 AM] Processing sar=/D:/dev/POProcessing/POProcessing/deploy/sca_POProcessing_rev1.0.jar
[09:59:43 AM] Adding sar file - D:\dev\POProcessing\POProcessing\deploy\sca_POProcessing_rev1.0.jar
[09:59:43 AM] Preparing to send HTTP request for deployment
[09:59:43 AM] Creating HTTP connection to host:{hostname}, port:8003
[09:59:43 AM] Sending internal deployment descriptor
[09:59:43 AM] Sending archive - sca_POProcessing_rev1.0.jar
[09:59:44 AM] Received HTTP response from the server, response code=500
[09:59:44 AM] Error deploying archive sca_POProcessing_rev1.0.jar to partition "default" on server soa_server2 [http://{hostname}:8003]
[09:59:44 AM] HTTP error code returned [500]
[09:59:44 AM] Error message from server:
There was an error deploying the composite on soa_server2: Operation failed - Member(Id=1, Timestamp=2011-04-13 22:52:13.054, Address=192.168.0.192:8088, MachineId=26816, Location=machine:{hostname},process:28606, Role=WeblogicServer):Error occurred during deployment of component: FulfillmentRules to service engine: implementation.decision, for composite: POProcessing: Error compiling fact classes.
Error while compiling fact classes for service FulfillmentRules.
Check the underlying exception and correct the error. If the error persists, contact Oracle Support Services.
FulfillmentRules; . Please see the server diagnostic logs on soa_server2 for details.
[09:59:44 AM] Check server log for more details.
[09:59:44 AM] Error deploying archive sca_POProcessing_rev1.0.jar to partition "default" on server soa_server2 [http://{hostname}:8003]
[09:59:44 AM] Deploying sca_POProcessing_rev1.0.jar to partition "default" on server soa_server1 [http://{hostname}:8001]
[09:59:44 AM] Processing sar=/D:/dev/POProcessing/POProcessing/deploy/sca_POProcessing_rev1.0.jar
[09:59:44 AM] Adding sar file - D:\dev\POProcessing\POProcessing\deploy\sca_POProcessing_rev1.0.jar
[09:59:44 AM] Preparing to send HTTP request for deployment
[09:59:44 AM] Creating HTTP connection to host:{hostname}, port:8001
[09:59:44 AM] Sending internal deployment descriptor
[09:59:45 AM] Sending archive - sca_POProcessing_rev1.0.jar
[09:59:52 AM] Received HTTP response from the server, response code=500
[09:59:52 AM] Invalid logging line: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Draft//EN">
[09:59:52 AM] Invalid logging line: <HTML>
[09:59:52 AM] Invalid logging line: <HEAD>
[09:59:52 AM] Invalid logging line: <TITLE>Error 500--Internal Server Error</TITLE>
[09:59:52 AM] Invalid logging line: <META NAME="GENERATOR" CONTENT="WebLogic Server">
[09:59:52 AM] Invalid logging line: </HEAD>
[09:59:52 AM] Invalid logging line: <BODY bgcolor="white">
[09:59:52 AM] Invalid logging line: <FONT FACE=Helvetica><BR CLEAR=all>
[09:59:52 AM] Invalid logging line: <TABLE border=0 cellspacing=5><TR><TD><BR CLEAR=all>
[09:59:52 AM] Invalid logging line: <FONT FACE="Helvetica" COLOR="black" SIZE="3"><H2>Error 500--Internal Server Error</H2>
[09:59:52 AM] Invalid logging line: </FONT></TD></TR>
[09:59:52 AM] Invalid logging line: </TABLE>
[09:59:52 AM] Invalid logging line: <TABLE border=0 width=100% cellpadding=10><TR><TD VALIGN=top WIDTH=100% BGCOLOR=white><FONT FACE="Courier New"><pre>java.io.IOException: Too many open files [09:59:52 AM] Invalid logging line: at java.io.UnixFileSystem.createFileExclusively(Native Method)
[09:59:52 AM] Invalid logging line: at java.io.File.checkAndCreate(File.java:1704)
[09:59:52 AM] Invalid logging line: at java.io.File.createTempFile(File.java:1792)
[09:59:52 AM] Invalid logging line: at java.io.File.createTempFile(File.java:1828)
[09:59:52 AM] Invalid logging line: at oracle.integration.platform.blocks.deploy.servlet.CompositeDeployerServlet.createBaseSARDir(CompositeDeployerServlet.java:536)
[09:59:52 AM] Invalid logging line: at oracle.integration.platform.blocks.deploy.servlet.CompositeDeployerServlet.doPostInsideLoggingSession(CompositeDeployerServlet.java:169)
[09:59:52 AM] Invalid logging line: at oracle.integration.platform.blocks.deploy.servlet.CompositeDeployerServlet.doPost(CompositeDeployerServlet.java:114)
[09:59:52 AM] Invalid logging line: at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
[09:59:52 AM] Invalid logging line: at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
[09:59:52 AM] Invalid logging line: at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
[09:59:52 AM] Invalid logging line: at java.security.AccessController.doPrivileged(Native Method)
[09:59:52 AM] Invalid logging line: at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
[09:59:52 AM] Invalid logging line: at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
[09:59:52 AM] Invalid logging line: at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
[09:59:52 AM] Invalid logging line: at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
[09:59:52 AM] Invalid logging line: at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
[09:59:52 AM] Invalid logging line: at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
[09:59:52 AM] Invalid logging line: at java.security.AccessController.doPrivileged(Native Method)
[09:59:52 AM] Invalid logging line: at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
[09:59:52 AM] Invalid logging line: at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
[09:59:52 AM] Invalid logging line: at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
[09:59:52 AM] Invalid logging line: at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
[09:59:52 AM] Invalid logging line: at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
[09:59:52 AM] Invalid logging line: at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
[09:59:52 AM] Invalid logging line: at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
[09:59:52 AM] Invalid logging line: at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
[09:59:52 AM] Invalid logging line: at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
[09:59:52 AM] Invalid logging line: at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
[09:59:52 AM] Invalid logging line: at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
[09:59:52 AM] Invalid logging line: </pre></FONT></TD></TR>
[09:59:52 AM] Invalid logging line: </TABLE>
[09:59:52 AM] Invalid logging line: </BODY>
[09:59:52 AM] Invalid logging line: </HTML>
[09:59:52 AM] Error deploying archive sca_POProcessing_rev1.0.jar to partition "default" on server soa_server1 [http://{hostname}:8001]
[09:59:52 AM] HTTP error code returned [500]
[09:59:52 AM] No error message is returned from the server.
[09:59:52 AM] Error deploying archive sca_POProcessing_rev1.0.jar to partition "default" on server soa_server1 [http://{hostname}:8001]
[09:59:52 AM] #### Deployment incomplete. ####
[09:59:52 AM] Error deploying archive file:/D:/dev/POProcessing/POProcessing/deploy/sca_POProcessing_rev1.0.jar
(oracle.tip.tools.ide.fabric.deploy.common.SOARemoteDeployer)
soa나 jdeveloper의 문제가 아니고 OS 환경 설정의 문제더군요....
SOA를 구동하는 계정으로 로그인해서 'ulimit -a' 를 입력합니다.
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 20
file size (blocks, -f) unlimited
pending signals (-i) 16382
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
값을 설정하지 않았다면 1024로 설정 됩니다.
root 계정으로 /etc/security/limits.conf 파일을 수정합니다.
# vi /etc/security/limits.conf
# 아래에 추가 (계정명: weblogic)
weblogic soft nofile 4096
weblogic hard nofile 4096
마지막 숫자를 적당한 값으로 설정합니다.
이제 SOA 구동시킬 계정으로 로그인 후 'ulimit -a' 입력
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 20
file size (blocks, -f) unlimited
pending signals (-i) 16382
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 4096
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
이제 weblogic(admin), soa, bam 등등 다시 시작 후 배치(deploy) 하니 잘 되는군요.. ㅎㅎ