<settings>은 SQLMaps에서 사용되는 다양한 옵션과 최적화를 위한 값들이다. 각각의 값들은 다음의 표를 참조하길 바란다.
cacheModelsEnabled SqlMapClient 를 위한 모든 캐시모델을 가능 유무.
Default: true (enabled)
enhancementEnabled 런타임시 바이트코드 향상을 가능유무.
Default: false (disabled)
lazyLoadingEnabled 모든 늦은(lazy)로딩을 가능유무.
Default: true (enabled)

maxRequests 동시에 SQL문을 수행할 수 있는 쓰레드의 수. 셋팅값보다 많은 쓰레드는 다른 쓰레드가 수행을 완료할 때까지 블록 된다.
Default: 512
maxSessions 주어진 시간동안 활성화될 수 있는 세션의 수.
Default: 128
maxTransactions 한꺼번에 SqlMapClient.startTransaction()에 들어갈 수 있는 쓰레드의 최대갯수. 셋팅값보다 많은 쓰레드는 다른 쓰레드가 나올 때까지 블록 된다.
Default: 32
useStatementNamespaces 이 셋팅을 가능하게 하면 당신은 sqlmap이름과 statement이름으로 구성된 전체적인 이름(fully qualified name)으로 맵핑된 statement를 참조해야 한다.
예를 들면: queryForObject("sqlMapName.statementName");
Default: false (disabled)


- initialSize : 초기에 생성될 커넥션개수.
- maxActive : 커넥션풀 최대 커넥션개수.
- maxIdle : 사용되지 않고 풀에 저장될 수 있는 최대 커넥션개수, -1 인경우 제한없음.
- minIdle : 사용되지 않고 풀에 저장될수 있는 최소 커넥션개수.
- maxWait : 풀에 커넥션이 존재하지 않을때, 커넥션이 풀에 다시 리턴되기까지 대기시간. 1/1000초단위, -1일경우 무한대기.
- minEvictableIdleTimeMillis : 사용되지 않은 커넥션을 추출할 때, 이 속성에서 지정한 시간이상 비활성화 상태인 커넥션만 추출한다. 양수가 아닌 경우 비활성화 된 시간으로는 풀에서 제거 안됨.
- timeBetweenEvictionRunsMillis : 사용되지 않은 커넥션을 추출하는 쓰레드의 실행주기를 설정. 양수가 아닌 경우 실행되지 않음.
- numTestsPerEvictionRun : 사용되지 않은 커넥션을 몇 개 검사할지 지정.
- testOnBorrow : true일 경우, 커넥션풀에서 커넥션을 가져올 경우, 커넥션이 유효한지 검사.
- testOnReturn : true일 경우, 커넥션풀에 커넥션을 반환할 때, 커넥션이 유효한지 검사.
- testWhileIdle : true일 경우, 비횔성화 커넥션을 추출할 때, 커넥션이 유효한지 검사해서 유효하지 않은 커넥션은 풀에서 제거.

각각의 값에 따른 상태가 어떻게 바뀌는지 좀더 찾아보도록 하자.