2017-12-07 16 views
1

내 질문은이 질문과 유사합니다. 그러나이 질문은 MySQL rollback on transaction with lost/disconnected connection과 비슷하지만 5 년 전이었습니다. mysql에서 자동으로 잠금을 해제하는 방법

(JDBC 또는 뭔가 다른 같은) 클라이언트가, 테이블의 한 행을 잠 그려면 다음 네트워크가 다운 일부 문을 실행, 그래서 MySQL의 클라이언트에서 commit 또는 rollback 명령을받지 않을 것입니다 경우

은 (행 잠금을 해제이 트랜잭션을 롤백하기 위해 MySQL을 지원합니까) 자동으로?

나는 If --innodb_rollback_on_timeout is specified, a transaction timeout causes InnoDB to abort and roll back the entire transaction라고 말하면서 innodb_rollback_on_timeout을 말합니다. 그러나 얼마 만에 transaction timeout을 설정해야합니까?

wait_timeout으로 설정되어있는 경우, wait_timeout을 10 초와 같이 작은 숫자로 설정하면 풀 (사용 된 경우)의 유휴 연결이 mysql에 의해 연결 해제되기 전에 10 초마다 연결을 테스트해야합니다. 절대로, 비용이 너무 비싸습니까? 또는 내 질문을 해결하기 위해 다른 방법이 있습니까 (구성이 가장 좋음)?

답변

0

실제로는 transaction timeout에 대한 설정이 없습니다. 여전히 wait_timeout 또는 interactive_timeout이 적용됩니다. --innodb_rollback_on_timeout이 영향을 미치는 것은 롤백 (전체 트랜잭션 또는 변환의 문)의 동작입니다.