ERROR!

[에러 해결?] MySQL // com.oltpbenchmark.api.loader loadstock - no operations allowed after statement closed.

짱 센 2024. 4. 30. 15:23

tpcc 워크로드에서 필요한 데이터가 있어서 데이터 생성을 하는 중에 오류가 나타났다...

 

com.oltpbenchmark.api.loader loadstock - no operations allowed after statement closed. 

에러!@@@!!!!!

일단 이 에러에 대해서 전에 글을 쓴 적이 있다.

 

https://ssensnote.tistory.com/10

 

[에러 해결] The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets

요즘 GCP server에 연동해서 flag 값 튜닝하고 벤치마킹 돌리는 과정을 진행하고 있는데 (그 이유는 Cloud Database tuning을 진행해보려고) twitter 워크로드에서만 계속해서 오류가 발생했다. 벤치마킹 툴

ssensnote.tistory.com

 

이 때는 gcp를 사용해서 twitter 연결하는 task에서 생긴 에러였는데 ... 얘를 또 마주쳐버려~

이 때 정리했던대로 wait_time, interactive_timeout, connect_timeout의 value를 설정해주고 MySQL 연결하는 <url> 도 수정해줬다.

 

근데도 오류 해결되지 않음

도대체가 왓헤픈..

 

그래서 서치를 정말 많이 해봤는데 일단 거의 다 내가 전에 올렸던 방법을 추천했다..

그래서 요래저래 테스트를 많이 해봤고 일단 지금 확인해본건 저 세개의 knob을 한꺼번에 할당해주는게 맞는가?

계속 오류나던 config 파일에 대해 wait_time만 할당하니까 오류 안남 ㅎ

 

connect_timeout : 서버 접속 시에 접속실패 메세지를 보내기까지 대기하는 시간

interactive_timeout : 활동중인 커넥션이 닫히기 전까지 서버가 대기하는 시간

wait_timeout : 활동하지 않는 커넥션을 끊을 때까지 서버가 대기하는 시간

 

해당 서버가 (mysql이?) 활동 중인지 아닌지에 대해 사소한 차이가 있는 것 같음

 

이게 완벽한 해결책인지는 모르겠으나 일단 지금 다시 돌려보는 중

추후 수정 예정

 

또 오류나면 해볼 것 

- MySQL 연결 URL에 &autoReconnect=true&validationQuery=select 1 추가해볼 것

 

또 오류나면 부리나케 달려와서 블로그 글 수정하겠음