<IPCPERM>
inter-process communication permission mask
Web Server 시스템에 대한 관리자가 아닌 개발자와 같은 다른 사용자가 wsdown이나 특정 프로세스를 기동 및 종료를 할 수 있으며 이를 wsadmin를 통해 확인할 수 있도록 한다. Unix 시스템 환경 하에서는 관리자 개인이나 그룹, 기타에게 각각 파일 접속 제어(판독기능/기록기능/수행기능)를 지정 할 수 있다. 즉, default인 경우에는 다른 사용자들은 위의 기능을 사용할 수 없으나, IPCPERM이 0777인 경우에는 다른 사용자들은 위의 모든 기능을 사용할 수 있다.
<Set user ID, Set group ID, Sticky bit>
In addition to the basic permissions discussed above, there are also three bits of information defined for files in UNIX :
- SUID or setuid : change user ID on execution : if setuid bit is set, when the file be executed by a user, thre process will have the same rights as the owner of the file being executed.
- SGID or setgid : chage group ID on execution : Same as above, but inherits rights of the group of the owner of the file. For directories it also may mean that when a new file is created in the directory it will inherit the group of the directory (and not of the user who created the file)
- Sticky bit : It was used to trigger process to "stick" in memory after it is finished, now this usage is obsolete. Currently its use is system dependant and it is mostly used to suppress deletion of the files that belong to other users in the folder where you hava "write" access to.
-
Numeric representation
- Octal digit | Binary value | Meaning
- 0 000 setuid, setgid sticky bits are cleared
- 1 001 sticky bit is set
- 2 010 setgid bit is set
- 3 011 setgid and sticky bits are set
- 4 100 setuid bit is set
- 5 101 setuid and sticky bits are set
- 6 110 setuid and setgid bits are set
- 7 111 setuid, setgid, sticky bits are set
-
Textual representation
- SUID : if set, then replaces "x" in the owner permissions to "s", if owner has execute permission, or to "S" otherwise. Example: -rws------ both owner execute and SUID are set, -r-S------ SUID is set, but owner execute is not set
- SGID : If set, then repplaces "x" in the group permissions to "s", if group has execute permission, or to "S" otherwise.
- Sticky : If set, then replaces "x" in the others permissions to "t", if others have execute permissions, or to "T" otherwise
<Invocation Manager 설정>
Method invocation manager는 Engine Container에서 Servlet/JSP methods, stateless EJB methods 그리고 MDB methods와 같은 Stateless 메소드를 호출하는 동안 사용하는 외부 자원(external resource)을 추적하고 보고한다.
- NoAction : 기능을 사용하지 않는다.
- Warning : 이 선택사항이 선택되면, 만약 한 자원이 무상태 메소드 호출 동안 사용되었지만 반환할 때 닫지 않게 될 경우 이벤트가 container log에 warning 메시지로 기록된다.
- AutoClose : 이 선택사항이 선택되면, 만약 한 자원이 무상태 메소드 호출 동안 사용되었으나 반환할 때 닫히지 않는다면 자원이 자동적으로 닫힌다.
위치는 <jeus-system> - <node> - <engine-container> - <invocation-manager-action> 이다.
AutoClose일 때 다음과 같은 메시지가 나온다.
-
2008.05.08 17:17:16][0][0_540] [test-19] [Network-0907] <SocketStreamImpl> closing the SocketStream because of occuring the exception: [SocketStream(remote : test:63370(), local : test:9736(JNSServer), jeus.net.impl.SocketStream14@17dc299)]
java.io.IOException: disconnected
Warning일 때
- [2008.05.28 16:26:56][1][0_540] [container1-20] [MGR-0396] Resources are not closed after use: [JeusConnection[ID=oracle-13,actual=oracle.jdbc.driver.LogicalConnection@107e4bc]]
[2008.05.28 16:26:56][0][0_540] [container1-20] [MGR-0107] RequestURI : /test.jsp
<WebtoB와 JEUS 사이에서 DOCROOT 변경 없이 이미지가 정상적으로 뜨게 하는 방법>
- ServiceOrder가 URI, EXT 일 경우 : URI 절에서는 구별해서 처리하기 어렵다. 왜냐하면, URI에서 처리를 담당할 ServerType이나 Vhost를 설정하기 때문이다.
- ServiceOrder가 EXT, URI 일 경우 : EXT 절에서 각각에 타입들에 대해서 각각의 ServerType를 설정하기 때문에 각각의 ServerType이나 Vhost에 따라서 JSP/Servlet는 해당 JEUS의 어플리케이션의 PATH에, 정적인 것은 해당 WebtoB의 DOCROOT나 Vhost의 DOCROOT에 저장하면 된다.
<period>의 역할
Worker Thread를 없애기 위해서 풀을 검사하는 시간 간격
<asqcount> 확인
문제가 있어서.. 다음에 확인.(cqcount가 증가하는 문제 발생.. 자세한 내역은 모르겠음)
<disable-pipe> 옵션
- 이것은 JEUS에서 나오는 error 메시지에서 차이를 알 수 있다.
-
false 일때 : fail to reconnect => No such file or directory [IOException]
-
[2008.05.07 09:12:40][1][0_540] [container1-14] [WEB-3346] worker(webtob1-hth0(localhost:9900)-w00:null) : fail to reconnect
<<__Exception__>>
java.io.IOException: No such file or directory
at jeus.util.net.PipeSocketImpl.pipeConnect(Native Method)
at jeus.util.net.PipeSocketImpl.connect(PipeSocketImpl.java:46)
at jeus.util.net.PipeSocket.createImpl(PipeSocket.java:89)
at jeus.util.net.PipeSocket.<init>(PipeSocket.java:66)
at jeus.util.net.WebtobPipeSocket.<init>(WebtobPipeSocket.java:25)
at jeus.util.net.JeusNetUtil.getWebtobSocket(JeusNetUtil.java:194)
at jeus.servlet.engine.WebtobThreadPoolManager.connectSocket(WebtobThreadPoolManager.java:529)
at jeus.servlet.engine.WebtobThreadPoolManager.registryConnection(WebtobThreadPoolManager.java:522)
at jeus.servlet.engine.WebtobRequestProcessor.reconnect(WebtobRequestProcessor.java:362)
at jeus.servlet.engine.WebtobRequestProcessor.reconnect(WebtobRequestProcessor.java:328)
at jeus.servlet.engine.WebtobRequestProcessor.run(WebtobRequestProcessor.java:82)
<<__!Exception__>>
-
-
true 일때 : fail to reconnect => Connection refused [ConnectException]
-
[2008.05.07 09:11:16][1][0_540] [container1-15] [WEB-3346] worker(webtob1-hth0(localhost:9900)-w01:null) : fail to reconnect
<<__Exception__>>
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:464)
at java.net.Socket.connect(Socket.java:414)
at java.net.Socket.<init>(Socket.java:310)
at java.net.Socket.<init>(Socket.java:125)
at jeus.util.net.JeusNetUtil.getWebtobSocket(JeusNetUtil.java:179)
at jeus.servlet.engine.WebtobThreadPoolManager.connectSocket(WebtobThreadPoolManager.java:529)
at jeus.servlet.engine.WebtobThreadPoolManager.registryConnection(WebtobThreadPoolManager.java:522)
at jeus.servlet.engine.WebtobRequestProcessor.reconnect(WebtobRequestProcessor.java:362)
at jeus.servlet.engine.WebtobRequestProcessor.reconnect(WebtobRequestProcessor.java:328)
at jeus.servlet.engine.WebtobRequestProcessor.run(WebtobRequestProcessor.java:82)
<<__!Exception__>>
-
<oracle database type>
-
OCI(type 2)
- Oracle Call Interfase(OCI)
- SQL을 실행하는 PL>SQL 어플리케이션, OCCI를 이용하는 C++ 어플리케이션, OCI기반 JDBC 드라이버를 사용하는 Java 어플리케이션, ODBC 드라이버를 사용하는 C 어플리케이션, OLEDB 드라이버를 사용하는 VB 어플리케이션, Pro*C 어플리케이션, 분산형 SQL에서 사용
- 최신 Oracle Database Server 기능의 즉각적인 활용, 엔터프라이즈 수준의 성능과 확장성, 안정적인 보안 모델 구현, Oracle이 실행되는 모든 플랫폼에서 호환성 보장
- THIN(type 4)
<enable-wait>
-
true :
- tmax@test:~/jeus5/config/test$ da 1
JEUS 5.0 (fix #25) JDBC Connection Pool Controller
test_container1>info
==========================================================================
id name min max current idle disposable waiting working
==========================================================================
==========================================================================
test_container1>info
==========================================================================
id name min max current idle disposable waiting working
==========================================================================
1 oracle 2 10 10 0 0 true true
==========================================================================
test_container1>info
==========================================================================
id name min max current idle disposable waiting working
==========================================================================
1 oracle 2 10 10 0 0 true true
========================================================================== - 와 같이 나왔으며 위의 연결정보를 끊지 않고 12개를 띄운 것이다.
- 결과로는 11번째 요청부터는 일정 시간이 지난 뒤에 요청이 반환되지 않았다.
- <<__Exception__>>
jeus.jdbc.connectionpool.WaitTimeoutException: enable-wait timeout occurred from the connection pool; export-name=[oracle]
at jeus.jdbc.connectionpool.ConnectionStore.getObject(ConnectionStore.java:191)
at jeus.jdbc.connectionpool.ConnectionStore.getConnection(ConnectionStore.java:245)
at jeus.jdbc.connectionpool.ConnectionPool.prepareConnection(ConnectionPool.java:820)
at jeus.jdbc.connectionpool.ConnectionPool.innerGetConnection(ConnectionPool.java:705)
at jeus.jdbc.connectionpool.ConnectionPool.getConnection(ConnectionPool.java:642)
at jeus.jdbc.datasource.DataSourceWrapper.getConnection(DataSourceWrapper.java:42)
at jeus_jspwork._500_test_5fjsp._jspService(_500_test_5fjsp.java:64)
at jeus.servlet.jsp.HttpJspBase.service(HttpJspBase.java:54)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at jeus.servlet.jsp.JspServletWrapper.executeServlet(JspServletWrapper.java:101)
at jeus.servlet.engine.ServletWrapper.execute(ServletWrapper.java:214)
at jeus.servlet.jsp.JspServletWrapper.execute(JspServletWrapper.java:147)
at jeus.servlet.engine.WebtobRequestProcessor.run(WebtobRequestProcessor.java:183)
<<__!Exception__>>
jeus.jdbc.connectionpool.WaitTimeoutException: enable-wait timeout occurred from the connection pool; export-name=[oracle]
at jeus.jdbc.connectionpool.ConnectionStore.getObject(ConnectionStore.java:191)
at jeus.jdbc.connectionpool.ConnectionStore.getConnection(ConnectionStore.java:245)
at jeus.jdbc.connectionpool.ConnectionPool.prepareConnection(ConnectionPool.java:820)
at jeus.jdbc.connectionpool.ConnectionPool.innerGetConnection(ConnectionPool.java:705)
at jeus.jdbc.connectionpool.ConnectionPool.getConnection(ConnectionPool.java:642)
at jeus.jdbc.datasource.DataSourceWrapper.getConnection(DataSourceWrapper.java:42)
at jeus_jspwork._500_test_5fjsp._jspService(_500_test_5fjsp.java:64)
at jeus.servlet.jsp.HttpJspBase.service(HttpJspBase.java:54)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at jeus.servlet.jsp.JspServletWrapper.executeServlet(JspServletWrapper.java:101)
at jeus.servlet.engine.ServletWrapper.execute(ServletWrapper.java:214)
at jeus.servlet.jsp.JspServletWrapper.execute(JspServletWrapper.java:147)
at jeus.servlet.engine.WebtobRequestProcessor.run(WebtobRequestProcessor.java:183)
- tmax@test:~/jeus5/config/test$ da 1
-
false = 옵션이 없을 때
- tmax@test:~/jeus5/config/test$ da 1
JEUS 5.0 (fix #25) JDBC Connection Pool Controller
test_container1>info
==========================================================================
id name min max current idle disposable waiting working
==========================================================================
==========================================================================
test_container1>info
==========================================================================
id name min max current idle disposable waiting working
==========================================================================
1 oracle 2 10 2 1 0 false true
==========================================================================
test_container1>info
==========================================================================
id name min max current idle disposable waiting working
==========================================================================
1 oracle 2 10 10 0 1 false true
==========================================================================
test_container1>info
==========================================================================
id name min max current idle disposable waiting working
==========================================================================
1 oracle 2 10 10 0 2 false true
========================================================================== - 와 같이 나왔으며 위의 정보 연결을 끊지 않고 12개를 띄웠을 때이다.
- 다음 12번째 의 결과 이다
ConnectionPool query is select sysdate from dual
con is JeusConnection[ID=oracle-12,actual=oracle.jdbc.driver.LogicalConnection@ed3e63]
??깃?? : 2008-05-07 12:34:42.0 - ==========================================================================
id name min max current idle disposable waiting working
==========================================================================
1 oracle 3 10 10 0 5 false true
==========================================================================
test_container1>coninfo oracle
========================================================
Connection information list for oracle
--------------------------------------------------------
| id | state | usecount | state time(sec)
--------------------------------------------------------
oracle-15 idle 0 27.0
oracle-5 active 0 31.0
oracle-8 active 0 30.0
oracle-13 idle 0 28.0
oracle-4 active 0 32.0
oracle-12 idle 0 28.0
oracle-1 active 1 34.0
oracle-9 active 0 29.0
oracle-14 idle 0 27.0
oracle-10 active 0 29.0
oracle-11 idle 0 29.0
oracle-2 active 1 33.0
oracle-6 active 0 31.0
oracle-3 active 1 33.0
oracle-7 active 0 30.0
========================================================
test_container1>coninfo oracle
========================================================
Connection information list for oracle
--------------------------------------------------------
| id | state | usecount | state time(sec)
--------------------------------------------------------
oracle-15 idle 0 69.0
oracle-5 active 0 74.0
oracle-8 active 0 72.0
oracle-13 idle 0 70.0
oracle-4 active 0 74.0
oracle-12 idle 0 70.0
oracle-1 active 1 77.0
oracle-9 active 0 72.0
oracle-14 idle 0 70.0
oracle-10 active 0 71.0
oracle-11 idle 0 71.0
oracle-2 active 1 76.0
oracle-6 active 0 73.0
oracle-3 active 1 75.0
oracle-7 active 0 73.0
========================================================
test_container1>info
==========================================================================
id name min max current idle disposable waiting working
==========================================================================
1 oracle 3 10 10 0 9 false true
==========================================================================
test_container1>coninfo oracle
========================================================
Connection information list for oracle
--------------------------------------------------------
| id | state | usecount | state time(sec)
--------------------------------------------------------
oracle-15 idle 0 90.0
oracle-5 active 0 94.0
oracle-17 idle 0 6.0
oracle-18 idle 0 5.0
oracle-8 active 0 93.0
oracle-13 idle 0 91.0
oracle-4 active 0 95.0
oracle-12 idle 0 91.0
oracle-1 active 1 97.0
oracle-9 active 0 92.0
oracle-14 idle 0 90.0
oracle-10 active 0 92.0
oracle-11 idle 0 92.0
oracle-2 active 1 96.0
oracle-6 active 0 94.0
oracle-16 idle 0 7.0
oracle-3 active 1 96.0
oracle-7 active 0 93.0
oracle-19 idle 0 5.0
========================================================
test_container1>coninfo oracle
========================================================
Connection information list for oracle
--------------------------------------------------------
| id | state | usecount | state time(sec)
--------------------------------------------------------
oracle-15 idle 0 121.0
oracle-5 active 0 125.0
oracle-17 idle 0 37.0
oracle-18 idle 0 36.0
oracle-8 active 0 124.0
oracle-13 idle 0 121.0
oracle-4 active 0 126.0
oracle-12 idle 0 122.0
oracle-1 active 1 128.0
oracle-9 active 0 123.0
oracle-14 idle 0 121.0
oracle-10 active 0 123.0
oracle-11 idle 0 122.0
oracle-2 active 1 127.0
oracle-6 active 0 125.0
oracle-16 idle 0 37.0
oracle-3 active 1 126.0
oracle-7 active 0 124.0
oracle-19 idle 0 35.0
========================================================
test_container1> - <<__!Exception__>>
jeus.jdbc.connectionpool.JeusSQLException: Failed to create a new PooledConnection from [oracle]
at jeus.jdbc.connectionpool.ConnectionPool.getPooledConnection(ConnectionPool.java:468)
at jeus.jdbc.connectionpool.ConnectionStore.createDisposableConnection(ConnectionStore.java:349)
at jeus.jdbc.connectionpool.ConnectionPool.prepareConnection(ConnectionPool.java:825)
at jeus.jdbc.connectionpool.ConnectionPool.innerGetConnection(ConnectionPool.java:705)
at jeus.jdbc.connectionpool.ConnectionPool.getConnection(ConnectionPool.java:642)
at jeus.jdbc.datasource.DataSourceWrapper.getConnection(DataSourceWrapper.java:42)
at jeus_jspwork._500_test_5fjsp._jspService(_500_test_5fjsp.java:64)
at jeus.servlet.jsp.HttpJspBase.service(HttpJspBase.java:54)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at jeus.servlet.jsp.JspServletWrapper.executeServlet(JspServletWrapper.java:101)
at jeus.servlet.engine.ServletWrapper.execute(ServletWrapper.java:214)
at jeus.servlet.jsp.JspServletWrapper.execute(JspServletWrapper.java:147)
at jeus.servlet.engine.WebtobRequestProcessor.run(WebtobRequestProcessor.java:183)
Caused by: java.sql.SQLException: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found
The Connection descriptor used by the client was:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(PORT=1521)(HOST=127.0.0.1))(CONNECT_DATA=(SID=orcl10)))
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:297)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:221)
at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:157)
at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:94)
at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:75)
at jeus.jdbc.connectionpool.ConnectionPool.getPooledConnection(ConnectionPool.java:444)
... 12 more
- tmax@test:~/jeus5/config/test$ da 1
<JDBC type 특성>
-
type 1 : JDBC-ODBC Bridge
- JDBC-ODBC Bridge는 JDBC가 ODBC Driver에 접근하는 통로를 제공한다.
- 이것은 Sun에서 이미 구현을 해놓았다.
- 주로 Window에서 ODBC에 등록해놓은 데이타베이스를 접근할 때 사용을 한다.
-
type 2 : Native - API partly - Java Driver
- 벤데에서 제공하는 라이브러리를 이용해 DB를 엑서스한다는 의미
- 그러므로 벤더에서 제공되는 2진 파일과 인터페이스 하기 위해 자바는 부분적으로 Java Native Method를 이용하게 된다.
- 그래서 type 2 는 플렛폼에 의존적이다. 또한 servlet는 가능하나, applet는 불가능하다.
-
type 3 : JDBC - Net pure Java Driver
- JDBC의 호출을 DBMS에 비종속적인 네트워크 프로토콜로 바꾼 후 다시 서버에 의해 원하는 DBMS의 프로토콜로 해석
- 그래서 플렛폼과 프로토콜에 무관하게 DB와 연동하여 사용할 수 있다는 장점을 가지고 있다.
- 그러나, 유로이며, 전문적인 드라이버 제공 회사가 있다.
-
type 4 : Native - protocol pure Java Driver
- JDBC API는 DBMS가 사용하는 전용 프로토콜을 이용해 직접 인터페이스를 한다. 클라이언트에서 DBMS 서버로 직접 엑세스하게 되므로 인트라넷을 위한 작고 빠른 실용적인 대안이 된다.
- 이것은 플렛폼에 무관하지 않고 독립적이다.
- 앞에서 언급했듯이 DBMS의 프로토콜을 이용하여 접속을 한다.
- 그래서 벤더의 JDBC 드라이버가 필요하다.(DBMS에 의존적):
<덤프 떠보기>
- 현재 실패한 상태.
'WAS > JEUS' 카테고리의 다른 글
JEUSMain.xml Datasource 암호 설정 (0) | 2011.01.13 |
---|---|
IBM JVM 튜닝 - 3 (0) | 2009.08.24 |
JAVA HEAPDUMP 분석방법 (0) | 2009.03.05 |
웹상에서 제우스 로그 확인하기 (0) | 2009.03.05 |
제우스 연결 세션 병렬화 (0) | 2009.03.05 |