Servlet 컨테이너 만들기
1. tmaxeduC18_servlet_engine1 폴더 복사 tmaxeduC18_servlet_engine3
2. JEUSMain.xml 에서 container 설정 부분에 아래 부분 추가
<engine-container>
<name>container3</name>
<engine-command>
<type>servlet</type>
<name>engine3</name>
</engine-command>
</engine-container>
1) 설정시 <id>76</id><base-port>10511</base-port> 제거하면 jeus에서 알아서 해당 코드를 만들게 됨
3. C:\TmaxSoft\JEUS5\config\tmaxeduC18\tmaxeduC18_servlet_engine3\WEBMain.xml 수정
1) webtob 설정에서 container 에서 사용중인 Thread개수 만큼 connection 개수를 늘려주어야 한다.
2) 아래와 같이 port 부분을 충돌나지 않게 변경해 준다.
<http-listener>
<listener-id>http1</listener-id>
<port>9000</port>
<thread-pool>
<min>10</min>
<max>20</max>
<step>1</step>
</thread-pool>
</http-listener>
4. Container에서 사용하는 메모리 설정(command-option에서)
<engine-container>
<name>container3</name>
<command-option>-Xms128m -Xmx128m</command-option>
<engine-command>
<type>servlet</type>
<name>engine3</name>
</engine-command>
</engine-container>
5. 기동 후 container 기동 확인
C:\Documents and Settings\edu>ja
C:\Documents and Settings\edu>jeusadmin tmaxeduC18 -Uadministrator -Pjeusadmin
JEUS 5.0 (fix #27) Jeus Manager Controller
tmaxeduC18>conlist
container list of the node tmaxeduC18
tmaxeduC18_container3
tmaxeduC18_container2
tmaxeduC18_container1
tmaxeduC18>
ejb engine 추가하기
1. tmaxeduC18_ejb_engine1 를 tmaxeduC18_ejb_engine2 로 복사
2. container 부분에 ejb engine 추가
<engine-container>
<name>container3</name>
<command-option>-Xms128m -Xmx128m</command-option>
<engine-command>
<type>ejb</type>
<name>engine2</name>
</engine-command>
<engine-command>
<type>servlet</type>
<name>engine3</name>
</engine-command>
</engine-container>
3. container 만 재 기동 하기
1) JEUSMain.xml 을 변경시 jeus main 관련 설정은 자동 변경된다.
- 아래와 같이 재 기동 이후에 설정내용이 반영된다.
C:\Documents and Settings\edu>ja
C:\Documents and Settings\edu>jeusadmin tmaxeduC18 -Uadministrator -Pjeusadmin
JEUS 5.0 (fix #27) Jeus Manager Controller
tmaxeduC18>conlist
container list of the node tmaxeduC18
tmaxeduC18_container3
tmaxeduC18_container2
tmaxeduC18_container1
tmaxeduC18>downcon tmaxeduC18_container3
tmaxeduC18_container3 container down successful
tmaxeduC18>startcon tmaxeduC18_container3
tmaxeduC18_container3 container started successfully
4. ejb 추가 내용 확인
tmaxeduC18>englist
========================================
engines in the container tmaxeduC18_container1
tmaxeduC18_ws_engine1
tmaxeduC18_jms_engine1
tmaxeduC18_ejb_engine1
tmaxeduC18_servlet_engine1
========================================
========================================
engines in the container tmaxeduC18_container2
tmaxeduC18_servlet_engine2
========================================
========================================
engines in the container tmaxeduC18_container3
tmaxeduC18_ejb_engine2
tmaxeduC18_servlet_engine3
========================================
application 목록 확인
tmaxeduC18>applist
name : examples
type : J2EEApplication EngineContainer : tmaxeduC18_container1 node : tmaxeduC18 state : running
name : garasani-web
type : WebModule EngineContainer : tmaxeduC18_container1 node : tmaxeduC18 state : running
name : exploded
type : WebModule EngineContainer : tmaxeduC18_container1 node : tmaxeduC18 state : running
DataSource 설정
1. 데이터 소스 설정
1) Thin : JDBC Driver 자체에 Connection 등이 모두 java로 구현한 방법
- ojdbc14.jar 파일만 위치시키면됨
2) OCI : Native Driver를 이용하여 접근
- 속도가 이것이 더 빠름
- Oracle Client를 설치해야 한다.
2. 아래의 경로에 jdbc library 파일을 복사한다.
C:\TmaxSoft\JEUS5\lib\datasource
3. Thread Pool 지정
Period : 동안 사용하지 않으면 connection 맺은 것을 줄여준다.
Max Use Count : Connection 을 몇번 사용할 것인가를 설정
Check Query : SQL 을 날리기 전에 check query를 날린 후 처리
Check Query Period : 주기적으로 check query를 날려준다.
Stmt Caching Size : Statement를 caching 하므로써 성능을 높여준다.
Enable Wait : Connection Pool을 모두 사용중일때 대기를 할 것인지 말것인지 설정
4. 생성된 DataSource 확인
datasource.jsp 사용
5. 설치내용
<resource>
<data-source>
<database>
<vendor>oracle</vendor>
<export-name>datasource1</export-name>
<data-source-class-name>oracle.jdbc.pool.OracleConnectionPoolDataSource</data-source-class-name>
<data-source-type>ConnectionPoolDataSource</data-source-type>
<database-name>XE</database-name>
<port-number>1521</port-number>
<server-name>127.0.0.1</server-name>
<user>garasani</user>
<password>garasani</password>
<driver-type>thin</driver-type>
<connection-pool>
<pooling>
<min>2</min>
<max>10</max>
<step>1</step>
<period>3600000</period>
</pooling>
<wait-free-connection>
<enable-wait>true</enable-wait>
</wait-free-connection>
</connection-pool>
</database>
</data-source>
</resource>
6. container에서 연결해서 사용중인 datasource 확인
1) 엔진컨테이너 -> hostname_container1 -> 리소스 -> jdbc
- 여기서 close 안된 connection의 개수를 확인 가능하다.
2) connection 누수 방지 방법
Invocation Manager에서 AutoClose 하면 된다.
- 엔진 컨테이너 -> container 명 -> 설정 -> 기타
Invocation Manager Action 에서 AutoClose 선택 후 확인
엔진 재기동
- 누수가 발생하면 아래와 같이 해당 경로가 나온다.
[2010.05.06 13:59:52][1][0_576] [container1-16] [MGR-0396] Resources are not closed after use: [JeusConnection[ID=datasource1-1,actual=oracle.jdbc.driver.LogicalConnection@11b315c]]
[2010.05.06 13:59:52][0][0_576] [container1-16] [MGR-0107] RequestURI : /garasani/datasource.jsp
[2010.05.06 13:59:52][2][0_576] [container1-16] [MGR-0410] Close JDBC connection[JeusConnection[ID=datasource1-1,actual=oracle.jdbc.driver.LogicalConnection@11b315c]] which is not closed after use
3) JEUSMain.xml에 추가되는 설정 내용
<invocation-manager-action>AutoClose</invocation-manager-action>
[출처] http://blog.naver.com/jadefan?Redirect=Log&logNo=70045626333