현재 mysql에서 cubrid로 데이터 이관을 하고 있는데 총 5천만 건의 데이터를 옮기는 작업입니다.
java application으로 mysql 에서 2만건 단위로 데이터를 읽어와서 insert를 하고 commit을 하고 있습니다.
하지만 3백만 건 정도 insert를 수행을 하다보면 'cannot communicate with server' 메세지와 함께 에러가 발생합니다.
원인이 뭔지 알 수 있을까요?
window xp에 cubrid2008을 사용중이며 jdk6.0 사용 중 입니다.
java application으로 mysql 에서 2만건 단위로 데이터를 읽어와서 insert를 하고 commit을 하고 있습니다.
하지만 3백만 건 정도 insert를 수행을 하다보면 'cannot communicate with server' 메세지와 함께 에러가 발생합니다.
원인이 뭔지 알 수 있을까요?
window xp에 cubrid2008을 사용중이며 jdk6.0 사용 중 입니다.
CUBRID는 기본적으로 session timeout 을 가지고 있읍니다. 즉 client 가 질의 수행후 일정시간(session timeout이며 기본값 300초)동안 client에서 요청이 없게되면 자동으로 연결을 끊어버립니다.
이를 해결하기 위해서는 질의 수행간 시간 간격을 줄여주거나(mysql 질의 개선 등), 질의 수행후 commit/rollback 처리를 통하여 session 을 정리해주거나, session timeout을 조정(-1 이면 무한 기다림, $CUBRID/conf/cubrid_broker.conf 에서 응용에서 사용하는 port 번호와 같은 BROKER_PORT 번호를 찾은 후 그아래 처음으로 보이는 SESSION_TIMEOUT 의 값을 조정하시면 됩니다.