이 누리집은 대한민국 공식 전자정부 누리집입니다.
이*원
2024-12-03 14:55:02
248
개발환경 / 3.6
완료
안녕하세요
전자정부프레임워크 3.6 버전으로
mysql을 master , slave 로 다중 datasource 로 사용하고있습니다.
현재 쿼리 호출시 dao에서 super.setSuperSqlMapClient() 을 datasource를 master 또는 slave로 사용하게 되어있습니다.
위와 같이 쿼리 마다 master , salve 로 datasource를 지정하여 사용하고 있는데 접속자 수가 많아지는 시간때에 가끔씩 master로 설정되어있음에도 불구하고 slave로 붙는 현상이 나오고 있는데 이를 해결할수있는 방법이 있을까요?
public void insertLoginHistory(MBPUserVO vo) {
SqlMapClient sqlMapClient SelectSqlMap.selectSqlMap(SqlMapClientConstant .ACTIVE_SOLMAP_CLIENT):
super : sstSuperSglMapclient (sgihapmlisnt):
insert ("MBPUserDAO.insertLoginHistoty", vo);
}
안녕하세요.
표준프레임워크 센터입니다.
해당 상황에 대해 상세한 정보가 제공되지 않아
명확한 원인을 특정할 수는 없지만,
SqlMapClient를 동적으로 변경되도록 설정하였다면
여러 쓰레드가 동시에 접근했을 때 동시성 문제가 발생하여 올바른 데이터 소스를 선택하지 못하거나
서로 다른 쓰레드가 동일한 SqlMapClient를 공유하면서 문제가 발생하는 것으로 예상됩니다.
각 데이터 소스에 대해 SqlMapClient를 분리 되도록 설계하여
여러 쓰레드가 동시에 작업하더라도 독립적으로 처리되도록
수정하여 보시기 바랍니다.
감사합니다.