제11장 domain.xml의 EJB 엔진 설정

내용 목차

11.1. 소개
11.2. XML Schema/XML 트리
11.3. Element Reference
11.4. domain.xml의 EJB 엔진 설정 예제

여기에서 JEUS의 EJB 엔진에 설정에 관한 설명을 찾을 수 있다.

레퍼런스는 다음 형식으로 구성되어 있다.

  1. XML Schema/XML 트리: XML 설정 파일의 모든 태그 리스트를 정리했다. 각 노드의 형식은 다음과 같다.

    1. 태그 레퍼런스로 빨리 찾아보기 위해서 각 태그마다 인덱스 번호( 예: (11) )를 붙여 놓았다. 태그 레퍼런스에서는 이 번호 순서로 설명한다.

    2. XML Schema에서 정의한 XML 태그명을 <tag name> 형식으로 표시한다.

    3. XML Schema에서 정의한 Cardinality를 표시한다. “?” = 0개나 1개의 element, “+” = 1개 이상의 element, “*” = 0개 이상의 element, (기호가 없음) = 정확히 1개의 element

    4. 몇몇 태그에는 “P” 문자를 붙여 놓았는데, 해당 태그는 성능에 관계되는 태그라는 것을 뜻한다. 이 태그는 설정을 튜닝할 때 사용된다.

  2. Element Reference: 트리에 있는 각 XML 태그를 설명한다.

    1. Dynamic: 동적 설정 반영 가능

    2. Non-Dynamic: 동적 설정 반영 불가능, Dynamic이 설정되지 않은 항목들이 보통 이에 해당 하나 특별히 설명이 있는 경우 이 항목이 표시된다.

    3. Description: 태그에 대한 간단한 설명.

    4. Value Description: 입력하는 값과 타입.

    5. Value Type: 값의 데이터 타입. (예: String)

    6. Value Type Description: 값의 데이터 타입에 대한 설명

    7. Default Value: 해당 XML을 사용하지 않았을 때 기본적으로 사용되는 값.

    8. Defined Value: 이미 정해져 있는 값.

    9. Example: 해당 XML 태그에 대한 예.

    10. Performance Recommendation: 성능 향상을 위해서 추천하는 값.

    11. Child Elements: 자신의 태그 안에 사용하는 태그.

(505) < domain >< servers >< server > <ejb-engine>
Description EJB 엔진은 J2EE EJB 애플리케이션이 작동하기 위한 환경을 제공한다. J2EE 스펙에서의 EJB 컨테이너에 대응하는 기능이다. 서버가 부팅될 때 실행되며, 하나의 서버에서는 하나의 EJB 엔진만 지원한다.
Value Type ejb-engineType
Child Elements

(507) resolution

(508) use-dynamic-proxy-for-ejb2

(509) enable-user-notify

(510) invoke-http

(513) active-management

(527) timer-service

(538) async-service

[예 11.1] domain.xml의 EJB 엔진 설정 예제

<?xml version="1.0" encoding="UTF-8"?>
<domain xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="7.0">
    <servers>
        <server>

            <ejb-engine>
                <!-- period of checking ejb engine for active management and beans for passivation -->
                <resolution>300000</resolution>

                <!-- unenable to write ejb exceptions into the user log specified in domain.xml -->
                <enable-user-notify>false</enable-user-notify>

                <!-- check the number of blocked threads and send an e-mail -->
                <active-management>
                    <max-blocked-thread>3</max-blocked-thread>
                    <max-idle-time>300000</max-idle-time>
                    <email-notify>
                        <smtp-host-address>mail.foo.com</smtp-host-address>
                        <from-address>admin@mail.foo.com</from-address>
                        <to-address>admin@mail.foo.com</to-address>
                        <cc-address>admin@mail.foo.com</cc-address>
                        <bcc-address>admin@mail.foo.com</bcc-address>
                    </email-notify>
                </active-management>

                <!-- use http-rmi invocation -->
                <invoke-http>
                    <url>/mycontext/RMIHandlerServlet</url>
                    <http-port>80</http-port>
                </invoke-http>

                <!-- configuration related to timer service -->
                <timer-service>
                    <support-persistence>true</support-persistence>
                    <max-retrial-count>1</max-retrial-count>
                    <retrial-interval>5000</retrial-interval>
                    <thread-pool>
                        <min>2</min>
                        <max>30</max>
                        <period>3600000</period>
                    </thread-pool>
                    <database-setting>
                        <db-vendor>oracle</db-vendor>
                        <data-source-id>datasource</data-source-id>
                    </database-setting>
                </timer-service>

                <!-- configuration related to async service -->
                <async-service>
                    <thread-min>0</thread-min>
                    <thread-max>30</thread-max>
                    <access-timeout>300000</access-timeout>
                </async-service>
            </ejb-engine>
            
        </server>
    </servers>
</domain>