WAS 서버에서는 JBoss EAP 시스템SW 사용하고 있고 DB 서버에서는 CUBRID 시스템SW를 사용한다고 가정하겠습니다.
JBoss EAP 데이터소스의 커넥션 풀 설정에서 min, max pool 값이 높게 설정되어 운영중일 때 커넥션 풀 설정을 수정하려면 어떻게 해야 할까요?
WAS 서버 노드별 JBoss EAP 데이터소스 커넥션 풀 설정에서 min-pool-size의 합은 DB서버 cubrid_broker.conf 파일에 설정되어 있는 MIN_NUM_APPL_SERVER에 정의된 값과 같거나 작아야 합니다.
커넥션 풀은 WAS와 DB 서버간 연결(커넥션)을 해놓은 객체들을 풀(Pool)에 저장해 두고 DB 연결이 필요할 때 커넥션을 할당 받아 사용하고, 사용을 마치면 커넥션을 반환하는 방식으로 운영합니다.
매번 WAS와 DB 서버간 커넥션을 수립하지 않아 효율성을 높일 수 있습니다. 커넥션 초기화/종료 과정에 시간이 많이 소요되기 때문이 이런 과정이 생략된다면 요청 처리 속도가 향상됩니다.
각 커넥션은 일정한 크기의 메모리를 점유하므로 서버의 자원 구성(사양)과 서비스 운영에 필요한 커넥션 수에 따라 최소값과 최대값을 설정하여 운영합니다.
WAS 서버(JBoss EAP)와 DB 서버(CUBRID) 간 커넥션 풀 개수는 min-pool-size, max-pool-size 설정값으로 운영됩니다.
- min-pool-size : JBoss EAP 커넥션 풀에서 유지하는 최소 연결 수
- max-pool-size : JBoss EAP 커넥션 풀에서 유지하는 최대 연결 수
사용량이 증가하면 최대 max-pool-size까지 커넥션이 증가하고, 사용량이 감소하면 최소 min-pool-size까지 커넥션이 감소하게 됩니다.
1. DB 서버 설정파일 확인(cubrid_broker.conf)
일반적으로 JBoss EAP 데이터소스 커넥션은 CUBRID Broker1(33000)로 연결하여 사용합니다.
$CUBRID_HOME/conf/cubrid_broker.conf 파일을 확인합니다.
... 생략 ...
[%BROKER1]
SERVICE =ON
BROKER_PORT =33000
MIN_NUM_APPL_SERVER =80
MAX_NUM_APPL_SERVER =320
APPL_SERVER_SHM_ID =33000
... 생략 ...
MIN_NUM_APPL_SERVER 값이 80, MAX_NUM_APPL_SERVER 값이 320으로 설정되어 있는것을 확인할 수 있습니다.
2. WAS 서버 데이터소스 커넥션 풀 설정 확인(standalone-ha.xml)
WAS 서버 노드별 데이터소스 커넥션 풀 설정을 확인합니다.
min-pool-size, max-pool-size 값과 DB서버 CUBRID BROKER1(33000)과 연결 설정이 되어 있는지 확인할 수 있습니다.
예를 들어 2대의 WAS 서버에 2개의 노드가 min-pool-size가 30, max-pool-size가 100으로 설정되어 있다고 가정하겠습니다.
<min-pool-size>30</min-pool-size>
<max-pool-size>100</max-pool-size>
WAS 서버별 노드 2개의 커넥션 풀 최소 설정값에 합이 120, 최대 설정값에 합이 400이 됩니다. DB 서버 CUBRID BROKER1에 설정된 최소/최대 수용값을 초과해 버립니다.
DB 서버의 BROKER1에 연결되는 MIN_NUM_APPL_SERVER 값이 80, MAX_NUM_APPL_SERVER 값이 320으로 설정되었기에 WAS 서버 노드별 커넥션 풀 최소/최대 값의 변경이 필요합니다.
3. WAS 서버 노드별 커넥션 풀 재설정(standalone-ha.xml)
# vim $JBOSS_HOEM/domains/노드명/configuration/standalone-ha.xml
<min-pool-size>20</min-pool-size>
<max-pool-size>80</max-pool-size>
'IT 이야기 > JBoss EAP' 카테고리의 다른 글
[Error_Log] java.lang.NumberFormatException: For input string 관련 에러 발생 (0) | 2020.10.20 |
---|---|
[Error_Log] Required Integer parameter '인자' is not present 관련 에러 발생 (0) | 2020.10.20 |
[JBoss EAP 공통] 라우팅 노드 설정 (0) | 2020.10.20 |
[Error_Log] com.google.gson.stream.MalformedJsonException: Unterminated object at line 관련 에러 (0) | 2020.10.20 |
[Error_Log] java.text.ParseException: Unparseable date 에러 발생 (0) | 2020.10.20 |
댓글