Connection pool은 DB에서 connection을 얻어 오는 부하를 줄이기 위해, pool이 connection을 가지고 있고 요청시 마다 빌려주는 형태라고 한다.
그럼 지금의 문제는 connection 이 요청보다 많거나, connection pool 에서 요청을 받아들이지 못하는 상태 둘 중 하나라고 가정하였다.
그런데 WAS가 하나는 잘붙고, 위 문제가 발생한 WAS는 붙질 않는다. java process를 잡아서 종료하려해도 계속 없다 나타났다하고, Glassfish service를 재시작하려해도 port가 사용 중이라 한다.
여기서는 두가지 접근 방법을 생각했는데,
- 이미 켜진 Glassfish가 제대로 작동을 하는지 확인하고 아니라면, java process를 kill하는 것이 아닌 다른 강제 종료 방법을 찾는 것
- MySQL 자체의 문제일 수도 있으니, log를 확인하고 다음 대처 방안을 생각 ( DB 서버 업체 쪽에서 재부팅으로 인한 문제일 수도 있다고...
정확한 이유는 모르겠지만)
이것저것 해보다 이런 문제가 났는데 감을 못잡겠어서, 일단 심플하게 2번으로 MySQL 재시작하고 WAS 2개를 다시 붙이니 잘 되었다.
이런 식으로 서버를 관리하면 안좋은 거 같은데 정확한 문제를 파악하기에는 시간이 걸릴거 같고... 기회가 있다면 확실히 해둬야겠다.