본문 바로가기

Work/개발 노트92

개발 노트, SQLAlchemy PoolTimeout 문제 문제 : pool 사용 시 설정된 수보다 많은 session을 사용하려고 할때 timeout이 발생 pool_recycle 값을 셋팅해서 mysql과의 Connection 문제는 해결 했는데 또 같은 에러인 'MySQL server has gone away'가 발생했다.정상적으로 pool에서 session을 얻어올 때 메시지 > checked out from pool pool의 한계치에 도달했을때 메시지 > being returned to pool > rollback-on-return timeout 발생 메시지 > QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30 결론은 pool을 사용할 때 리소스를 반환해주지 .. 2014. 11. 25.
개발 노트, 서버와 Mysql 간 Encoding 문제 문제서버에서 engine driver 사용시 한글 입력 하면 깨지는 문제가 발생했다. 서버(유니코드) -> engine driver(라틴-1) -> mysql (라틴-1) 유니코드를 라틴-1 코드로 변환하려다보니 한글이 깨지게 되었다.해결MySQL의 CharacterSet을 변경한다.my.cnf 파일 수정한다.character-set-encoding=utf8 추가 및 수정서버쪽 engine의 Connect String에 characterset을 utf8로 셋팅하도록 한다. mysql://id:password@192.168.x.x/database?charset=utf8 Tipmysql 서버가 라틴-1으로 되어 있더라도 engine에서 인코딩을 변환하는 작업만 하지 않는 다면 한글이 깨지진 않는다. (mys.. 2014. 11. 25.
개발 노트, SQLAlchemy를 사용하면서 MySQL Connection이 끊기는 문제 문제 요약 : MySQL로 요청 후 일정시간동안 재요청이 없으면 MySQL로부터 연결이 끊기게 되고 이를 위해 SQLAlchemy에서 pool_recycle 옵션을 사용하여 해결 MySQL 로의 요청이 있을 경우 연결을 위한 프로세스가 생성되고 다시 요청을 하기 전까지 sleep 상태로 세션이 유지된다. 이 때 wait_timeout에 지정된 시간 동안 재요청이 없을 경우 MySQL에서 해당 세션의 연결을 끊어버린다. ▶ 연결 상태 확인 (show processlist)MariaDB [db]> show processlist; Current database: db +-----+--------------+----------------------+--------------+---------+------+---.. 2014. 11. 20.
Google Protocol buffers 설치 및 프로젝트에 참조 C++ 환경 1. Protocol Buffer를 다운로드 (https://code.google.com/p/protobuf/) 2. 압축을 해제 3. .\protobuf-2.5.0\vsprojects 경로에 protobuf.sln 솔루션을 Open 4. 프로젝트 중 libprotobuf를 컴파일하여 라이브러리를 생성(libprotobuf.lib) 5. 시작하고자하는 프로젝트에 라이브러리(libprotobuf.lib)를 등록 6. .\protobuf-2.5.0\src\google 폴더를 시작하고자하는 프로젝트에 복사하고, 포함 디렉토리에 경로를 추가 C# 환경 1. Protocol Buffer를 다운로드 (https://code.google.com/p/protobuf-csharp-port/) - 기본으로 구.. 2014. 9. 5.