<!-- Example Server Configuration File -->
<!-- Server 엘리먼트는 Catalina 서블릿 컨테이너 전체를 나타냅니다.
그러므로 Server 엘리먼트는 conf/server.xml에서 하나만 존재하며 동시에 가장 바깥쪽에 위치하게 됩니다.
그리고 당연히 이 엘리먼트의 속성 들은 서블릿 컨테이너의 전체적인 특성을 나타냅니다.
port : 이 서버가 종료(shutdown) 명령을 받을 TCP/IP 포트번호입니다. 이 포트로는 해당 Tomcat이 실행되고 있는 컴퓨터에서만 연결할 수 있습니다.
만약 한 서버에서 여러대의 톰캣을 구동한다면 port를 구별하여야 합니다. -->
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<!-- Uncomment these entries to enable JMX MBeans support -->
<!-- 톰캣의 시작과 종료 등을 알아봄..-->
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
debug="0"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
debug="0"/>
<!-- Global JNDI resources -->
<!-- JNDI의 전역자원을 나타내며, 이 자원들은 Server 안에서 정의됩니다. -->
<GlobalNamingResources>
<!-- Test entry for demonstration purposes -->
<!-- 웹애플리케이션에서 환경항목자원(environment entry resources)으로 사용할 수 있도록 항목의 이름-값 들을 설정할 수 있습니다.
override : 웹애플리케이션 배치 디스크립터에서 <env-entry>으로 같은 이름의 환경항목을 지정하는 경우,
여기에서 지정한 값을 덮어쓰기(override) 하지 않도록 하고 싶으면 false로 지정합니다.
이 값을 지정하지 않으면 덮어쓰기가 허용됩니다.
Environment는 웹애플리케이션 배치 디스크립터(/WEB-INF/web.xml)에서 다음의 엘리먼트를 포함시킨 것과 동일합니다:
<env-entry>
<env-entry-name>maxExemptions</param-name>
<env-entry-value>10</env-entry-value>
<env-entry-type>java.lang.Integer</env-entry-type>
</env-entry>
-->
<Environment name="simpleValue" type="java.lang.Integer" value="30" override="false"/>
<!-- Resource 또한 Environment처럼 웹애플리케이션 배치 디스크립터(/WEB-INF/web.xml)에서 설정할 수 있다.
<resource-ref>
<description>Employees Database for HR Applications</description>
<res-ref-name>jdbc/EmployeeDB</res-ref-name>
<res-ref-type>javax.sql.DataSource</res-ref-type>
<res-auth>Container</res-auth>
</resource-ref>
auth : 해당 자원관리자에 인증(sign on)할 때 웹애플리케이션 프로그램의 코드상에서 직접 인증할지,
또는 애플리케이션의 작동(behalf)에 따라 컨테이너가 직접 인증할지를 지정합니다.
이 속성의 값은 반드시 Application 또는 Container 중 하나여야 합니다. 이 속성은, 웹애플리케이션이
웹애플리케이션 배치 디스크립터에서 <resource-ref> 엘리먼트를 사용하는 경우에는 반드시 필요합니다.
그러나 <resource-env-ref>를 대신 사용하는 경우에는 선택사항입니다.
scope : 이 자원관리자를 통해 얻어진 연결(connection)의 공유를 허가할 것인지 지정합니다.
이 속성의 값은 반드시 Shareable 또는 Unshareable 중 하나여야 합니다.
지정하지 않으면 연결은 공유가능(shareable)이 됩니다.-->
<Resource name="jdbc/EmployeeDB" auth="Container"
type="javax.sql.DataSource"
description="Employees Database for HR Applications"/>
<!-- Resource에 사용될 파라미터들-->
<ResourceParams name="jdbc/EmployeeDB">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<!-- 수신된 요청을 처리하기 위한 하나의 Engine을 공유하는, 하나 이상의 Connector 컴포넌트의 조합을 나타냅니다.
하나의 Server 엘리먼트 내에는 여러 개의 Service 엘리먼트가 포함될 수 있습니다. -->
<Service name="Tomcat-Standalone">
<!-- JTC 는 Jakarta-Tomcat-Connectors입니다.
두가지 다른 형의 커넥터가 있습니다.
브라우저에서 Tomcat 에 직접 연결하게 하는 커넥터와 웹서버를 통해서 연결하는 커넥터가 있습니다.
Tomcat 4.x 의 HTTP 커넥터 : org.apache.coyote.tomcat4.CoyoteConnector
웹서버 커넥터 : mod_jserv, mod_jk, mod_jk2, mod_webapp
jk 커넥터의 사용을 지양하고, jk2를 사용할 것!!!!
아파치+톰캣 조합으로 mod_jk2가 가장 많이 쓰이지 않을 까 생각됩니다.-->
<!-- Connector 예 -->
<!-- Attribute 설명 (Connector에 관계없이 알파벳 순으로 정리했읍니다.)
acceptCount : 최대 queue수 넘는 요청은 거부된다. 기본값 10
address : 여러개의 IP를 가질경우 port에 응답할 IP설정, 기본으로는 모든 IPs
bufferSize : Connector가 사용할 InputStream Buffer(bytes) 기본값 2048
connectionTimeout : 연결요청후 URI 요청이 들어오기까지의 대기 시간(ms) 기본값 60000 (60초)
debug : log messages 를 남길 수위, 설정 레벨보다 높은 메세지만 남긴다. 기본 0
disableUploadTimeout :
enableLookups : request.getRemoteHost()시 실제호스트명을 리턴할 경우 true, IP를 리턴할 경우 false.
maxProcessors : Connector가 만들 쓰레드 최대수, 기본 20
minProcessors : Connector가 시작될때 만들 쓰레드수, 기본 5
redirectPort : Connnector가 SSL을 지원하지 않을때 SSL을 요구하는 요청이 들어오면 해당 port로 redirect....
port : Connector가 응답할 TCP port, 해당 port로 요청이 들어오면 Connector가 생성된다.
protocolHandlerClassName : JK2를 사용할 경우 org.apache.jk.server.JkCoyoteHandler
proxyName :
proxyPort :
scheme : SSL Connector를 사용할 경우 https, request.getScheme()의 리턴값, 기본 http.
secure : SSL Connector를 사용할 경우 true, request.isSecure()의 리턴값, 기본 false.
tcpNoDelay : TCP_NO_DELAY option을 set한다. 기본값 true이고 이때 성능이 좋다.
useURIValidationHack :
-->
<!-- SSL Factory Attributes
algorithm : 사용될 인코딩 알고리즘, 기본값 SunX509
clientAuth : 클라이언트와 연결시 유효한 certificate chain이 필요하면 true
keystoreFile : keystore file의 경로 기본값 OS의 HomeDirectory에 .keystore 로 저장
keystorePass : 기본값 changeit
keystoreType : 기본값 JKS
protocol : SSL protocol의 버전 기본값 TLS
-->
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 80 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="80" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
useURIValidationHack="false" disableUploadTimeout="true" />
<!-- Note : To disable connection timeouts, set connectionTimeout value
to -1 -->
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8443" minProcessors="5" maxProcessors="75"
enableLookups="true"
:acceptCount="100" debug="0" scheme="https" secure="true"
useURIValidationHack="false" disableUploadTimeout="true">
<Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
clientAuth="false" protocol="TLS" />
</Connector>
-->
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="20000"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!--
<Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
port="8009" minProcessors="5" maxProcessors="75"
acceptCount="10" debug="0"/>
-->
<!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
<!-- See proxy documentation for more information about using this. -->
<!--
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8082" minProcessors="5" maxProcessors="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" debug="0" connectionTimeout="20000"
proxyPort="80" useURIValidationHack="false" />
-->
<!-- Define a non-SSL legacy HTTP/1.1 Test Connector on port 8083 -->
<!--
<Connector className="org.apache.catalina.connector.http.HttpConnector"
port="8083" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" />
-->
<!-- Define a non-SSL HTTP/1.0 Test Connector on port 8084 -->
<!--
<Connector className="org.apache.catalina.connector.http10.HttpConnector"
port="8084" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" />
-->
<!--특정 Catalina Service에 관련된 전체 요청처리장치(request processing machinery)를 나타냅니다.
이 장치는 Connectors에서 오는 모든 요청을 수신하고 처리하며, 처리된 응답을 해당 Connector로 돌려보내어,
최종 메시지를 클라이언트로 전달하게 합니다. -->
<!-- 반드시 하나의 Engine 엘리먼트만이 Service에 중첩될 수 있으며,
이 Service에 연결된 모든 해당 Connector 엘리먼트 다음에 위치하게 됩니다. -->
<!--
defaultHost : 기본 호스트명으로 Host 앨리먼트중 하나의 name 속성과 일치해야 합니다.
debug : 해당 Logger 에 디버깅 로그를 출력하는 상세수준을 의미합니다.
name : Engine의 논리적 이름으로 로그와 에러메시지에서 사용됩니다
jvmRoute : 로드밸런싱 시나리오에서 세션유지를 위해서 반드시 사용해야 할 식별자.
이 식별자는 클러스터에 참가하는 모든 Tomcat 4 서버에 대해 반드시 유일해야 합니다. -->
<Engine name="Standalone" defaultHost="localhost" debug="0">
<!-- The request dumper valve dumps useful debugging information about
the request headers and cookies that were received, and the response
headers and cookies that were sent, for all requests received by
this instance of Tomcat. If you care only about requests to a
particular virtual host, or a particular application, nest this
element inside the corresponding <Host> or <Context> entry instead.
For a similar mechanism that is portable to all Servlet 2.3
containers, check out the "RequestDumperFilter" Filter in the
example application (the source for this filter may be found in
"$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
Request dumping is disabled by default. Uncomment the following
element to enable it. -->
<!--
<Valve className="org.apache.catalina.valves.RequestDumperValve"/>
-->
<!-- Engine, Host, 또는 Context가 처리하는 모든 요청에 대한 액세스 로그를 생성하도록 지시할 수 있는데,
이는 다음과 같이 Valve 엘리먼트를 중첩시키면 됩니다 -->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve"
prefix="catalina_access_log." suffix=".txt"
pattern="common"/>-->
<!-- Request Filter : 어떤 Context, 또는 상위의 Engine, Host 엘리먼트에서 수신하는 모든 요청에 대해,
IP 주소나 호스트명 등을 Catalina가 검사하도록 지시할 수 있습니다.
원격지 주소나 이름은 설정된 "허가(accept)" 그리고/또는 "거부(deny)" 리스트에 대해 검사하며,
이러한 설정은 Jakarta Regexp 정규표현식(regular expression) 라이브러리에 의해 지원되는 정규표현식 문법에 따라 정의됩니다.
허가되지 않은 위치에서 보낸 요청은 HTTP "Forbidden" 오류와 함께 거부됩니다. 필터 선언의 예는 다음과 같습니다 -->
<!--
<Valve className="org.apache.catalina.valves.RemoteHostValve"
allow="*.mycompany.com,www.yourcompany.com"/>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
deny="192.168.1.*"/>
-->
<!-- Global logger unless overridden at lower levels -->
<!--
Catalina 컨테이너(Engine, Host, 또는 Context)의 로깅, 디버깅, 그리고 에러메시지(스택 트레이스 포함)의 목적지(destination)를 나타냅니다. 또한 어떤 Engine이나 Host와 연결된 Logger 들은 명시적으로 재설정하지 않으면 자동적으로 하위의 컨테이너로부터 설정을 물려 받습니다.
className : 로그를 표현할 위치를 결정....
org.apache.catalina.logger.FileLogger - 설정된 File로 저장
FileLogger의 Attribute..
directory : log파일의 상대/절대경로
prefix, suffix, timestamp
org.apache.catalina.logger.SystemErrLogger - the standard error output를 $CATALINA_HOME$logs/catalina.out 파일로 저장
org.apache.catalina.logger.SystemOutLogger - the standard output을 $CATALINA_HOME$logs/catalina.out 파일로 저장
-->
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt"
timestamp="true"/>
<!-- Because this Realm is here, an instance will be shared globally -->
<!--Realm은 하나의 웹 애플리케이션(또는 복수의) 정당한 사용자들을 인증하고,
아울러 각 사용자에 맞는 역할 roles을 지정하는 사용자와 비밀번호의 "database" 입니다.
역할은 Unix 계열의 시스템에서 그룹 groups 과 비슷하다고 생각하면 됩니다.
왜냐하면 특정한 웹 애플리케이션 자원에 접근하는 것은 특정한 역할을 갖고 있는 모든 사용자에게만 주어지기 때문입니다
(연관된 사용자 목록 열거가 아닌). 어떤 특정한 사용자는 그 사용자명에 대해서 여러개의 역할을 가질 수 있습니다.
-->
<!--세가지 다른 인증 정보 소스에 연결을 지원하는 세가지 표준 plug-in 이 제공됩니다:
JDBCRealm - JDBC 드라이버를 통해서 관계 데이터베이스에 저장된 인증 정보에 접근합니다.
JNDIRealm - JNDI 제공자(provider)를 통해서 LDAP 기반 디렉토리 서버에 저장된 인증 정보에 접근합니다.
MemoryRealm - XML 문서(conf/tomcat-users.xml) 에 있는 정보로부터 초기화되는 내부 메모리 객체 컬렉션에
저장된 인증 정보에 접근합니다.
-->
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
debug="0" resourceName="UserDatabase"/>
<!-- Comment out the old realm but leave here for now in case we
need to go back quickly -->
<!--
<Realm className="org.apache.catalina.realm.MemoryRealm" />
-->
<!-- Replace the above Realm with one of the following to get a Realm
stored in a database and accessed via JDBC -->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/authority"
connectionName="test" connectionPassword="test"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
connectionName="scott" connectionPassword="tiger"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="sun.jdbc.odbc.JdbcOdbcDriver"
connectionURL="jdbc:odbc:CATALINA"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!-- Host : 가상호스트(virtual host)를 나타냅니다 -->
<!--
appBase : 이 가상호스트에 대한 어플케이션의 기준(Application Base) 디렉토리
autoDeploy :
debug : 같음...
deployXML : Context XML 설정 파일을 사용하여 어플리케이션을 배치하는 기능을 끄고 싶다면 false로 지정하십시오.
배치되는 어플리케이션 들은 Catalina의 보안권한(security permissions)가 주어집니다.
만약 신뢰할 수 없는(untrusted) 사용자가 웹어플리케이션에 접근가능한 상황이라면 보안상 false로 할 필요가 있습니다.
디폴트 값은 true입니다.
errorReportValveClass : 이 Host가 사용할 오류보고밸브(error reporting valve)의 Java 클래스명.
이 밸브의 임무는 에러보고를 출력하는 것입니다. 이 속성을 설정하면 Tomcat이 생성하는 에러페이지의 외관(look)을
커스터마이즈 할 수 있습니다. 이 클래스는 반드시 org.apache.catalina.Valve 인터페이스를 구현해야 합니다.
아무것도 지정하지 않은 경우에는 org.apache.catalina.valves.ErrorReportValve가 디폴트로 사용됩니다.
liveDeploy : Tomcat 운영 도중에 appBase 디렉토리에 새로운 웹어플리케이션을 추가했을 경우,
이 플래그 값이 true이면 이 웹어플리케이션이 자동으로 배치됩니다. 디폴트 값은 true입니다.
name : 당신의 Domain Name Service 서버에 등록된 이 가상호스트의 네트워크 명칭
unpackWARs : 웹어플리케이션이 appBase 디렉토리에 웹어플리케이션 아카이브(WAR) 파일로 존재할 때,
WAR 파일을 해당 디스크 디렉토리 구조로 풀어서(unpack) 실행되길 원하는 경우에는 true로 설정하십시오.
workDir : 이 Host에서 사용할 임시 디렉토리에 대한 경로명입니다.
이 디렉토리는 관련 웹어플리케이션의 서블릿들이 임시로 읽기-쓰기 작업을 하는 용도로 사용합니다.
웹어플리케이션의 서블릿들은 이름이 javax.servlet.context.tempdir인 서블릿-컨텍스트 속성(타입은 java.io.File)을
통해 이 디렉토리를 볼 수 있으며, 이 내용은 서블릿 스펙에 기술되어 있습니다.
지정하지 않은 경우에는 적절한 디렉토리가 $CATALINA_HOME/work 아래에 제공됩니다.
-->
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
<!--<Alias>mycompany.com</Alias> -->
<!-- Normally, users must authenticate themselves to each web app
individually. Uncomment the following entry if you would like
a user to be authenticated the first time they encounter a
resource protected by a security constraint, and then have that
user identity maintained across *all* web applications contained
in this virtual host. -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn"
debug="0"/>
-->
<!-- Access log processes all requests for this virtual host. By
default, log files are created in the "logs" directory relative to
$CATALINA_HOME. If you wish, you can specify a different
directory with the "directory" attribute. Specify either a relative
(to $CATALINA_HOME) or absolute path to the desired directory.
-->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
<!-- Logger shared by all Contexts related to this virtual host. By
default (when using FileLogger), log files are created in the "logs"
directory relative to $CATALINA_HOME. If you wish, you can specify
a different directory with the "directory" attribute. Specify either a
relative (to $CATALINA_HOME) or absolute path to the desired
directory.-->
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<!-- Define properties for each web application. This is only needed
if you want to set non-default properties, or have web application
document roots in places other than the virtual host's appBase
directory. -->
<!-- Tomcat Root Context -->
<!-- Context 예 -->
<!--
<Context path="" docBase="ROOT" debug="0"/>
-->
<!--
<Context path="" docBase="ROOT" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/feelin" auth="Servlet" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/feelin">
<parameter><name>username</name><value>newtec</value></parameter>
<parameter><name>password</name><value>ace</value></parameter>
<parameter><name>driverClassName</name><value>oracle.jdbc.driver.OracleDriver</value></parameter>
<parameter><name>url</name><value>jdbc:oracle:thin:@localhost:1521:ocl</value></parameter>
</ResourceParams>
</Context>
-->
<Context path="" docBase="ROOT" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/feelin" auth="Servlet" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/feelin">
<parameter><name>username</name><value>phoco</value></parameter>
<parameter><name>password</name><value>1q2w3e</value></parameter>
<parameter><name>driverClassName</name><value>org.gjt.mm.mysql.Driver</value></parameter>
<parameter><name>url</name><value>jdbc:mysql://localhost:3306/phoco?useUnicode=true&characterEncoding=MS949 </value></parameter>
</ResourceParams>
</Context>
<Context path="/test" docBase="webapps/test" debug="0" reloadable="true" />
<!--
| Define a Servlet context for the XSQL Servlet
|
| The XSQL Servlet ships with a .\WEB-INF directory
| with its web.xml file pre-configured for C:\xdk902\xdk\demo\java\xsql
| installation.
+-->
<Context path="/xsql" docBase="C:\Tomcat\webapps\test"/>
<!-- Tomcat Examples Context -->
<Context path="/examples" docBase="examples" debug="0" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_examples_log."
suffix=".txt" timestamp="true"/>
<Ejb name="ejb/EmplRecord" type="Entity" home="com.wombat.empl.EmployeeRecordHome"
remote="com.wombat.empl.EmployeeRecord"/>
<!-- If you wanted the examples app to be able to edit the
user database, you would uncomment the following entry.
Of course, you would want to enable security on the
application as well, so this is not done by default!
The database object could be accessed like this:
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
UserDatabase database =
(UserDatabase) envCtx.lookup("userDatabase");
-->
<!--
<ResourceLink name="userDatabase" global="UserDatabase"
type="org.apache.catalina.UserDatabase"/>
-->
<!-- PersistentManager: Uncomment the section below to test Persistent
Sessions.
saveOnRestart: If true, all active sessions will be saved
to the Store when Catalina is shutdown, regardless of
other settings. All Sessions found in the Store will be
loaded on startup. Sessions past their expiration are
ignored in both cases.
maxActiveSessions: If 0 or greater, having too many active
sessions will result in some being swapped out. minIdleSwap
limits this. -1 means unlimited sessions are allowed.
0 means sessions will almost always be swapped out after
use - this will be noticeably slow for your users.
minIdleSwap: Sessions must be idle for at least this long
(in seconds) before they will be swapped out due to
maxActiveSessions. This avoids thrashing when the site is
highly active. -1 or 0 means there is no minimum - sessions
can be swapped out at any time.
maxIdleSwap: Sessions will be swapped out if idle for this
long (in seconds). If minIdleSwap is higher, then it will
override this. This isn't exact: it is checked periodically.
-1 means sessions won't be swapped out for this reason,
although they may be swapped out for maxActiveSessions.
If set to >= 0, guarantees that all sessions found in the
Store will be loaded on startup.
maxIdleBackup: Sessions will be backed up (saved to the Store,
but left in active memory) if idle for this long (in seconds),
and all sessions found in the Store will be loaded on startup.
If set to -1 sessions will not be backed up, 0 means they
should be backed up shortly after being used.
To clear sessions from the Store, set maxActiveSessions, maxIdleSwap,
and minIdleBackup all to -1, saveOnRestart to false, then restart
Catalina.
-->
<!--
<Manager className="org.apache.catalina.session.PersistentManager"
debug="0"
saveOnRestart="true"
maxActiveSessions="-1"
minIdleSwap="-1"
maxIdleSwap="-1"
maxIdleBackup="-1">
<Store className="org.apache.catalina.session.FileStore"/>
</Manager>
-->
<Environment name="maxExemptions" type="java.lang.Integer" value="15"/>
<Parameter name="context.param.name" value="context.param.value" override="false"/>
<Resource name="jdbc/EmployeeAppDb" auth="SERVLET" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/EmployeeAppDb">
<parameter><name>user</name><value>sa</value></parameter>
<parameter><name>password</name><value></value></parameter>
<parameter><name>driverClassName</name>
<value>org.hsql.jdbcDriver</value></parameter>
<parameter><name>driverName</name>
<value>jdbc:HypersonicSQL:database</value></parameter>
</ResourceParams>
<Resource name="mail/Session" auth="Container" type="javax.mail.Session"/>
<ResourceParams name="mail/Session">
<parameter>
<name>mail.smtp.host</name>
<value>localhost</value>
</parameter>
</ResourceParams>
<ResourceLink name="linkToGlobalResource" global="simpleValue" type="java.lang.Integer"/>
</Context>
</Host>
</Engine>
</Service>
<!-- 이하 다른 서비스를 추가함으로써 여러개의 서비스를 할 수 있다. 공용톰캣 -->


0