<Resource name="dreamdb"  
  auth="Container"  
  type="javax.sql.DataSource"  
  username="xxxxx"  
  password="xxxxx"                         	
  url="jdbc:mysql://xxxx/database?autoReconnect=true"
  driverClassName="org.gjt.mm.mysql.Driver"
  maxActive="1000"
  minIdle="3"
  maxIdle="5"
  maxWait="5000"
  removeAbandoned="true"
  testWhileIdle="true"
  testOnBorrow="true"
  validationQuery="select 1"
/>

name - 필수 항목으로서 root java context 인 java:comp/env 에 상대적인 resource 이름이며 jdbc/ 로 시작 (예를 들어 jdbc/sarc)

auth - resource manager 에 sign on 하는 주체로 Container (container-managed 일 경우) 혹은 Application (application-managed 일 경우)

initialSize - 초기 connection 수로, default 는 0

maxActive - 동시 사용 가능한 connection 수로 0 일 경우 무제한이며, default 는 8 (최대 동시 대여 가능 커넥션수)

minIdle - maxActive 를 넘을 수 없으므로 때에 따라 idle connection 이 minIdle 보다 적을 수도 있고, -1 일 경우 무제한이며, default 는 0

maxIdle - connection 의 최대 개수로, default 는 8

maxWait - 새로운 connection 을 얻기 위해 대기하는 시간 (msec) 으로, 이 시간에 도달하게 되면 exception 이 발생하며, default 는 -1 로 무제한

validationQuery - connection 유효성 체크 query 로 default 는 null 이다. 만일 MySQL/MariaDB/PPAS/PostgreSQL 에 적용하려면 select 1, Oracle 에 적용하려면 select 1 from dual 을 사용

removeAbandoned - 대여시간 초과했는데 반납 안된 커넥션 처리

removeAbandonedTimeout - 대여시간 설정 ( 1=5초 60=5분 )

logAbandoned - 커넥션 삭제시에 로그출력 여부

testWhileIdle - 커넥션에 아무런 데이터 송수신이 없을 경우 해당 커넥션이 유효한지 테스트를 할지 여부를 결정.

timeBetweenEvictionRunsMillis - 커넥션이 쉬고 있을 때 커넥션 체크 쿼리를 실행하는 시간 간격을 설정. 놀고 있는 connection을 pool에서 제거하는 시간기준 (설정된 시간동안 놀고 있는 connection을 minIdle&maxIdel 설정값을 고려하여 제거.)

testOnBorrow - connection pool에서 connection을 가져올 때 해당 connection이 유효성 검사 여부