제8장 domain.xml의 웹 엔진 내의 웹 연결(웹 리스너, 웹 서버 연결) 설정

내용 목차

8.1. 소개
8.2. XML Schema/XML 트리
8.3. Element Reference
8.4. 웹 엔진의 웹 커넥션 설정 예제

JEUS의 설정 파일인 domain.xml 내의 웹 엔진의 웹 연결(웹 리스너, 웹 서버 연결)와 관련된 태그에 대한 설명을 찾을 수 있다.

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

  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: 자신의 태그 안에 사용하는 태그.

(44) < domain >< servers >< server > <listeners>
Description 서버의 JEUS 시스템이 사용하는 Socket Listener 및 Socket Connection Request 처리에 필요한 각종 속성을 지정한다.
Value Type listenersType
Child Elements

(46) base

(47) listener

(225) < domain >< servers >< server >< web-engine > <web-connections>
Description 웹 서버와의 커넥션 설정을 구성하거나 JEUS 단독으로 제공하는 Web Listener를 설정한다.
Value Type web-connectionsType
Child Elements

(227) http-listener

(258) webtob-connector

(317) ajp13-listener

(343) tcp-listener

(370) tmax-connector

[예 8.1] 웹 엔진의 웹 커넥션 설정 예제

<?xml version="1.0"?>
<domain xmlns="http://www.tmaxsoft.com/xml/ns/jeus">
    <servers>
        <server>
            <listeners>
                <listener>
                    <name>http-and-ajp</name>
                    <listen-port>8088</listen-port>
                </listener>
                <listener>
                    <name>secure-http</name>
                    <listen-port>8089</listen-port>
                    <ssl/>
                </listener>
                <listener>
                    <name>tcp1</name>
                    <listen-port>8090</listen-port>
                </listener>
            </listeners>
            <web-engine>
                <web-connections>
                    <!-- WebtoB -->
                    <webtob-connector>
                        <name>WebListener1</name>
                        <network-address>
                            <port>9900</port>
                            <ip-address>111.111.111.111</ip-address>
                        </network-address>
                        <!-- unique id for registration -->
                        <registration-id>RegId1</registration-id>
                        <output-buffer-size>8192</output-buffer-size>
                        <!-- simple thread pool setting-->
                        <thread-pool>
                            <number>30</number>
                        </thread-pool>

                        <!-- web attack prevention setting -->
                        <max-post-size>20000000</max-post-size>
                        <max-parameter-count>10000</max-parameter-count>
                        <max-header-count>50</max-header-count>
                        <max-header-size>50000</max-header-size>
                        <max-querystring-size>10000</max-querystring-size>

                        <read-timeout>120000</read-timeout>
                        <postdata-read-timeout>40000</postdata-read-timeout>
                        <hth-count>1</hth-count>
                        <reconnect-interval>5000</reconnect-interval>
                    </webtob-connector>

                    <!-- http listener without web server -->
                    <http-listener>
                        <name>WebListener2</name>
                        <server-listener-ref>http-and-ajp</server-listener-ref>
                        <output-buffer-size>8192</output-buffer-size>
                        <!-- simple thread pool setting-->
                        <thread-pool>
                            <min>10</min>
                            <max>10</max>
                            <max-idle-time>60000</max-idle-time>
                        </thread-pool>

                        <!-- web attack prevention setting -->
                        <max-post-size>20000000</max-post-size>
                        <max-parameter-count>10000</max-parameter-count>
                        <max-header-count>50</max-header-count>
                        <max-header-size>50000</max-header-size>
                        <max-querystring-size>10000</max-querystring-size>

                        <postdata-read-timeout>40000</postdata-read-timeout>
                        <!-- do you need http keep-alive? -->
                        <keep-alive>true</keep-alive>
                    </http-listener>

                    <!-- http listener without web server, SSL secure communication -->
                    <http-listener>
                        <name>WebListener3</name>
                        <server-listener-ref>secure-http</server-listener-ref>
                        <output-buffer-size>16384</output-buffer-size>
                        <!-- simple thread pool setting-->
                        <thread-pool>
                            <min>10</min>
                            <max>10</max>
                        </thread-pool>

                        <!-- web attack prevention setting -->
                        <max-post-size>20000000</max-post-size>
                        <max-parameter-count>10000</max-parameter-count>
                        <max-header-count>50</max-header-count>
                        <max-header-size>50000</max-header-size>
                        <max-querystring-size>10000</max-querystring-size>

                        <postdata-read-timeout>40000</postdata-read-timeout>
                        <keep-alive>true</keep-alive>
                    </http-listener>

                    <!-- tcp listener -->
                    <tcp-listener>
                        <name>WebListener4</name>
                        <server-listener-ref>tcp1</server-listener-ref>
                        <output-buffer-size>16384</output-buffer-size>
                        <thread-pool>
                            <min>10</min>
                            <max>20</max>
                        </thread-pool>
                        <postdata-read-timeout>40000</postdata-read-timeout>
                        <!-- custom dispatcher class -->
                        <dispatcher-config-class>
                            tcp.TcpDispatcher
                        </dispatcher-config-class>
                    </tcp-listener>

                    <!-- other web servers(Apache, IIS, Iplanet, etc...) with ajp13 protocol(mod_jk) -->
                    <ajp13-listener>
                        <name>WebListener6</name>
                        <server-listener-ref>http-and-ajp</server-listener-ref>
                        <output-buffer-size>8192</output-buffer-size>
                        <!-- simple thread pool setting-->
                        <thread-pool>
                            <min>10</min>
                            <max>30</max>
                        </thread-pool>

                        <!-- web attack prevention setting -->
                        <max-post-size>20000000</max-post-size>
                        <max-parameter-count>10000</max-parameter-count>
                        <max-header-count>50</max-header-count>
                        <max-header-size>50000</max-header-size>
                        <max-querystring-size>10000</max-querystring-size>

                        <postdata-read-timeout>40000</postdata-read-timeout>
                    </ajp13-listener>

                    <!-- tmax connector -->
                    <tmax-connector>
                        <name>WebListener7</name>
                        <!-- listen port for tmax-->
                        <output-buffer-size>16384</output-buffer-size>
                        <!-- simple thread pool setting-->
                        <thread-pool>
                            <min>30</min>
                            <max>30</max>
                        </thread-pool>
                        <postdata-read-timeout>40000</postdata-read-timeout>
                        <reconnect-interval>5000</reconnect-interval>
                        <!-- tmax specific infomations -->
                        <port>8092</port>
                        <tmax-address>111.111.111.111</tmax-address>
                        <tmax-version>40</tmax-version>
                        <server-type>tms</server-type>
                        <xaresource-class>mypackage.XAResourceImpl</xaresource-class>
                        <server-group-name>tmaxGroup</server-group-name>
                        <server-name>tmaxServer</server-name>
                        <!-- custom dispatcher class -->
                        <dispatcher-config-class>
                            mypackage.mydispatcher
                        </dispatcher-config-class>
                    </tmax-connector>
                </web-connections>
            </web-engine>
        </server>
    </servers>
</domain>